osmo-0.4.2/0000775000175000017500000000000013204323475007500 500000000000000osmo-0.4.2/Makefile.in0000664000175000017500000006101713204317526011472 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-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 \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ COPYING ChangeLog README compile depcomp install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src data po ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = README AUTHORS TRANSLATORS COPYING ChangeLog FAQ all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign 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) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 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) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 # 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. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -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 $(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__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_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) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(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 \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: 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 pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck 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-am uninstall \ uninstall-am .PRECIOUS: Makefile # 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: osmo-0.4.2/src/0000775000175000017500000000000013204323475010267 500000000000000osmo-0.4.2/src/vcf.c0000664000175000017500000002256613066543472011153 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2015 Tomasz Mąka * 2015 Piotr Mąka * * 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 #include "vcf.h" #include "gui.h" #include #include #include #define CRLF "\r\n" #define CRLF_SIZE 2 #define DELIM_COMPONENT ';' #define DELIM_LIST ',' #define MAX_LINE_SIZE 75 #define MAX_FOLDED_LINE_SIZE 74 #define LINE_FOLD CRLF " " #define LINE_FOLD_SIZE 3 #define MAX_ESCAPE_SIZE 2 #define BEGIN "BEGIN:VCARD" #define END "END:VCARD" #define VERSION_40 "VERSION:4.0" #define FN "FN" #define N "N" #define NICKNAME "NICKNAME" #define BDAY "BDAY" #define ADR "ADR" #define ORG "ORG" #define TEL "TEL" #define EMAIL "EMAIL" #define URL "URL" #define IMPP "IMPP" #define NOTE "NOTE" #define TYPE_PARAM "TYPE" #define PREF_PARAM "PREF" #define TEL_URI_SCHEME "tel" struct vcf_writer { vcf_writer_callback *callback; void *user_data; }; static void write_string(vcf_writer *writer, gchar const *content); static void write_value(vcf_writer *writer, gchar const *property_name, gchar const *value); static void write_multivalue(vcf_writer *writer, gchar const *property_name, gchar separator, gint component_count, ...); static gchar *format_date(guint32 julian_day); /*------------------------------------------------------------------------------*/ vcf_writer * vcf_create_writer(vcf_writer_callback *callback, void *user_data) { vcf_writer *writer = g_new(vcf_writer, 1); if(!writer) { return NULL; } writer->callback = callback; writer->user_data = user_data; return writer; } void vcf_close_writer(vcf_writer *writer) { g_free(writer); } void vcf_write_begin(vcf_writer *writer) { write_string(writer, BEGIN); write_string(writer, VERSION_40); } void vcf_write_end(vcf_writer *writer) { write_string(writer, END); } void vcf_write_FN(vcf_writer *writer, char const *first_name, char const *last_name) { gchar *buffer; if(first_name && last_name) { buffer = g_strdup_printf("%s %s", first_name, last_name); } else if(first_name) { buffer = g_strdup(first_name); }else { buffer = g_strdup(last_name); } write_value(writer, FN, buffer); g_free(buffer); } void vcf_write_N(vcf_writer *writer, char const *last_name, char const *first_name, char const *second_name) { write_multivalue(writer, N, DELIM_COMPONENT, 5, last_name, first_name, second_name, NULL, NULL); } void vcf_write_NICKNAME(vcf_writer *writer, char const *nick_name) { write_multivalue(writer, NICKNAME, DELIM_LIST, 1, nick_name); } void vcf_write_BDAY(vcf_writer *writer, guint32 julian_day) { gchar *text = format_date(julian_day); g_return_if_fail(text); write_value(writer, BDAY, text); g_free(text); } void vcf_write_ADR(vcf_writer *writer, char const *type, char const *address, char const *city, char const *state, char const *post_code, char const *country) { gchar *property = g_strdup_printf("%s;%s=%s", ADR, TYPE_PARAM, type); write_multivalue(writer, property, DELIM_COMPONENT, 7, "", "", address, city, state, post_code, country); g_free(property); } void vcf_write_ORG(vcf_writer *writer, char const *organization, char const *department) { write_multivalue(writer, ORG, DELIM_COMPONENT, 2, organization, department); } void vcf_write_TEL_internal(vcf_writer *writer, gchar const *number, gint pref, gchar const **types) { gchar *joined_types, *property, *number_uri; g_return_if_fail(pref >= 1 && pref <=100); joined_types = g_strjoinv (";" TYPE_PARAM "=", (gchar **) types); property = g_strdup_printf("%s;%s=%d%s%s", TEL, PREF_PARAM, pref, ";" TYPE_PARAM "=", joined_types); number_uri = g_strdup_printf("%s:%s", TEL_URI_SCHEME, number); write_value(writer, property, number_uri); g_free(number_uri); g_free(property); g_free(joined_types); } void vcf_write_EMAIL(vcf_writer *writer, gchar const *email, gint pref) { gchar *property; g_return_if_fail(pref >= 1 && pref <=100); property = g_strdup_printf("%s;%s=%d", EMAIL, PREF_PARAM, pref); write_value(writer, property, email); g_free(property); } void vcf_write_URL(vcf_writer *writer, gchar const *url) { write_value(writer, URL, url); } void vcf_write_URL_pref(vcf_writer *writer, gchar const *url, gint pref) { gchar *property; g_return_if_fail(pref >= 1 && pref <= 100); property = g_strdup_printf("%s;%s=%d", URL, PREF_PARAM, pref); write_value(writer, property, url); g_free(property); } void vcf_write_IMPP(vcf_writer *writer, gchar const *url, gchar const *type) { gchar *property = g_strdup_printf("%s;%s=%s", IMPP, TYPE_PARAM, type); write_value(writer, property, url); g_free(property); } void vcf_write_NOTE(vcf_writer *writer, gchar const *note) { write_value(writer, NOTE, note); } /*------------------------------------------------------------------------------*/ static void replace_char(gchar *string, gchar search, gchar const *replacement) { gchar *buffer, *tmp; gsize buffer_size, replacement_size; gint pos = 0; replacement_size = strlen(replacement); buffer_size = strlen(string); if(!buffer_size) { return; } buffer = g_new(gchar, buffer_size*replacement_size+1); tmp = string; while (*tmp) { if (*tmp == search) { strcat(buffer, replacement); pos += replacement_size; } else { buffer[pos] = *tmp; buffer[pos+1] = '\0'; pos++; } tmp++; } strcpy(string, buffer); g_free(buffer); } static void escape_value(gchar *string) { replace_char(string, '\\', "\\\\"); replace_char(string, DELIM_COMPONENT, "\\;"); replace_char(string, DELIM_LIST, "\\,"); replace_char(string, '\n', "\\n"); } static void write_multivalue(vcf_writer *writer, gchar const *property, gchar separator, gint component_count, ...) { va_list arguments; gchar **components; gint i, buffer_size; gchar *buffer; components = g_new(gchar *, component_count); buffer_size = strlen(property) + 1; /* property */ va_start(arguments, component_count); for (i = 0; i < component_count; i++) { components[i] = va_arg(arguments, gchar *); if (components[i]) { buffer_size += (strlen(components[i]) * MAX_ESCAPE_SIZE); /* escaped value */ } } va_end(arguments); buffer_size += (component_count - 1); /* separators */ buffer_size++; buffer = g_new(gchar, buffer_size); g_snprintf(buffer, buffer_size, "%s:", property); for (i = 0; i < component_count; i++) { if (i) { gint len = strlen(buffer); buffer[len++] = separator; buffer[len] = '\0'; } if (components[i]) { gchar *component_buffer; gint len = strlen(components[i]); component_buffer = g_new(gchar, (len * MAX_ESCAPE_SIZE + 1)); strcpy(component_buffer, components[i]); escape_value(component_buffer); strcat(buffer, component_buffer); g_free(component_buffer); } } write_string(writer, buffer); g_free(buffer); g_free(components); } static void write_value(vcf_writer *writer, gchar const *property_name, gchar const * value) { write_multivalue(writer, property_name, '\0', 1, value); } static gchar * format_date(guint32 julian_day) { gchar *buffer; GDate *cdate; gsize size = 9; buffer = g_new(gchar, size); cdate = g_date_new_julian (julian_day); size = g_date_strftime (buffer, size, "%Y%m%d", cdate); if(!size) { g_free(buffer); return NULL; } return buffer; } static void write_string(vcf_writer *writer, gchar const *content) { gchar *buffer; gsize max_len; buffer = g_new(gchar, MAX_LINE_SIZE + 1); g_return_if_fail(buffer); max_len = MAX_LINE_SIZE; while (*content) { gsize len = strlen(content); if (len > max_len) { gchar *end = g_utf8_find_prev_char(content, content + MAX_LINE_SIZE); len = (end - content); strncpy(buffer, content, len); buffer[len] = '\0'; writer->callback(buffer, len, writer->user_data); writer->callback(LINE_FOLD, LINE_FOLD_SIZE, writer->user_data); content = end; max_len = MAX_FOLDED_LINE_SIZE; } else { strcpy(buffer, content); writer->callback(buffer, len, writer->user_data); writer->callback(CRLF, CRLF_SIZE, writer->user_data); content += len; } } g_free(buffer); }osmo-0.4.2/src/calendar_notes.c0000664000175000017500000007237413110234475013346 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_notes.h" #include "i18n.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "options_prefs.h" #include "calendar.h" #include "stock_icons.h" /*------------------------------------------------------------------------------*/ gboolean cal_check_note (guint32 julian, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date == julian) return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gboolean cal_check_notes (guint32 julian_start, guint32 julian_end, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date >= julian_start && n->date <= julian_end) return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void cal_notes_foreach (guint32 julian_start, guint32 julian_end, gboolean (*cnfunc)(), GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date >= julian_start && n->date <= julian_end) if ((*cnfunc)(n, appGUI) == TRUE) break; } } /*------------------------------------------------------------------------------*/ gchar * cal_get_note (guint32 julian, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date == julian) return n->note; } return NULL; } /*------------------------------------------------------------------------------*/ gchar * cal_get_note_color (guint32 julian, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date == julian) return n->color; } return NULL; } /*------------------------------------------------------------------------------*/ void cal_replace_note_color (gchar *old_color, gchar *new_color, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->color != NULL && strncmp (n->color, old_color, MAXCOLORNAME) == 0) { g_free (n->color); n->color = g_strdup (new_color); } } } /*------------------------------------------------------------------------------*/ void cal_add_note (guint32 julian, gchar *color_str, gchar *text_note, GUI *appGUI) { struct note *n; g_return_if_fail (text_note != NULL); n = g_slice_new (struct note); n->date = julian; n->color = g_strdup (color_str); n->note = g_strdup (text_note); cal_remove_note (julian, appGUI); appGUI->cal->notes_list = g_slist_append (appGUI->cal->notes_list, n); } /*------------------------------------------------------------------------------*/ void cal_remove_note (guint32 julian, GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; if (n->date == julian) { g_free (n->color); g_free (n->note); g_slice_free (struct note, n); appGUI->cal->notes_list = g_slist_remove (appGUI->cal->notes_list, n); break; } } } /*------------------------------------------------------------------------------*/ void cal_free_notes_list (GUI *appGUI) { GSList *node; struct note *n; for (node = appGUI->cal->notes_list; node != NULL; node = node->next) { n = (struct note *) node->data; g_free (n->color); g_free (n->note); g_slice_free (struct note, n); } g_slist_free (appGUI->cal->notes_list); appGUI->cal->notes_list = NULL; } /*------------------------------------------------------------------------------*/ void cal_read_notes (GUI *appGUI) { xmlDocPtr doc; xmlChar *key, *prop; xmlNodePtr node, cnode, category_node; GtkTreeIter iter; GdkPixbuf *image; guint32 julian; gint day, month, year; gchar *color_str, *note; appGUI->cal->notes_list = NULL; if (g_file_test (prefs_get_data_filename (CALENDAR_NOTES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) return; if ((doc = xmlParseFile (prefs_get_data_filename (CALENDAR_NOTES_FILENAME, appGUI)))) { if (!(node = xmlDocGetRootElement (doc))) return; if (!xmlStrcmp (node->name, (xmlChar *) CALENDAR_NOTES_NAME)) { /* read note */ node = node->xmlChildrenNode; while (node != NULL) { if (!xmlStrcmp (node->name, (xmlChar *) CALENDAR_DAY_CATEGORIES_NAME)) { category_node = node->xmlChildrenNode; while (category_node != NULL) { if ((!xmlStrcmp (category_node->name, (const xmlChar *) "name"))) { key = xmlNodeListGetString (doc, category_node->xmlChildrenNode, 1); prop = xmlGetProp (category_node, (const xmlChar *) "color"); if (key != NULL) { image = utl_gui_create_color_swatch ((gchar *) prop); gtk_list_store_append (appGUI->opt->calendar_category_store, &iter); gtk_list_store_set (appGUI->opt->calendar_category_store, &iter, 0, image, 1, prop, 2, (gchar *) key, -1); g_object_unref (image); xmlFree (prop); xmlFree (key); } } category_node = category_node->next; } } if (!xmlStrcmp (node->name, (xmlChar *) "note")) { cnode = node->xmlChildrenNode; julian = 0; day = month = year = 0; color_str = NULL; note = NULL; while (cnode != NULL) { utl_xml_get_int ("day", &day, cnode); utl_xml_get_int ("month", &month, cnode); utl_xml_get_int ("year", &year, cnode); utl_xml_get_uint ("date", &julian, cnode); utl_xml_get_str ("color", &color_str, cnode); utl_xml_get_str ("message", ¬e, cnode); cnode = cnode->next; } if (note != NULL && (g_date_valid_dmy (day, month, year) || g_date_valid_julian (julian))) { if (g_date_valid_julian (julian) == FALSE) julian = utl_date_dmy_to_julian (day, month, year); cal_add_note (julian, color_str, note, appGUI); g_free (color_str); g_free (note); } } node = node->next; } } xmlFree (node); xmlFreeDoc (doc); } } /*------------------------------------------------------------------------------*/ void cal_write_notes (GUI *appGUI) { xmlDocPtr doc; xmlNodePtr main_node, node, note_node, dc_node; xmlAttrPtr attr; GtkTreeIter iter; GSList *lnode; struct note *a; gchar *category, *color_str; gint i; xmlChar *escaped; if ((appGUI->save_status & WRT_CALENDAR_NOTES) != 0) return; appGUI->save_status |= WRT_CALENDAR_NOTES; doc = xmlNewDoc ((const xmlChar *) "1.0"); attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); main_node = xmlNewNode (NULL, (const xmlChar *) CALENDAR_NOTES_NAME); xmlDocSetRootElement (doc, main_node); node = xmlNewChild (main_node, NULL, (const xmlChar *) CALENDAR_DAY_CATEGORIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, 1, &color_str, 2, &category, -1); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) category); dc_node = xmlNewChild (node, NULL, (const xmlChar *) "name", (xmlChar *) escaped); g_free (category); xmlFree (escaped); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) color_str); xmlNewProp (dc_node, (const xmlChar *) "color", (xmlChar *) escaped); g_free (color_str); xmlFree (escaped); } for (i = 0, lnode = appGUI->cal->notes_list; lnode; lnode = lnode->next, i++) { a = g_slist_nth_data (appGUI->cal->notes_list, i); note_node = xmlNewChild (main_node, NULL, (const xmlChar *) "note", (xmlChar *) NULL); utl_xml_put_uint ("date", a->date, note_node); utl_xml_put_str ("color", a->color, note_node); utl_xml_put_str ("message", a->note, note_node); } utl_xml_write_doc (prefs_get_data_filename (CALENDAR_NOTES_FILENAME, appGUI), doc); xmlFreeProp (attr); xmlFreeDoc (doc); appGUI->save_status &= ~WRT_CALENDAR_NOTES; } /*------------------------------------------------------------------------------*/ void day_notes_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_window_get_size (GTK_WINDOW (appGUI->cal->day_notes_window), &config.cb_window_size_x, &config.cb_window_size_y); gtk_widget_destroy (appGUI->cal->day_notes_window); } /*------------------------------------------------------------------------------*/ void button_day_notes_window_close_cb (GtkButton *button, gpointer user_data) { day_notes_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint day_notes_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; switch (event->keyval) { case GDK_KEY_Escape: day_notes_window_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gboolean notes_filter_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ gchar * cal_note_remove_empty_lines (gchar *note) { gchar *tmp_note; gint j, k; tmp_note = g_strdup (note); j = k = 0; while (note[j++] == '\n'); --j; while (note[j] != '\0') { if (note[j] == '\n') { while (note[j++] == '\n'); --j; if (note[j] != '\0'){ tmp_note[k++] = '\n'; } } else { tmp_note[k++] = note[j++]; } } tmp_note[k] = '\0'; return tmp_note; } /*------------------------------------------------------------------------------*/ void notes_display_items (guint32 julian_start, guint32 julian_end, const gchar *search_string, GUI *appGUI) { GSList *lnode; struct note *day_note; guint32 julian_day; GtkTreeIter iter; gchar *tmp_note, *stripped; gboolean show_flag; gint i, n_items; gchar tmpbuf[BUFFER_SIZE]; if (appGUI->cal->day_notes_list == NULL || appGUI->cal->day_notes_list_store == NULL) return; n_items = 0; gtk_list_store_clear (GTK_LIST_STORE (appGUI->cal->day_notes_list_store)); for (i = 0, lnode = appGUI->cal->notes_list; lnode != NULL; lnode = lnode->next, i++) { day_note = g_slist_nth_data (appGUI->cal->notes_list, i); julian_day = day_note->date; tmp_note = cal_note_remove_empty_lines (day_note->note); stripped = utl_gui_text_strip_tags (tmp_note); g_free (tmp_note); if (search_string == NULL) { show_flag = TRUE; } else { if(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->cal->notes_search_checkbutton))) { show_flag = utl_text_strstr(stripped, search_string); } else { show_flag = utl_text_strcasestr(stripped, search_string); } } if (((julian_start == 0 && julian_end == 0) || (julian_day >= julian_start && julian_day <= julian_end)) && show_flag) { gtk_list_store_append (appGUI->cal->day_notes_list_store, &iter); gtk_list_store_set (appGUI->cal->day_notes_list_store, &iter, DN_COLUMN_DATE, julian_to_str (julian_day, config.date_format, config.override_locale_settings), DN_COLUMN_DATE_JULIAN, julian_day, DN_COLUMN_NOTE_LINE, stripped, DN_COLUMN_DONE, FALSE, -1); if (julian_day < utl_date_get_current_julian () && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->past_notes_checkbutton))) { gtk_list_store_set (appGUI->cal->day_notes_list_store, &iter, DN_COLUMN_DONE, TRUE, -1); } n_items++; } g_free (stripped); } if (!n_items) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("no entries")); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%4d %s", n_items, ngettext ("entry", "entries", n_items)); } gtk_label_set_markup (GTK_LABEL (appGUI->cal->n_items_label), tmpbuf); } /*------------------------------------------------------------------------------*/ void refresh_notes_list (GUI *appGUI) { guint32 julian_start, julian_end; gint month, year; gint filter_mode; const gchar *search_string; filter_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(appGUI->cal->notes_filter_combobox)); search_string = gtk_entry_get_text(GTK_ENTRY(appGUI->cal->notes_search_entry)); gtk_widget_hide (appGUI->cal->notes_month_spinbutton); gtk_widget_hide (appGUI->cal->notes_year_spinbutton); if (filter_mode == DN_FILTER_SELECTED_MONTH) { gtk_widget_show (appGUI->cal->notes_month_spinbutton); } else if (filter_mode == DN_FILTER_SELECTED_YEAR) { gtk_widget_show (appGUI->cal->notes_year_spinbutton); } else if (filter_mode == DN_FILTER_SELECTED_MONTH_YEAR) { gtk_widget_show (appGUI->cal->notes_month_spinbutton); gtk_widget_show (appGUI->cal->notes_year_spinbutton); } julian_start = julian_end = 0; month = utl_date_get_current_month (); year = utl_date_get_current_year (); switch (filter_mode) { case DN_FILTER_CURRENT_MONTH: julian_start = utl_date_dmy_to_julian (1, month, year); julian_end = utl_date_dmy_to_julian (g_date_get_days_in_month (month, year), month, year); break; case DN_FILTER_SELECTED_MONTH: month = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->notes_month_spinbutton)); julian_start = utl_date_dmy_to_julian (1, month, year); julian_end = utl_date_dmy_to_julian (g_date_get_days_in_month (month, year), month, year); break; case DN_FILTER_CURRENT_YEAR: julian_start = utl_date_dmy_to_julian (1, 1, year); julian_end = utl_date_dmy_to_julian (g_date_get_days_in_month (12, year), 12, year); break; case DN_FILTER_SELECTED_YEAR: year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->notes_year_spinbutton)); julian_start = utl_date_dmy_to_julian (1, 1, year); julian_end = utl_date_dmy_to_julian (g_date_get_days_in_month (12, year), 12, year); break; case DN_FILTER_SELECTED_MONTH_YEAR: month = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->notes_month_spinbutton)); year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->notes_year_spinbutton)); julian_start = utl_date_dmy_to_julian (1, month, year); julian_end = utl_date_dmy_to_julian (g_date_get_days_in_month (month, year), month, year); break; case DN_FILTER_ALL_NOTES: julian_start = julian_end = 0; break; } notes_display_items (julian_start, julian_end, search_string, appGUI); } /*------------------------------------------------------------------------------*/ void notes_filter_changed_cb (GtkComboBox *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; config.day_notes_browser_filter = gtk_combo_box_get_active (GTK_COMBO_BOX (appGUI->cal->notes_filter_combobox)); refresh_notes_list (appGUI); } /*------------------------------------------------------------------------------*/ void search_entry_changed_cb(GtkEditable *editable, GUI *appGUI) { refresh_notes_list(appGUI); } /*------------------------------------------------------------------------------*/ gint day_notes_list_dbclick_cb (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model; guint32 julian_day; GDate *date; GUI *appGUI = (GUI *) user_data; date = g_date_new (); g_return_val_if_fail (date != NULL, FALSE); if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) { if (gtk_tree_selection_get_selected (appGUI->cal->day_notes_list_selection, &model, &iter)) { gtk_tree_model_get (model, &iter, DN_COLUMN_DATE_JULIAN, &julian_day, -1); if (g_date_valid_julian (julian_day) == TRUE) { g_date_set_julian (date, julian_day); cal_jump_to_date (date, appGUI); update_aux_calendars (appGUI); button_day_notes_window_close_cb (NULL, appGUI); } } g_date_free (date); return TRUE; } g_date_free (date); return FALSE; } /*------------------------------------------------------------------------------*/ void browser_case_sensitive_cb (GtkToggleButton *togglebutton, GUI *appGUI) { refresh_notes_list(appGUI); } /*------------------------------------------------------------------------------*/ void browser_past_notes_cb (GtkToggleButton *togglebutton, GUI *appGUI) { refresh_notes_list (appGUI); } /*------------------------------------------------------------------------------*/ void cal_notes_browser (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *scrolledwindow; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *close_button; GtkWidget *notes_tools_table; GtkWidget *label; GtkAdjustment *notes_month_spinbutton_adj; GtkAdjustment *notes_year_spinbutton_adj; GtkTreeViewColumn *column; GtkCellRenderer *renderer; gchar tmpbuf[BUFFER_SIZE]; appGUI->cal->day_notes_list = NULL; appGUI->cal->day_notes_list_store = NULL; appGUI->cal->day_notes_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->day_notes_window), _("Calendar notes")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->day_notes_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW(appGUI->cal->day_notes_window), config.cb_window_size_x, config.cb_window_size_y); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->day_notes_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->day_notes_window), "delete_event", G_CALLBACK(day_notes_window_close_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->day_notes_window), GTK_WINDOW(appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->day_notes_window), 8); g_signal_connect (G_OBJECT (appGUI->cal->day_notes_window), "key_press_event", G_CALLBACK (day_notes_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->day_notes_window), vbox1); notes_tools_table = gtk_grid_new (); gtk_widget_show (notes_tools_table); gtk_box_pack_start (GTK_BOX (vbox1), notes_tools_table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (notes_tools_table), 3); gtk_grid_set_column_spacing (GTK_GRID (notes_tools_table), 2); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (notes_tools_table), hseparator, 0, 1, 3, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (notes_tools_table), hseparator, 0, 3, 3, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (notes_tools_table), hseparator, 0, 5, 3, 1); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Search")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (notes_tools_table), label, 0, 2, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_grid_attach (GTK_GRID (notes_tools_table), hbox1, 2, 0, 1, 1); notes_month_spinbutton_adj = gtk_adjustment_new (1, 1, 12, 1, 5, 0); appGUI->cal->notes_month_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (notes_month_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->notes_month_spinbutton); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->notes_month_spinbutton, TRUE, TRUE, 0); g_signal_connect (appGUI->cal->notes_month_spinbutton, "value-changed", G_CALLBACK (notes_filter_changed_cb), appGUI); notes_year_spinbutton_adj = gtk_adjustment_new (utl_date_get_current_year (), 1, 9999, 1, 10, 0); appGUI->cal->notes_year_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (notes_year_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->notes_year_spinbutton); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->notes_year_spinbutton, TRUE, TRUE, 0); g_signal_connect (appGUI->cal->notes_year_spinbutton, "value-changed", G_CALLBACK (notes_filter_changed_cb), appGUI); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Filter")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (notes_tools_table), label, 0, 0, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); appGUI->cal->notes_filter_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cal->notes_filter_combobox); g_signal_connect(G_OBJECT(appGUI->cal->notes_filter_combobox), "focus", G_CALLBACK(notes_filter_combo_box_focus_cb), NULL); g_signal_connect(G_OBJECT(appGUI->cal->notes_filter_combobox), "changed", G_CALLBACK(notes_filter_changed_cb), appGUI); gtk_widget_set_hexpand(appGUI->cal->notes_filter_combobox, TRUE); gtk_grid_attach (GTK_GRID (notes_tools_table), appGUI->cal->notes_filter_combobox, 1, 0, 1, 1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL, _("Current month")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL,_("Selected month")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL,_("Current year")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL,_("Selected year")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL,_("Selected month and year")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->notes_filter_combobox), NULL,_("All notes")); appGUI->cal->n_items_label = gtk_label_new (""); gtk_widget_show (appGUI->cal->n_items_label); gtk_widget_set_size_request (appGUI->cal->n_items_label, 100, -1); gtk_grid_attach (GTK_GRID (notes_tools_table), appGUI->cal->n_items_label, 2, 4, 1, 1); gtk_label_set_use_markup (GTK_LABEL (appGUI->cal->n_items_label), TRUE); appGUI->cal->notes_search_entry = gtk_entry_new (); gtk_widget_show (appGUI->cal->notes_search_entry); gtk_widget_set_hexpand(appGUI->cal->notes_search_entry, TRUE); gtk_grid_attach (GTK_GRID (notes_tools_table), appGUI->cal->notes_search_entry, 1, 2, 1, 1); g_signal_connect (G_OBJECT (appGUI->cal->notes_search_entry), "changed", G_CALLBACK (search_entry_changed_cb), appGUI); appGUI->cal->notes_search_checkbutton = gtk_check_button_new_with_mnemonic (_("Case sensitive")); g_signal_connect (G_OBJECT (appGUI->cal->notes_search_checkbutton), "toggled", G_CALLBACK (browser_case_sensitive_cb), appGUI); gtk_widget_show (appGUI->cal->notes_search_checkbutton); gtk_widget_set_can_focus(appGUI->cal->notes_search_checkbutton, FALSE); gtk_grid_attach (GTK_GRID (notes_tools_table), appGUI->cal->notes_search_checkbutton, 2, 2, 1, 1); appGUI->cal->past_notes_checkbutton = gtk_check_button_new_with_mnemonic (_("Strikethrough past day notes")); gtk_widget_set_can_focus(appGUI->cal->past_notes_checkbutton, FALSE); g_signal_connect (G_OBJECT (appGUI->cal->past_notes_checkbutton), "toggled", G_CALLBACK (browser_past_notes_cb), appGUI); gtk_widget_show (appGUI->cal->past_notes_checkbutton); gtk_grid_attach (GTK_GRID (notes_tools_table), appGUI->cal->past_notes_checkbutton, 0, 4, 2, 1); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); appGUI->cal->day_notes_list_store = gtk_list_store_new(DAY_NOTES_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN); appGUI->cal->day_notes_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->cal->day_notes_list_store)); gtk_widget_show (appGUI->cal->day_notes_list); gtk_widget_set_can_default (appGUI->cal->day_notes_list, TRUE); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->cal->day_notes_list); g_signal_connect(G_OBJECT(appGUI->cal->day_notes_list), "button_press_event", G_CALLBACK(day_notes_list_dbclick_cb), appGUI); appGUI->cal->day_notes_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->cal->day_notes_list)); /* create columns */ renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Date"), renderer, "text", DN_COLUMN_DATE, "strikethrough", DN_COLUMN_DONE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->day_notes_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("Julian", renderer, "text", DN_COLUMN_DATE_JULIAN, "strikethrough", DN_COLUMN_DONE, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->day_notes_list), column); gtk_tree_view_column_set_sort_column_id (column, DN_COLUMN_DATE_JULIAN); g_signal_emit_by_name(column, "clicked"); if (config.ascending_sorting_in_day_notes_browser == FALSE) { g_signal_emit_by_name(column, "clicked"); } renderer = gtk_cell_renderer_text_new(); g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); column = gtk_tree_view_column_new_with_attributes(_("Note"), renderer, "text", DN_COLUMN_NOTE_LINE, "strikethrough", DN_COLUMN_DONE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->day_notes_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", DN_COLUMN_DONE, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->day_notes_list), column); gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->cal->notes_filter_combobox), config.day_notes_browser_filter); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); gtk_widget_set_can_focus(close_button, FALSE); g_signal_connect(close_button, "clicked", G_CALLBACK(button_day_notes_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), close_button); gtk_widget_show(appGUI->cal->day_notes_window); gtk_widget_grab_focus (appGUI->cal->day_notes_list); } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/i18n.h0000664000175000017500000000203613066543472011147 00000000000000 /* * Osmo - a handy personal manager * * Copyright (C) 2007 Tomasz Mąka * * 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 #ifndef _ # include # include # define _(x) gettext(x) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #endif osmo-0.4.2/src/backup.h0000664000175000017500000000207413066543472011637 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _BACKUP_H #define _BACKUP_H #include "gui.h" #define BACKUP_TEMPLATE ".__backup_osmo.dat" void backup_create (GUI *appGUI); void backup_restore (GUI *appGUI); void backup_restore_run (GUI *appGUI); #endif /* _BACKUP_H */ osmo-0.4.2/src/calendar_jumpto.h0000664000175000017500000000173713066543472013546 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_JUMPTO_H #define _CALENDAR_JUMPTO_H #include "gui.h" void calendar_create_jumpto_window (GUI *appGUI); #endif /* _CALENDAR_JUMPTO_H */ osmo-0.4.2/src/calendar_calc.c0000664000175000017500000017203613066543472013126 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * (C) 2007 Piotr Maka * * 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 "calendar_calc.h" #include "i18n.h" #include "calendar.h" #include "calendar_utils.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils.h" #include "utils_gui.h" #include "utils_time.h" #include "utils_date.h" #include "utils_date_time.h" /*------------------------------------------------------------------------------*/ void window_date_calculator_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_widget_destroy (appGUI->cal->window_date_calculator); } /*------------------------------------------------------------------------------*/ void button_window_date_calculator_close_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; window_date_calculator_close_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ gint date_calculator_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (event->keyval == GDK_KEY_Escape) { window_date_calculator_close_cb (widget, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void set_current_date (GtkWidget *year, GtkWidget *month, GtkWidget *day) { gtk_spin_button_set_value (GTK_SPIN_BUTTON (year), utl_date_get_current_year ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (month), utl_date_get_current_month ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (day), utl_date_get_current_day ()); } /*------------------------------------------------------------------------------*/ void set_current_time (GtkWidget *hour, GtkWidget *minute, GtkWidget *second) { gtk_spin_button_set_value (GTK_SPIN_BUTTON (hour), get_current_hour ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (minute), get_current_minute ()); gtk_spin_button_set_value (GTK_SPIN_BUTTON (second), get_current_second ()); } /*------------------------------------------------------------------------------*/ void reset_current_time (GtkWidget *hour, GtkWidget *minute, GtkWidget *second) { gtk_spin_button_set_value (GTK_SPIN_BUTTON (hour), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (minute), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (second), 0); } /*------------------------------------------------------------------------------*/ void set_current_date_start_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_date (appGUI->cal->spinbutton_start_year, appGUI->cal->spinbutton_start_month, appGUI->cal->spinbutton_start_day); } /*------------------------------------------------------------------------------*/ void set_current_date_start2_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_date (appGUI->cal->spinbutton2_start_year, appGUI->cal->spinbutton2_start_month, appGUI->cal->spinbutton2_start_day); } /*------------------------------------------------------------------------------*/ void set_current_date_end_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_date (appGUI->cal->spinbutton_end_year, appGUI->cal->spinbutton_end_month, appGUI->cal->spinbutton_end_day); } /*------------------------------------------------------------------------------*/ void set_current_time_start_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_time (appGUI->cal->spinbutton_start_hour, appGUI->cal->spinbutton_start_minute, appGUI->cal->spinbutton_start_second); } /*------------------------------------------------------------------------------*/ void set_current_time_start2_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_time (appGUI->cal->spinbutton2_start_hour, appGUI->cal->spinbutton2_start_minute, appGUI->cal->spinbutton2_start_second); } /*------------------------------------------------------------------------------*/ void set_current_time_end_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; set_current_time (appGUI->cal->spinbutton_end_hour, appGUI->cal->spinbutton_end_minute, appGUI->cal->spinbutton_end_second); } /*------------------------------------------------------------------------------*/ void reset_current_time_start_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; reset_current_time (appGUI->cal->spinbutton_start_hour, appGUI->cal->spinbutton_start_minute, appGUI->cal->spinbutton_start_second); } /*------------------------------------------------------------------------------*/ void reset_current_time_start2_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; reset_current_time (appGUI->cal->spinbutton2_start_hour, appGUI->cal->spinbutton2_start_minute, appGUI->cal->spinbutton2_start_second); } /*------------------------------------------------------------------------------*/ void reset_current_time_end_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; reset_current_time (appGUI->cal->spinbutton_end_hour, appGUI->cal->spinbutton_end_minute, appGUI->cal->spinbutton_end_second); } /*------------------------------------------------------------------------------*/ void reset_addsub_time_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_year), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_month), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_week), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_day), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_hour), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_minute), 0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_second), 0); } /*------------------------------------------------------------------------------*/ gint utl_calculate_weekend_days (GDate *f_date, GDate *s_date) { gint st, en, nd, wd; g_date_order (f_date, s_date); st = g_date_get_weekday (f_date); en = g_date_get_weekday (s_date); nd = g_date_days_between (f_date, s_date); wd = nd / 7 * 2; if (st == G_DATE_SATURDAY) { if (en == G_DATE_SATURDAY) wd += 1; else wd += 2; } else if (st == G_DATE_SUNDAY) { if (en == G_DATE_SATURDAY) wd += 2; else wd += 1; } else { if (en == G_DATE_SATURDAY) wd += 1; else if (en == G_DATE_SUNDAY) wd += 2; else if (st > en) wd += 2; } return wd; } /*============================================================================*/ void set_result_cb (GtkWidget *widget, GUI *appGUI) { gint days, weeks; long long unsigned int hours, minutes, seconds; gchar tmpbuf[BUFFER_SIZE]; gchar tmpbuf2[BUFFER_SIZE]; gint P, E, I; gint we_d, working_days; gint dd, dm, dy, th, tm, ts; GDate *date1, *date2; TIME *time1, *time2; dd = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_day)); dm = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_month)); dy = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_year)); th = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_hour)); tm = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_minute)); ts = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_second)); if (utl_date_set_valid_dmy (&dd, dm, dy)) utl_gui_change_bg_widget_state (appGUI->cal->spinbutton_start_day, COLOR_BG_FAIL, appGUI); else utl_gui_change_bg_widget_state (appGUI->cal->spinbutton_start_day, NULL, appGUI); date1 = g_date_new_dmy (dd, dm, dy); time1 = utl_time_new_hms (th, tm, ts); dd = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_day)); dm = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_month)); dy = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_year)); th = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_hour)); tm = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_minute)); ts = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_end_second)); if (utl_date_set_valid_dmy (&dd, dm, dy)) utl_gui_change_bg_widget_state (appGUI->cal->spinbutton_end_day, COLOR_BG_FAIL, appGUI); else utl_gui_change_bg_widget_state (appGUI->cal->spinbutton_end_day, NULL, appGUI); date2 = g_date_new_dmy (dd, dm, dy); time2 = utl_time_new_hms (th, tm, ts); utl_date_time_order (date1, time1, date2, time2); days = g_date_days_between (date1, date2) - utl_time_subtract (time2, time1); we_d = utl_calculate_weekend_days (date1, date2); utl_date_diff (date1, date2, &dd, &dm, &dy); utl_time_get_hms (time2, &th, &tm, &ts); g_snprintf (tmpbuf, BUFFER_SIZE, "%d %s, %d %s, %d %s", dy, ngettext ("year", "years", dy), dm, ngettext ("month", "months", dm), dd, ngettext ("day", "days", dd)); gtk_label_set_markup (GTK_LABEL (appGUI->cal->label_result_1), tmpbuf); g_snprintf (tmpbuf, BUFFER_SIZE, "%d %s, %d %s, %d %s", th, ngettext ("hour", "hours", th), tm, ngettext ("minute", "minutes", tm), ts, ngettext ("second", "seconds", ts)); gtk_label_set_markup (GTK_LABEL (appGUI->cal->label_result_1_2), tmpbuf); g_snprintf (tmpbuf, BUFFER_SIZE, "(%s: %d %s, %d %s, %d %s, %d %s)", _("or"), days, ngettext ("day", "days", days), th, ngettext ("hour", "hours", th), tm, ngettext ("minute", "minutes", tm), ts, ngettext ("second", "seconds", ts)); gtk_label_set_markup (GTK_LABEL (appGUI->cal->label_result_2), tmpbuf); seconds = (guint64) utl_time_get_seconds (time2) + (guint64) days * 24 * 3600; minutes = seconds / 60; hours = minutes / 60; weeks = (gint) (hours / (24 * 7)); working_days = days - we_d + 1; g_snprintf (tmpbuf, BUFFER_SIZE, "%llu %s\n%llu %s (%s)\n%llu %s (%s)\n%d %s (%s)\n%d %s (%s)\n%d %s (%s)", seconds, ngettext ("second", "seconds", seconds), minutes, ngettext ("minute", "minutes", minutes), _("rounded down"), hours, ngettext ("hour", "hours", hours), _("rounded down"), weeks, ngettext ("week", "weeks", weeks), _("rounded down"), working_days, ngettext ("working day", "working days", working_days), _("time is ignored"), we_d, ngettext ("weekend day", "weekend days", we_d), _("time is ignored")); if (appGUI->cal->datecal_bio == TRUE) { P = 100.0 * sin (2.0 * M_PI * days / 23.0); E = 100.0 * sin (2.0 * M_PI * days / 28.0); I = 100.0 * sin (2.0 * M_PI * days / 33.0); g_snprintf (tmpbuf2, BUFFER_SIZE, "\n\nBiorhythms:\nPhysical: %d%%, Emotional: %d%%, Intellectual: %d%%", P, E, I); g_strlcat (tmpbuf, tmpbuf2, BUFFER_SIZE); } gtk_label_set_markup (GTK_LABEL (appGUI->cal->label_result_3), tmpbuf); g_date_free (date1); g_date_free (date2); utl_time_free (time1); utl_time_free (time2); } /*============================================================================*/ void set_result2_cb (GtkWidget *widget, GUI *appGUI) { gint year, month, day; gint64 hour, minute, second; gint year2, month2, week2, day2; gint64 hour2, minute2, second2; gint n, ignore_weekend_days; guint32 julian = 0; gchar *str, *text; GDate *s_date, *e_date; gint wd_n = 0, wd_p; year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_year)); month = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_month)) - 1; day = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_day)); hour = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_hour)); minute = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_minute)); second = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_start_second)); year2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_year)); month2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_month)); week2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_week)); day2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_day)); hour2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_hour)); minute2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_minute)); second2 = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton2_end_second)); if (day > g_date_get_days_in_month (month + 1, year)) { utl_gui_change_bg_widget_state (appGUI->cal->spinbutton2_start_day, COLOR_BG_FAIL, appGUI); } else { utl_gui_change_bg_widget_state (appGUI->cal->spinbutton2_start_day, NULL, appGUI); } ignore_weekend_days = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->ignore_weekend_days_checkbutton)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->radiobutton_add)) == TRUE) { /* add */ if (ignore_weekend_days == TRUE) { s_date = g_date_new_dmy (day, month + 1, year); e_date = g_date_new_dmy (day, month + 1, year); wd_n = 0; if (day2 > 0) { g_date_add_days (e_date, day2 - 1); do { wd_p = wd_n; wd_n = utl_calculate_weekend_days (s_date, e_date); g_date_add_days (e_date, wd_n - wd_p); } while (wd_n - wd_p > 0); } julian = g_date_get_julian (e_date); g_date_free (s_date); g_date_free (e_date); } else { year += year2; month += month2; year += month / 12; month %= 12; /* 31 January + one month = 28 or 29 February */ n = g_date_get_days_in_month (month + 1, year); if (day > n) { day = n; } julian = utl_date_dmy_to_julian (day, month + 1, year); second += second2; minute += minute2 + second / 60; second %= 60; hour += hour2 + minute / 60; minute %= 60; day2 += hour / 24; hour %= 24; julian += day2 + week2 * 7; } } else { /* subtract */ if (ignore_weekend_days == TRUE) { s_date = g_date_new_dmy (day, month + 1, year); e_date = g_date_new_dmy (day, month + 1, year); wd_n = 0; if (day2 > 0) { g_date_subtract_days (s_date, day2 - 1); do { wd_p = wd_n; wd_n = utl_calculate_weekend_days (s_date, e_date); g_date_subtract_days (s_date, wd_n - wd_p); } while (wd_n - wd_p > 0); } julian = g_date_get_julian (s_date); g_date_free (s_date); g_date_free (e_date); } else { year = year - year2 - (month2 / 12); month -= month2 % 12; if (month < 0) { year--; month += 12; } if (year > 0) { /* 31 March - one month = 28 or 29 February */ n = g_date_get_days_in_month (month + 1, year); if (day > n) { day = n; } julian = utl_date_dmy_to_julian (day, month + 1, year); minute2 += second2 / 60; second -= second2 % 60; if (second < 0) { minute--; second += 60; } hour2 += minute2 / 60; minute -= minute2 % 60; if (minute < 0) { hour--; minute += 60; } day2 += hour2 / 24; hour -= hour2 % 24; if (hour < 0) { julian--; hour += 24; } julian = julian - day2 - week2 * 7; } if (!(g_date_valid_julian (julian))) { year = 0; } } } if (year < 1) { gtk_label_set_text (GTK_LABEL (appGUI->cal->label2_result), _("This calculator only supports dates after year 1.")); } else { if (ignore_weekend_days) { str = utl_date_print_j (julian, DATE_FULL, config.override_locale_settings); text = g_strdup_printf ("%s\n(%d %s)", str, wd_n, ngettext ("weekend day ignored", "weekend days ignored", wd_n)); } else if (hour == 0 && minute == 0 && second == 0) { str = utl_date_print_j (julian, DATE_FULL, config.override_locale_settings); text = g_strdup_printf ("%s", str); } else { str = utl_date_time_print_js (julian, DATE_FULL, utl_time_hms_to_seconds (hour, minute, second), TIME_HH_MM_SS, config.override_locale_settings); text = g_strdup_printf ("%s", str); } gtk_label_set_markup (GTK_LABEL (appGUI->cal->label2_result), text); g_free (str); g_free (text); } appGUI->cal->julian_jumpto = julian; } /*------------------------------------------------------------------------------*/ void jumpto_and_window_close_cb (GtkButton *button, gpointer user_data) { GDate *cdate; GUI *appGUI = (GUI *) user_data; cdate = g_date_new_julian (appGUI->cal->julian_jumpto); g_return_if_fail (cdate != NULL); cal_jump_to_date (cdate, appGUI); update_aux_calendars (appGUI); window_date_calculator_close_cb (GTK_WIDGET (button), NULL, user_data); g_date_free (cdate); } /*------------------------------------------------------------------------------*/ void ignore_weekend_days_cb (GtkToggleButton *togglebutton, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gint flag; flag = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton)); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_start_hour, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_start_minute, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_start_second, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_year, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_month, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_week, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_hour, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_minute, !flag); gtk_widget_set_sensitive (appGUI->cal->spinbutton2_end_second, !flag); set_result2_cb (NULL, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_create_calc_window (GUI *appGUI) { GtkWidget *vbox; GtkWidget *label; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *frame; gint win_xpos, win_ypos; GtkWidget *notebook; GtkWidget *vbox2; GtkWidget *hbox1; GtkWidget *vbox3; GtkWidget *table; GtkAdjustment *spinbutton_adjustment; GtkWidget *button_start_today; GtkWidget *vbox4; GtkWidget *button_start_now; GtkWidget *button_start_clear; GtkWidget *hbox2; GtkWidget *vbox5; GtkWidget *button_end_today; GtkWidget *vbox6; GtkWidget *button_end_now; GtkWidget *button_end_clear; GtkWidget *vbox7; GtkWidget *hbox9; GtkWidget *vbox8; GtkWidget *button2_start_today; GtkWidget *vbox9; GtkWidget *button2_start_now; GtkWidget *button2_start_clear; GtkWidget *button2_end_clear; GtkWidget *vbox10; GtkWidget *vbox22; GtkWidget *hbox10; GSList *radiobutton_add_group = NULL; GtkWidget *radiobutton_sub; GtkWidget *close_button; GtkWidget *hbox11; GtkWidget *hbox12; GtkWidget *hbox13; GtkWidget *hbox14; GtkWidget *hbox98; GtkWidget *hbox99; GtkWidget *vbox99; GtkWidget *hbox_bst; GtkWidget *hbox_bet; GtkWidget *hbox_b2st; GtkWidget *hbox_b2sn; GtkWidget *vbox_result; GtkWidget *jumpto_button; char tmpbuf[BUFFER_SIZE]; appGUI->cal->window_date_calculator = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->window_date_calculator), _("Date calculator")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->window_date_calculator), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->window_date_calculator), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->window_date_calculator), "delete_event", G_CALLBACK (window_date_calculator_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->window_date_calculator), "key_press_event", G_CALLBACK (date_calculator_key_press_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->cal->window_date_calculator), GTK_WINDOW (appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->window_date_calculator), 8); gtk_window_set_resizable (GTK_WINDOW (appGUI->cal->window_date_calculator), FALSE); /*---------------------------------------------------------------------------------*/ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (appGUI->cal->window_date_calculator), vbox); notebook = gtk_notebook_new (); gtk_widget_show (notebook); gtk_box_pack_start (GTK_BOX (vbox), notebook, TRUE, TRUE, 0); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (notebook), vbox2); hbox99 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox99); gtk_box_pack_start (GTK_BOX (vbox2), hbox99, FALSE, FALSE, 0); vbox99 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox99); gtk_box_pack_start (GTK_BOX (hbox99), vbox99, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_widget_set_margin_left(hbox1, 16); gtk_widget_set_margin_right(hbox1, 4); gtk_widget_set_margin_top(hbox1, 4); gtk_widget_set_margin_bottom(hbox1, 4); gtk_container_add (GTK_CONTAINER (frame), hbox1); vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (hbox1), vbox3, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox3), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Year")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Month")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Day")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (1, 1, 9999, 1, 10, 0); appGUI->cal->spinbutton_start_year = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_year); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_year, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_year, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 12, 1, 10, 0); appGUI->cal->spinbutton_start_month = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_month); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_month, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_month, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 31, 1, 10, 0); appGUI->cal->spinbutton_start_day = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_day); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_day, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_day, 2, 1, 1, 1); hbox_bst = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox_bst); gtk_box_pack_start (GTK_BOX (vbox3), hbox_bst, FALSE, FALSE, 2); button_start_today = gtk_button_new_with_mnemonic (_("Current date")); gtk_widget_set_size_request (button_start_today, -1, 32); gtk_widget_set_can_focus (button_start_today, FALSE); gtk_widget_show (button_start_today); gtk_box_pack_start (GTK_BOX (hbox_bst), button_start_today, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_start_today, _("Set current date")); } g_signal_connect (button_start_today, "clicked", G_CALLBACK (set_current_date_start_cb), appGUI); vbox4 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox4); gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox4), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Hour")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Minute")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Second")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 23, 1, 10, 0); appGUI->cal->spinbutton_start_hour = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_hour); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_hour, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_hour, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton_start_minute = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_minute); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_minute, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_minute, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton_start_second = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_second); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_second, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_start_second, 2, 1, 1, 1); hbox11 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox11); gtk_box_pack_start (GTK_BOX (vbox4), hbox11, FALSE, FALSE, 2); button_start_now = gtk_button_new_with_mnemonic (_("Current time")); gtk_widget_set_size_request (button_start_now, -1, 32); gtk_widget_set_can_focus (button_start_now, FALSE); gtk_widget_show (button_start_now); gtk_box_pack_start (GTK_BOX (hbox11), button_start_now, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_start_now, _("Set current time")); } g_signal_connect (button_start_now, "clicked", G_CALLBACK (set_current_time_start_cb), appGUI); button_start_clear = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (button_start_clear); gtk_widget_set_can_focus (button_start_clear, FALSE); gtk_box_pack_start (GTK_BOX (hbox11), button_start_clear, FALSE, FALSE, 4); gtk_button_set_relief (GTK_BUTTON (button_start_clear), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_start_clear, _("Reset time")); } g_signal_connect (button_start_clear, "clicked", G_CALLBACK (reset_current_time_start_cb), appGUI); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("First date and time")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox2); gtk_widget_set_margin_left(hbox2, 16); gtk_widget_set_margin_right(hbox2, 4); gtk_widget_set_margin_top(hbox2, 4); gtk_widget_set_margin_bottom(hbox2, 4); gtk_container_add (GTK_CONTAINER (frame), hbox2); vbox5 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox5); gtk_box_pack_start (GTK_BOX (hbox2), vbox5, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox5), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Year")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Month")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Day")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (1, 1, 9999, 1, 10, 0); appGUI->cal->spinbutton_end_year = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_year); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_year, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_year, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 12, 1, 10, 0); appGUI->cal->spinbutton_end_month = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_month); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_month, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_month, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 31, 1, 10, 0); appGUI->cal->spinbutton_end_day = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_day); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_day, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_day, 2, 1, 1, 1); hbox_bet = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox_bet); gtk_box_pack_start (GTK_BOX (vbox5), hbox_bet, FALSE, FALSE, 2); button_end_today = gtk_button_new_with_mnemonic (_("Current date")); gtk_widget_set_size_request (button_end_today, -1, 32); gtk_widget_set_can_focus (button_end_today, FALSE); gtk_widget_show (button_end_today); gtk_box_pack_start (GTK_BOX (hbox_bet), button_end_today, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_end_today, _("Set current date")); } g_signal_connect (button_end_today, "clicked", G_CALLBACK (set_current_date_end_cb), appGUI); vbox6 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox6); gtk_box_pack_start (GTK_BOX (hbox2), vbox6, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox6), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Hour")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Minute")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Second")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 23, 1, 10, 0); appGUI->cal->spinbutton_end_hour = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_hour); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_hour, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_hour, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton_end_minute = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_minute); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_minute, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_minute, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton_end_second = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_end_second); gtk_widget_set_hexpand(appGUI->cal->spinbutton_end_second, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton_end_second, 2, 1, 1, 1); hbox13 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox13); gtk_box_pack_start (GTK_BOX (vbox6), hbox13, FALSE, FALSE, 2); button_end_now = gtk_button_new_with_mnemonic (_("Current time")); gtk_widget_set_size_request (button_end_now, -1, 32); gtk_widget_set_can_focus (button_end_now, FALSE); gtk_widget_show (button_end_now); gtk_box_pack_start (GTK_BOX (hbox13), button_end_now, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_end_now, _("Set current time")); } g_signal_connect (button_end_now, "clicked", G_CALLBACK (set_current_time_end_cb), appGUI); button_end_clear = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (button_end_clear); gtk_widget_set_can_focus (button_end_clear, FALSE); gtk_box_pack_start (GTK_BOX (hbox13), button_end_clear, FALSE, FALSE, 4); gtk_button_set_relief (GTK_BUTTON (button_end_clear), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button_end_clear, _("Reset time")); } g_signal_connect (button_end_clear, "clicked", G_CALLBACK (reset_current_time_end_cb), appGUI); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Second date and time")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox2), hseparator, FALSE, FALSE, 6); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox_result = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox_result); gtk_widget_set_margin_left(vbox_result, 20); gtk_widget_set_margin_right(vbox_result, 8); gtk_widget_set_margin_top(vbox_result, 8); gtk_widget_set_margin_bottom(vbox_result, 8); gtk_container_add (GTK_CONTAINER (frame), vbox_result); appGUI->cal->label_result_1 = gtk_label_new (""); gtk_widget_show (appGUI->cal->label_result_1); gtk_label_set_selectable (GTK_LABEL (appGUI->cal->label_result_1), 1); gtk_box_pack_start (GTK_BOX (vbox_result), appGUI->cal->label_result_1, FALSE, FALSE, 0); appGUI->cal->label_result_1_2 = gtk_label_new (""); gtk_widget_show (appGUI->cal->label_result_1_2); gtk_label_set_selectable (GTK_LABEL (appGUI->cal->label_result_1_2), 1); gtk_box_pack_start (GTK_BOX (vbox_result), appGUI->cal->label_result_1_2, FALSE, FALSE, 0); appGUI->cal->label_result_2 = gtk_label_new (""); gtk_widget_show (appGUI->cal->label_result_2); gtk_label_set_selectable (GTK_LABEL (appGUI->cal->label_result_2), 1); gtk_box_pack_start (GTK_BOX (vbox_result), appGUI->cal->label_result_2, TRUE, TRUE, 0); g_snprintf (tmpbuf, BUFFER_SIZE, "\n%s:\n", _("Alternative time units")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (vbox_result), label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); appGUI->cal->label_result_3 = gtk_label_new (""); gtk_widget_show (appGUI->cal->label_result_3); gtk_label_set_selectable (GTK_LABEL (appGUI->cal->label_result_3), 1); gtk_box_pack_start (GTK_BOX (vbox_result), appGUI->cal->label_result_3, FALSE, FALSE, 0); gtk_widget_set_valign(appGUI->cal->label_result_3, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->label_result_3, GTK_ALIGN_CENTER); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Result")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); label = gtk_label_new (_("Duration between two dates")); gtk_widget_show (label); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), label); vbox7 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox7); gtk_container_add (GTK_CONTAINER (notebook), vbox7); hbox98 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox98); gtk_box_pack_start (GTK_BOX (vbox7), hbox98, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox7), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox22 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox22); gtk_widget_set_margin_left(vbox22, 16); gtk_widget_set_margin_right(vbox22, 4); gtk_widget_set_margin_top(vbox22, 4); gtk_widget_set_margin_bottom(vbox22, 4); gtk_container_add (GTK_CONTAINER (frame), vbox22); hbox9 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox9); gtk_box_pack_start (GTK_BOX (vbox22), hbox9, TRUE, TRUE, 0); vbox8 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox8); gtk_box_pack_start (GTK_BOX (hbox9), vbox8, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox8), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Year")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Month")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Day")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (1, 1, 9999, 1, 10, 0); appGUI->cal->spinbutton2_start_year = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_year); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_year, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_year, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 12, 1, 10, 0); appGUI->cal->spinbutton2_start_month = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_month); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_month, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_month, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (1, 1, 31, 1, 10, 0); appGUI->cal->spinbutton2_start_day = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_day); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_day, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_day, 2, 1, 1, 1); hbox_b2st = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox_b2st); gtk_box_pack_start (GTK_BOX (vbox8), hbox_b2st, FALSE, FALSE, 2); button2_start_today = gtk_button_new_with_mnemonic (_("Current date")); gtk_widget_set_size_request (button2_start_today, -1, 32); gtk_widget_set_can_focus (button2_start_today, FALSE); gtk_widget_show (button2_start_today); gtk_box_pack_start (GTK_BOX (hbox_b2st), button2_start_today, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button2_start_today, _("Set current date")); } g_signal_connect (button2_start_today, "clicked", G_CALLBACK (set_current_date_start2_cb), appGUI); vbox9 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox9); gtk_box_pack_start (GTK_BOX (hbox9), vbox9, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox9), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Hour")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Minute")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Second")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 23, 1, 10, 0); appGUI->cal->spinbutton2_start_hour = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_hour); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_hour, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_hour, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton2_start_minute = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_minute); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_minute, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_minute, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->spinbutton2_start_second = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_start_second); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_start_second, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_start_second, 2, 1, 1, 1); hbox_b2sn = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox_b2sn); gtk_box_pack_start (GTK_BOX (vbox9), hbox_b2sn, FALSE, FALSE, 2); button2_start_now = gtk_button_new_with_mnemonic (_("Current time")); gtk_widget_set_size_request (button2_start_now, -1, 32); gtk_widget_set_can_focus (button2_start_now, FALSE); gtk_widget_show (button2_start_now); gtk_box_pack_start (GTK_BOX (hbox_b2sn), button2_start_now, TRUE, FALSE, 4); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button2_start_now, _("Set current time")); } g_signal_connect (button2_start_now, "clicked", G_CALLBACK (set_current_time_start2_cb), appGUI); button2_start_clear = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (button2_start_clear); gtk_widget_set_can_focus (button2_start_clear, FALSE); gtk_box_pack_start (GTK_BOX (hbox_b2sn), button2_start_clear, FALSE, FALSE, 4); gtk_button_set_relief (GTK_BUTTON (button2_start_clear), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button2_start_clear, _("Reset time")); } g_signal_connect (button2_start_clear, "clicked", G_CALLBACK (reset_current_time_start2_cb), appGUI); hbox14 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox14); gtk_box_pack_start (GTK_BOX (vbox22), hbox14, FALSE, FALSE, 4); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Operation")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox14), label, FALSE, FALSE, 0); appGUI->cal->radiobutton_add = gtk_radio_button_new_with_mnemonic (NULL, _("add")); gtk_widget_show (appGUI->cal->radiobutton_add); gtk_box_pack_start (GTK_BOX (hbox14), appGUI->cal->radiobutton_add, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->cal->radiobutton_add),radiobutton_add_group); radiobutton_add_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->cal->radiobutton_add)); radiobutton_sub = gtk_radio_button_new_with_mnemonic (NULL, _("subtract")); gtk_widget_show (radiobutton_sub); gtk_box_pack_start (GTK_BOX (hbox14), radiobutton_sub, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_sub), radiobutton_add_group); radiobutton_add_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_sub)); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Date and time to add or subtract from")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox7), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox10 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox10); gtk_widget_set_margin_left(vbox10, 12); gtk_container_add (GTK_CONTAINER (frame), vbox10); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox10), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Years")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Months")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 10000, 1, 10, 0); appGUI->cal->spinbutton2_end_year = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_year); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_year, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_year, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 100000, 1, 10, 0); appGUI->cal->spinbutton2_end_month = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_month); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_month, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_month, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 1000000, 1, 10, 0); appGUI->cal->spinbutton2_end_day = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_day); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_day, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_day, 2, 1, 1, 1); label = gtk_label_new (_("Days")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Weeks")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 3, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 1000000, 1, 10, 0); appGUI->cal->spinbutton2_end_week = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_week); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_week, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_week, 3, 1, 1, 1); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox10), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = gtk_label_new (_("Hours")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Minutes")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Seconds")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (0, 0, 100000000, 1, 10, 0); appGUI->cal->spinbutton2_end_hour = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_hour); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_hour, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_hour, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 1000000000, 1, 10, 0); appGUI->cal->spinbutton2_end_minute = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_minute); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_minute, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_minute, 1, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (0, 0, 2000000000, 1, 10, 0); appGUI->cal->spinbutton2_end_second = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton2_end_second); gtk_widget_set_hexpand(appGUI->cal->spinbutton2_end_second, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->spinbutton2_end_second, 2, 1, 1, 1); hbox10 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox10); gtk_box_pack_start (GTK_BOX (vbox10), hbox10, TRUE, TRUE, 4); appGUI->cal->ignore_weekend_days_checkbutton = gtk_check_button_new_with_mnemonic (_("Ignore weekend days")); gtk_widget_set_can_focus (appGUI->cal->ignore_weekend_days_checkbutton, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->ignore_weekend_days_checkbutton), FALSE); g_signal_connect (G_OBJECT (appGUI->cal->ignore_weekend_days_checkbutton), "toggled", G_CALLBACK (ignore_weekend_days_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox10), appGUI->cal->ignore_weekend_days_checkbutton, FALSE, FALSE, 2); gtk_widget_show (appGUI->cal->ignore_weekend_days_checkbutton); button2_end_clear = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (button2_end_clear); gtk_widget_set_can_focus (button2_end_clear, FALSE); gtk_box_pack_end (GTK_BOX (hbox10), button2_end_clear, FALSE, FALSE, 4); gtk_button_set_relief (GTK_BUTTON (button2_end_clear), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (button2_end_clear, _("Reset fields")); } g_signal_connect (button2_end_clear, "clicked", G_CALLBACK (reset_addsub_time_cb), appGUI); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Time to add or subtract")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox7), hseparator, FALSE, FALSE, 6); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox7), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox12 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox12); gtk_widget_set_margin_left(hbox12, 20); gtk_widget_set_margin_right(hbox12, 8); gtk_widget_set_margin_top(hbox12, 8); gtk_widget_set_margin_bottom(hbox12, 8); gtk_container_add (GTK_CONTAINER (frame), hbox12); appGUI->cal->label2_result = gtk_label_new ("-"); gtk_label_set_selectable (GTK_LABEL (appGUI->cal->label2_result), 1); gtk_widget_show (appGUI->cal->label2_result); gtk_box_pack_start (GTK_BOX (hbox12), appGUI->cal->label2_result, TRUE, TRUE, 4); jumpto_button = gtk_button_new_with_mnemonic (_("_Jump to")); gtk_widget_show (jumpto_button); g_signal_connect(jumpto_button, "clicked", G_CALLBACK(jumpto_and_window_close_cb), appGUI); gtk_box_pack_end (GTK_BOX (hbox12), jumpto_button, FALSE, TRUE, 4); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Result")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); label = gtk_label_new (_("Add to or subtract from a date")); gtk_widget_show (label); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), label); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, FALSE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_end (GTK_BOX (vbox), hbuttonbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox), 4); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); /*---------------------------------------------------------------------------------*/ close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); gtk_widget_set_can_focus (close_button, FALSE); g_signal_connect (appGUI->cal->spinbutton_start_year, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_start_month, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_start_day, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_start_hour, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_start_minute, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_start_second, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_year, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_month, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_day, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_hour, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_minute, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton_end_second, "value-changed", G_CALLBACK (set_result_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_year, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_month, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_day, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_hour, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_minute, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_start_second, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_year, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_month, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_week, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_day, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_hour, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_minute, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->spinbutton2_end_second, "value-changed", G_CALLBACK (set_result2_cb), appGUI); g_signal_connect (appGUI->cal->radiobutton_add, "toggled", G_CALLBACK (set_result2_cb), appGUI); set_current_date_start_cb (NULL, appGUI); set_current_date_start2_cb (NULL, appGUI); set_current_date_end_cb (NULL, appGUI); g_signal_connect (close_button, "clicked", G_CALLBACK (button_window_date_calculator_close_cb), appGUI); gtk_container_add (GTK_CONTAINER (hbuttonbox), close_button); gtk_window_get_position (GTK_WINDOW (appGUI->cal->window_date_calculator), &win_xpos, &win_ypos); gtk_window_move (GTK_WINDOW (appGUI->cal->window_date_calculator), win_xpos-5, win_ypos-40); gtk_widget_show (appGUI->cal->window_date_calculator); } osmo-0.4.2/src/utils_date_time.c0000664000175000017500000001064413066543472013542 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "options_prefs.h" #include "utils_date_time.h" /*============================================================================*/ gint utl_date_time_compare (GDate *date1, TIME *time1, GDate *date2, TIME *time2) { g_return_val_if_fail (g_date_valid (date1), 0); g_return_val_if_fail (g_date_valid (date2), 0); g_return_val_if_fail (utl_time_valid (time1), 0); g_return_val_if_fail (utl_time_valid (time2), 0); gint n; if ((n = g_date_compare (date1, date2)) == 0) return utl_time_compare (time1, time2); return n; } /*============================================================================*/ gint utl_date_time_compare_js (guint32 julian1, gint seconds1, guint32 julian2, gint seconds2) { if (julian1 == julian2) return ((seconds1 > seconds2) ? 1 : ((seconds1 < seconds2) ? -1 : 0)); return ((julian1 > julian2) ? 1 : -1); } /*============================================================================*/ gboolean utl_date_time_in_the_past_js (guint32 julian, gint seconds) { guint32 cj = utl_date_get_current_julian (); gint cs = utl_time_get_current_seconds (); if (utl_date_time_compare_js (julian, seconds, cj, cs) <= 0) return TRUE; else return FALSE; } /*============================================================================*/ gchar * utl_date_time_print (GDate *d, gint date_format, TIME *t, gint time_format, gint override_locale) { g_return_val_if_fail (g_date_valid (d), NULL); g_return_val_if_fail (utl_time_valid (t), NULL); gchar *date_str = utl_date_print (d, date_format, override_locale); gchar *time_str = utl_time_print (t, time_format, override_locale); gchar *date_time_str = g_strdup_printf ("%s, %s", date_str, time_str); g_free (date_str); g_free (time_str); return date_time_str; } /*============================================================================*/ gchar * utl_date_time_print_js (guint32 julian, gint date_format, gint seconds, gint time_format, gint override_locale) { gchar *date_time_str, *date_str, *time_str; if (utl_time_valid_seconds (seconds)) { date_str = utl_date_print_j (julian, date_format, override_locale); time_str = utl_time_print_s (seconds, time_format, override_locale); date_time_str = g_strdup_printf ("%s, %s", date_str, time_str); g_free (date_str); g_free (time_str); } else date_time_str = utl_date_print_j (julian, date_format, override_locale); return date_time_str; } /*============================================================================*/ gchar * utl_date_time_print_default (guint32 julian, gint seconds, gboolean with_sec) { gchar *str = utl_date_time_print_js (julian, config.date_format, seconds, config.time_format + (with_sec ? 2 : 0), /* TIME_HH_MM -> TIME_HH_MM_SS */ config.override_locale_settings); return str; } /*============================================================================*/ gboolean utl_date_time_order (GDate *date1, TIME *time1, GDate *date2, TIME *time2) { g_return_val_if_fail (g_date_valid (date1), FALSE); g_return_val_if_fail (g_date_valid (date2), FALSE); g_return_val_if_fail (utl_time_valid (time1), FALSE); g_return_val_if_fail (utl_time_valid (time2), FALSE); if (utl_date_order (date1, date2)) { TIME tmp = *time1; *time1 = *time2; *time2 = tmp; return TRUE; } else if (g_date_compare (date1, date2) == 0 && utl_time_order (time1, time2)) return TRUE; else return FALSE; } /*============================================================================*/ osmo-0.4.2/src/calendar.c0000664000175000017500000032124513161167412012132 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "about.h" #include "calendar.h" #include "backup.h" #include "i18n.h" #include "calendar_print.h" #include "calendar_widget.h" #include "calendar_jumpto.h" #include "calendar_fullyear.h" #include "tasks.h" #include "tasks_items.h" #include "contacts.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "options_prefs.h" #include "tasks_utils.h" #include "calendar_notes.h" #include "calendar_timeline.h" #include "calendar_calc.h" #include "calendar_ical.h" #include "check_events.h" #include "stock_icons.h" #include "preferences_gui.h" #ifndef HAVE_LIBWEBKIT #include "calendar_moon_a.h" #else #include "calendar_moon_b.h" #endif /*------------------------------------------------------------------------------*/ static void show_preferences_window_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; appGUI->opt->window = opt_create_preferences_window (appGUI); gtk_widget_show (appGUI->opt->window); gint page = gtk_notebook_page_num (GTK_NOTEBOOK (appGUI->opt->notebook), appGUI->opt->calendar); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->opt->notebook), page); } /*------------------------------------------------------------------------------*/ #ifndef HAVE_LIBWEBKIT static const guint8 * cal_get_moon_icon (gint moon_phase) { static const guint8 *icons_table[] = { moon_phase_0, moon_phase_1, moon_phase_2, moon_phase_3, moon_phase_4, moon_phase_5, moon_phase_6, moon_phase_7 }; return icons_table[moon_phase]; } static void cal_set_moon_icon (gint moon_phase, GUI *appGUI) { GdkPixbuf *icon; gchar tmpbuf[BUFFER_SIZE]; icon = gdk_pixbuf_new_from_inline (-1, cal_get_moon_icon(moon_phase), FALSE, NULL); gtk_image_set_from_pixbuf (GTK_IMAGE (appGUI->cal->moon_icon), icon); g_object_unref (icon); g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)", utl_get_moon_phase_name (moon_phase)); gtk_label_set_text (GTK_LABEL (appGUI->cal->moon_phase_label), tmpbuf); } #else gchar * cal_get_moonphase_img (guint phase) { gchar *outStr = NULL; gchar *moonimg = NULL; guchar *phases[] = { moonphase_0_data, moonphase_1_data, moonphase_2_data, moonphase_3_data, moonphase_4_data, moonphase_5_data, moonphase_6_data, moonphase_7_data }; guint phases_len[] = { sizeof(moonphase_0_data), sizeof(moonphase_1_data), sizeof(moonphase_2_data), sizeof(moonphase_3_data), sizeof(moonphase_4_data), sizeof(moonphase_5_data), sizeof(moonphase_6_data), sizeof(moonphase_7_data) }; if (phase > 7) return ""; outStr = g_base64_encode (phases[phase], phases_len[phase]); moonimg = g_strdup_printf("", outStr); g_free(outStr); return moonimg; } #endif /* HAVE_LIBWEBKIT */ /*------------------------------------------------------------------------------*/ static void cal_mark_days_with_notes (GDate *date, GUI *appGUI) { GDate *tmpdate; gint i, days; tmpdate = g_date_new_dmy (1, g_date_get_month (date), g_date_get_year (date)); g_return_if_fail (tmpdate != NULL); if (appGUI->calendar_only == TRUE) return; gui_calendar_clear_marks (GUI_CALENDAR (appGUI->cal->calendar), DAY_NOTE_MARK); gui_calendar_clear_marks (GUI_CALENDAR (appGUI->cal->calendar), EVENT_MARK); gui_calendar_clear_marks (GUI_CALENDAR (appGUI->cal->calendar), BIRTHDAY_MARK); if (config.enable_day_mark == FALSE) return; days = utl_date_get_days_in_month (tmpdate); for (i = 1; i <= days; i++) { g_date_set_day (tmpdate, i); if (cal_check_note (g_date_get_julian (tmpdate), appGUI) == TRUE) { gui_calendar_set_day_color (GUI_CALENDAR (appGUI->cal->calendar), i, cal_get_note_color (g_date_get_julian (tmpdate), appGUI)); } calendar_mark_events (appGUI->cal->calendar, g_date_get_julian (tmpdate), i, appGUI); } g_date_free (tmpdate); } /*------------------------------------------------------------------------------*/ void cal_refresh_marks (GUI *appGUI) { cal_mark_days_with_notes (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ gint cal_get_marked_days (GDate *date, GUI *appGUI) { guint32 julian; gint i, n, days; julian = utl_date_dmy_to_julian (1, g_date_get_month (date), g_date_get_year (date)); days = utl_date_get_days_in_month (date); n = 0; for (i = 0; i < days; i++) if (cal_check_note (julian + i, appGUI) == TRUE) n++; return n; } /*------------------------------------------------------------------------------*/ gint get_marked_days (guint month, guint year, GUI *appGUI) { guint32 julian; gint i, n, days; n = 0; days = g_date_get_days_in_month (month + 1, year); julian = utl_date_dmy_to_julian (1, month + 1, year); for (i = 0; i < days; i++) if (cal_check_note (julian + i, appGUI) == TRUE) n++; return n; } /*------------------------------------------------------------------------------*/ void cal_update_note (GDate *date, gchar *color, GUI *appGUI) { GtkTextBuffer *textbuffer; gchar *text; textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); text = utl_gui_text_buffer_get_text_with_tags (GTK_TEXT_BUFFER (textbuffer)); if (text != NULL) { if (g_utf8_strlen (text, -1)) { cal_refresh_marks (appGUI); update_aux_calendars (appGUI); cal_add_note (g_date_get_julian (date), color, text, appGUI); } else { cal_remove_note (g_date_get_julian (date), appGUI); } g_free (text); } cal_set_day_info (appGUI); } /*------------------------------------------------------------------------------*/ void calendar_update_note (guint uday, guint umonth, guint uyear, gchar *color, GUI *appGUI) { GtkTextBuffer *textbuffer; gchar *text; GDate *date; date = g_date_new_dmy (uday, umonth + 1, uyear); textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); text = utl_gui_text_buffer_get_text_with_tags (GTK_TEXT_BUFFER (textbuffer)); if (text != NULL) { if (g_utf8_strlen (text, -1)) { cal_refresh_marks (appGUI); update_aux_calendars (appGUI); cal_add_note (g_date_get_julian (date), color, text, appGUI); } else { cal_remove_note (g_date_get_julian (date), appGUI); } g_free (text); } cal_set_day_info (appGUI); g_date_free (date); } /*------------------------------------------------------------------------------*/ void cal_mark_events (GtkWidget *calendar, GDate *date, GUI *appGUI) { guint month, year; guint i, days; GDate *tmpdate; if (appGUI->calendar_only == TRUE) return; tmpdate = g_date_new_julian (g_date_get_julian (date)); month = g_date_get_month (tmpdate) - 1; year = g_date_get_year (tmpdate); gui_calendar_select_day (GUI_CALENDAR (calendar), 1); gui_calendar_select_month (GUI_CALENDAR (calendar), month, year); gui_calendar_clear_marks (GUI_CALENDAR (calendar), DAY_NOTE_MARK); gui_calendar_clear_marks (GUI_CALENDAR (calendar), EVENT_MARK); gui_calendar_clear_marks (GUI_CALENDAR (calendar), BIRTHDAY_MARK); if (config.enable_day_mark == FALSE) return; days = utl_date_get_days_in_month (tmpdate); for (i = 1; i <= days; i++) { g_date_set_day (tmpdate, i); if (cal_check_note (g_date_get_julian (tmpdate), appGUI) == TRUE) { gui_calendar_set_day_color (GUI_CALENDAR (calendar), i, cal_get_note_color (g_date_get_julian (tmpdate), appGUI)); } calendar_mark_events (calendar, g_date_get_julian (tmpdate), i, appGUI); } g_date_free (tmpdate); } /*------------------------------------------------------------------------------*/ void mark_events (GtkWidget *calendar, guint month, guint year, GUI *appGUI) { guint32 julian; guint i, days; if (appGUI->calendar_only == TRUE) return; gui_calendar_select_month (GUI_CALENDAR (calendar), month, year); gui_calendar_select_day (GUI_CALENDAR (calendar), 1); gui_calendar_clear_marks (GUI_CALENDAR (calendar), DAY_NOTE_MARK); gui_calendar_clear_marks (GUI_CALENDAR (calendar), EVENT_MARK); gui_calendar_clear_marks (GUI_CALENDAR (calendar), BIRTHDAY_MARK); if (config.enable_day_mark == FALSE) return; days = g_date_get_days_in_month (month + 1, year); for (i = 1; i <= days; i++) { julian = utl_date_dmy_to_julian (i, month + 1, year); if (cal_check_note (julian, appGUI) == TRUE) { gui_calendar_set_day_color (GUI_CALENDAR (calendar), i, cal_get_note_color (julian, appGUI)); } calendar_mark_events (calendar, julian, i, appGUI); } } /*------------------------------------------------------------------------------*/ void update_aux_calendars (GUI *appGUI) { gchar buffer[BUFFER_SIZE]; GDate *tmpdate; if (appGUI->calendar_only == TRUE) return; if (!config.gui_layout) { if (appGUI->calendar_only == TRUE || config.enable_auxilary_calendars == FALSE || config.auxilary_calendars_state == FALSE) return; } tmpdate = g_date_new (); g_return_if_fail (tmpdate != NULL); g_date_set_julian (tmpdate, g_date_get_julian (appGUI->cal->date)); g_date_subtract_months (tmpdate, 1); g_date_strftime (buffer, BUFFER_SIZE, "%B %Y", tmpdate); gtk_label_set_text (GTK_LABEL (appGUI->cal->prev_month_label), buffer); cal_mark_events (appGUI->cal->calendar_prev, tmpdate, appGUI); g_date_set_julian (tmpdate, g_date_get_julian (appGUI->cal->date)); g_date_add_months (tmpdate, 1); g_date_strftime (buffer, BUFFER_SIZE, "%B %Y", tmpdate); gtk_label_set_text (GTK_LABEL (appGUI->cal->next_month_label), buffer); cal_mark_events (appGUI->cal->calendar_next, tmpdate, appGUI); g_date_free (tmpdate); } /*------------------------------------------------------------------------------*/ #ifdef TASKS_ENABLED gint check_add_tasks (GDate *date, gboolean count, gchar **html, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *model; guint32 julian, sjulian; gboolean done; gint time; gchar *summary, *category; gchar tmpbuf[BUFFER_SIZE]; gint i; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); g_return_val_if_fail (model != NULL, 0); path = gtk_tree_path_new_first (); sjulian = g_date_get_julian (date); i = 0; while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_DATE_JULIAN, &julian, TA_COLUMN_CATEGORY, &category, -1); if (julian == sjulian && tsk_get_category_state (category, STATE_CALENDAR, appGUI) == TRUE) { if (count == FALSE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_TIME, &time, TA_COLUMN_DONE, &done, TA_COLUMN_SUMMARY, &summary, -1); if (time >= 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d. [%02d:%02d] %s", i + 1, time / 3600, time / 60 % 60, summary); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%d. %s", i + 1, summary); } if (html != NULL) { if (done == TRUE) { *(html) = utl_strconcat (*(html), "", tmpbuf, "
", NULL); } else { *(html) = utl_strconcat (*(html), tmpbuf, "
", NULL); } } else { if (done == TRUE) { gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "strike", NULL); } else { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1); } gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } g_free (summary); } i++; } g_free (category); gtk_tree_path_next (path); } gtk_tree_path_free (path); return i; } #endif /* TASKS_ENABLED */ /*------------------------------------------------------------------------------*/ #ifdef CONTACTS_ENABLED gint check_add_contacts (GDate *sdate, gboolean count, gchar **html, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *model; guint32 julian; gchar *first_name, *last_name; gchar tmpbuf[BUFFER_SIZE], buffer[BUFFER_SIZE]; GDate *date; gint i, age, syear; model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_val_if_fail (model != NULL, 0); date = g_date_new (); g_return_val_if_fail (date != NULL, 0); syear = g_date_get_year (sdate); path = gtk_tree_path_new_first (); i = 0; while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_BIRTH_DAY_DATE, &julian, -1); if (g_date_valid_julian (julian)) { g_date_set_julian (date, julian); age = syear - g_date_get_year (date); if (age >= 0) { if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), syear) == FALSE) { g_date_subtract_days (date, 1); } g_date_set_year (date, syear); if (g_date_compare (date, sdate) == 0) { if (count == FALSE) { gtk_tree_model_get (model, &iter, COLUMN_FIRST_NAME, &first_name, COLUMN_LAST_NAME, &last_name, -1); utl_name_strcat (first_name, last_name, buffer); if (age == 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s %s\n", buffer, _("was born")); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%s (%d %s)\n", buffer, age, ngettext ("year old", "years old", age)); } if (html != NULL) { *(html) = utl_strconcat (*(html), tmpbuf, NULL); } else { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1); } } i++; } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (date); return i; } #endif /* CONTACTS_ENABLED */ /*------------------------------------------------------------------------------*/ gchar * cal_get_day_category (GDate *date, GUI *appGUI) { GtkTreeIter iter; static gchar buffer[BUFFER_SIZE]; gchar *color_val, *color_name, *color_sel; gint i; i = 0; buffer[0] = '\0'; color_sel = cal_get_note_color (g_date_get_julian (date), appGUI); if (color_sel == NULL) return buffer; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, 1, &color_val, 2, &color_name, -1); if (!strcmp (color_val, color_sel)) { g_snprintf (buffer, BUFFER_SIZE, "%s", color_name); g_free (color_val); g_free (color_name); break; } g_free (color_val); g_free (color_name); } return buffer; } /*------------------------------------------------------------------------------*/ void update_clock (GUI *appGUI) { #ifdef HAVE_LIBWEBKIT if (config.di_show_current_time) { cal_set_day_info (appGUI); } #else gchar *tstr, *text; tstr = utl_time_print_default (utl_time_get_current_seconds (), config.di_show_current_time_seconds); text = g_strdup_printf ("%s", tstr); if (appGUI->cal->time_label) { gtk_label_set_markup (GTK_LABEL (appGUI->cal->time_label), text); } g_free (tstr); g_free (text); #endif /* HAVE_LIBWEBKIT */ } /*------------------------------------------------------------------------------*/ void cal_set_day_info (GUI *appGUI) { static guint cmonth = 0; gchar tmpbuf[BUFFER_SIZE]; GDate *date; guint dday, dmonth, dyear; gint edays, i; gchar *text; date = appGUI->cal->date; dday = g_date_get_day (date); dmonth = g_date_get_month (date) - 1; dyear = g_date_get_year (date); #ifdef HAVE_LIBWEBKIT gchar *output = g_strdup (""); /*gchar *icon;*/ /*const guint8 *moon_icon;*/ /*moon_icon = cal_get_moon_icon (utl_calc_moon_phase (date));*/ /*icon = utl_inline_image_to_html (moon_icon);*/ output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); /* body */ output = utl_strconcat (output, "", NULL); if (config.di_show_current_time) { gchar *tstr = utl_time_print_default (utl_time_get_current_seconds (), config.di_show_current_time_seconds); g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); g_free (tstr); } output = utl_strconcat (output, "", NULL); if (config.di_show_day_number) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_current_day_distance) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_week_number) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_marked_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_weekend_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_moon_phase) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "", NULL); if (config.di_show_zodiac_sign) { g_snprintf (tmpbuf, BUFFER_SIZE, "", NULL); } output = utl_strconcat (output, "
%s:", _("Current time")); output = utl_strconcat (output, tmpbuf, tstr, "
%s:", _("Day number")); output = utl_strconcat (output, tmpbuf, NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", g_date_get_day_of_year (date)); output = utl_strconcat (output, tmpbuf, " ", NULL); edays = utl_get_days_per_year (g_date_get_year (date)) - g_date_get_day_of_year (date); if (edays) { g_snprintf (tmpbuf, BUFFER_SIZE, "(%d %s)", edays, ngettext ("day till end of year", "days till end of year", edays)); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)", _("the last day of the year")); } output = utl_strconcat (output, tmpbuf, "
%s:", _("Today distance")); output = utl_strconcat (output, tmpbuf, get_current_date_distance_str (g_date_get_julian (date)), "
%s:", _("Week number")); output = utl_strconcat (output, tmpbuf, NULL); if (utl_get_week_number (dyear, dmonth + 1, dday) > utl_weeks_in_year (dyear)) { g_snprintf (tmpbuf, BUFFER_SIZE, "1 / %d", utl_weeks_in_year (dyear+1)); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%d / %d", utl_get_week_number (dyear, dmonth+1, dday), utl_weeks_in_year (dyear)); } output = utl_strconcat (output, tmpbuf, "
%s:", _("Marked days")); output = utl_strconcat (output, tmpbuf, NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", get_marked_days (g_date_get_month (date)-1, g_date_get_year (date), appGUI)); output = utl_strconcat (output, tmpbuf, "
%s:", _("Weekend days")); output = utl_strconcat (output, tmpbuf, NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_get_weekend_days_in_month (date)); output = utl_strconcat (output, tmpbuf, "
%s:", _("Moon phase")); output = utl_strconcat (output, tmpbuf, NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "%s (%s)", cal_get_moonphase_img(utl_calc_moon_phase (date)), utl_get_moon_phase_name (utl_calc_moon_phase (date))); output = utl_strconcat (output, tmpbuf, "
%s:", _("Zodiac sign")); output = utl_strconcat (output, tmpbuf, utl_get_zodiac_name (g_date_get_day (date), g_date_get_month (date)), "
", NULL); if (config.di_show_notes && config.enable_day_mark) { text = cal_get_note (g_date_get_julian (date), appGUI); if (text != NULL) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Day notes")); output = utl_strconcat (output, "

", tmpbuf, "", NULL); gchar *txt = utl_text_with_tags_to_html (text); if (g_date_get_julian (date) < utl_date_get_current_julian () && config.strikethrough_past_notes == TRUE) { output = utl_strconcat (output, "", txt, "

", NULL); } else { output = utl_strconcat (output, txt, "

", NULL); } g_free (txt); } } if (appGUI->calendar_only != TRUE && appGUI->all_pages_added != FALSE && config.enable_day_mark) { #ifdef TASKS_ENABLED /* check tasks */ i = check_add_tasks (date, TRUE, NULL, appGUI); if (i) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Day tasks")); output = utl_strconcat (output, "

", tmpbuf, "", NULL); check_add_tasks (date, FALSE, &output, appGUI); output = utl_strconcat (output, "

", NULL); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* check contacts */ i = check_add_contacts (date, TRUE, NULL, appGUI); if (i) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Birthday")); output = utl_strconcat (output, "

", tmpbuf, "", NULL); check_add_contacts (date, FALSE, &output, appGUI); output = utl_strconcat (output, "

", NULL); } #endif /* CONTACTS_ENABLED */ } #ifdef HAVE_LIBICAL output = utl_strconcat (output, "

", NULL); calendar_display_ics (date, &output, appGUI); output = utl_strconcat (output, "

", NULL); #endif /* HAVE_LIBICAL */ output = utl_strconcat (output, "
", NULL); output = utl_strconcat (output, "", NULL); #ifndef HAVE_LIBWEBKIT g_free (icon); #endif webkit_settings_set_default_font_size (webkit_web_view_get_settings(appGUI->cal->html_webkitview), PANGO_PIXELS(pango_font_description_get_size (appGUI->cal->fd_notes_font))); webkit_web_view_load_html (appGUI->cal->html_webkitview, output, "file://"); g_free (output); #else GtkTextChildAnchor *anchor = NULL; GtkWidget *table = NULL, *label; gint rows; gchar *stripped; gchar *day_category; day_category = cal_get_day_category (date, appGUI); utl_gui_clear_text_buffer (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter); rows = config.di_show_current_time + config.di_show_day_number + config.di_show_marked_days + config.di_show_week_number + config.di_show_weekend_days + config.di_show_moon_phase + config.di_show_zodiac_sign + config.di_show_current_day_distance + config.di_show_day_category; if (rows != 0) { anchor = gtk_text_buffer_create_child_anchor (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter); table = gtk_grid_new (); gtk_widget_show (table); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 8); } i = 0; if (config.di_show_current_time) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Current time")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_day_number) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Day number")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_current_day_distance) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Today distance")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_week_number) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Week number")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_marked_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Marked days")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_weekend_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Weekend days")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_day_category && g_utf8_strlen (day_category, -1) && config.enable_day_mark) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Day category")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_moon_phase) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Moon phase")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); i++; } if (config.di_show_zodiac_sign) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Zodiac sign")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); } i = 0; appGUI->cal->time_label = gtk_label_new (NULL); if (config.di_show_current_time) { update_clock (appGUI); gtk_widget_show (appGUI->cal->time_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->time_label, 1, i, 2, 1); gtk_widget_set_valign(appGUI->cal->time_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->time_label, GTK_ALIGN_CENTER); i++; } if (config.di_show_day_number) { appGUI->cal->day_number_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->day_number_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->day_number_label, 1, i, 1, 1); gtk_widget_set_valign(appGUI->cal->day_number_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->day_number_label, GTK_ALIGN_CENTER); appGUI->cal->day_number_year_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->day_number_year_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->day_number_year_label, 2, i, 1, 1); gtk_widget_set_valign(appGUI->cal->day_number_year_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->day_number_year_label, GTK_ALIGN_CENTER); i++; } if (config.di_show_current_day_distance) { label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, i, 2, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_label_set_text (GTK_LABEL (label), get_current_date_distance_str (g_date_get_julian (date))); i++; } if (config.di_show_week_number) { appGUI->cal->week_number_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->week_number_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->week_number_label, 1, i, 2, 1); gtk_widget_set_valign(appGUI->cal->week_number_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->week_number_label, GTK_ALIGN_CENTER); i++; } if (config.di_show_marked_days) { appGUI->cal->marked_days_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->marked_days_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->marked_days_label, 1, i, 2, 1); gtk_widget_set_valign(appGUI->cal->marked_days_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->marked_days_label, GTK_ALIGN_CENTER); i++; } if (config.di_show_weekend_days) { appGUI->cal->weekend_days_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->weekend_days_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->weekend_days_label, 1, i, 2, 1); gtk_widget_set_valign(appGUI->cal->weekend_days_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->weekend_days_label, GTK_ALIGN_CENTER); i++; } if (config.di_show_day_category && g_utf8_strlen (day_category, -1) && config.enable_day_mark) { appGUI->cal->day_category_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->day_category_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->day_category_label, 1, i, 2, 1); gtk_widget_set_valign(appGUI->cal->day_category_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->day_category_label, GTK_ALIGN_CENTER); i++; } #ifndef HAVE_LIBWEBKIT if (config.di_show_moon_phase) { appGUI->cal->moon_icon = gtk_image_new(); gtk_widget_show (appGUI->cal->moon_icon); gtk_grid_attach (GTK_GRID (table), appGUI->cal->moon_icon, 1, i, 1, 1); gtk_widget_set_valign(appGUI->cal->moon_icon, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->moon_icon, GTK_ALIGN_CENTER); appGUI->cal->moon_phase_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->moon_phase_label); gtk_grid_attach (GTK_GRID (table), appGUI->cal->moon_phase_label, 2, i, 1, 1); gtk_widget_set_valign(appGUI->cal->moon_phase_label, GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cal->moon_phase_label, GTK_ALIGN_CENTER); cal_set_moon_icon (utl_calc_moon_phase (date), appGUI); i++; } #endif if (config.di_show_zodiac_sign) { label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 1, i, 2, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_label_set_text (GTK_LABEL (label), utl_get_zodiac_name (g_date_get_day (date), g_date_get_month (date))); } if (config.di_show_day_number) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d", g_date_get_day_of_year (date)); gtk_label_set_text (GTK_LABEL (appGUI->cal->day_number_label), tmpbuf); edays = utl_get_days_per_year (g_date_get_year (date)) - g_date_get_day_of_year (date); if (edays) { g_snprintf (tmpbuf, BUFFER_SIZE, "(%d %s)", edays, ngettext ("day till end of year", "days till end of year", edays)); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)", _("the last day of the year")); } gtk_label_set_text (GTK_LABEL (appGUI->cal->day_number_year_label), tmpbuf); } if (config.di_show_week_number) { if (utl_get_week_number (dyear, dmonth + 1, dday) > utl_weeks_in_year (dyear)) { g_snprintf (tmpbuf, BUFFER_SIZE, "1 / %d", utl_weeks_in_year (dyear+1)); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%d / %d", utl_get_week_number (dyear, dmonth+1, dday), utl_weeks_in_year (dyear)); } gtk_label_set_text (GTK_LABEL (appGUI->cal->week_number_label), tmpbuf); } if (config.di_show_marked_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d", get_marked_days (g_date_get_month (date)-1, g_date_get_year (date), appGUI)); gtk_label_set_text (GTK_LABEL (appGUI->cal->marked_days_label), tmpbuf); } if (config.di_show_weekend_days) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_get_weekend_days_in_month (date)); gtk_label_set_text (GTK_LABEL (appGUI->cal->weekend_days_label), tmpbuf); } if (config.di_show_day_category && g_utf8_strlen (day_category, -1) && config.enable_day_mark) { gtk_label_set_text (GTK_LABEL (appGUI->cal->day_category_label), day_category); } if (rows != 0) { gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), table, anchor); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n\n", -1); } if (config.di_show_notes && config.enable_day_mark) { text = cal_get_note (g_date_get_julian (date), appGUI); if (text != NULL) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Day notes")); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "bold", NULL); if (g_date_get_julian (date) < utl_date_get_current_julian () && config.strikethrough_past_notes == TRUE) { stripped = utl_gui_text_strip_tags (text); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, stripped, -1, "strike", NULL); g_free (stripped); } else { utl_gui_text_buffer_set_text_with_tags (appGUI->cal->day_desc_text_buffer, text, FALSE); gtk_text_buffer_get_end_iter (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter); } if (text[g_utf8_strlen (text, -1) - 1] != '\n') { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n\n", -1); } else { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } } } if (appGUI->calendar_only != TRUE && appGUI->all_pages_added != FALSE && config.enable_day_mark) { #ifdef TASKS_ENABLED /* check tasks */ i = check_add_tasks (date, TRUE, NULL, appGUI); if (i) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Day tasks")); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "bold", NULL); check_add_tasks (date, FALSE, NULL, appGUI); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* check contacts */ i = check_add_contacts (date, TRUE, appGUI); if (i) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", _("Birthday")); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "bold", NULL); check_add_contacts (date, FALSE, appGUI); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } #endif /* CONTACTS_ENABLED */ } #ifdef HAVE_LIBICAL calendar_display_ics (date, NULL, appGUI); #endif /* HAVE_LIBICAL */ #endif /* HAVE_LIBWEBKIT */ if (cmonth != g_date_get_month (date)) { cmonth = g_date_get_month (date); update_aux_calendars (appGUI); } } /*------------------------------------------------------------------------------*/ void cal_set_note (GDate *date, GUI *appGUI) { GtkTextBuffer *textbuffer; GtkTextIter iter_start, iter_end; gchar *t; textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); t = cal_get_note (g_date_get_julian (date), appGUI); if (t != NULL) { utl_gui_text_buffer_set_text_with_tags (GTK_TEXT_BUFFER (textbuffer), t, TRUE); } else { gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (textbuffer), &iter_start); gtk_text_buffer_get_end_iter (GTK_TEXT_BUFFER (textbuffer), &iter_end); gtk_text_buffer_delete (GTK_TEXT_BUFFER (textbuffer), &iter_start, &iter_end); } } /*------------------------------------------------------------------------------*/ void day_notes_toggled_cb (GtkToggleToolButton *togglebutton, gpointer user_data) { GUI *appGUI = (GUI *) user_data; config.day_notes_visible = gtk_toggle_tool_button_get_active (GTK_TOGGLE_TOOL_BUTTON (appGUI->cal->notes_button)); if (!config.day_notes_visible) { #ifdef HAVE_GSPELL utl_gui_set_enable_spell_check(appGUI->cal->calendar_note_spelltextview, FALSE); #endif /* HAVE_GSPELL */ config.enable_day_mark = TRUE; cal_update_note (appGUI->cal->date, cal_get_note_color (g_date_get_julian (appGUI->cal->date), appGUI), appGUI); cal_mark_days_with_notes (appGUI->cal->date, appGUI); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), FALSE); gtk_widget_hide (appGUI->cal->notes_vbox); gtk_widget_show (appGUI->cal->day_info_vbox); gui_systray_tooltip_update (appGUI); update_aux_calendars (appGUI); if (config.save_data_after_modification) { cal_write_notes (appGUI); } } else { /* enable (optionally) spell checker */ #ifdef HAVE_GSPELL appGUI->cal->calendar_note_spelltextview = utl_gui_create_spell_check_textview(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), config.day_note_spell_checker); #endif /* HAVE_GSPELL */ gtk_widget_show (appGUI->cal->notes_vbox); gtk_widget_hide (appGUI->cal->day_info_vbox); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), TRUE); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), TRUE); gtk_widget_grab_focus (GTK_WIDGET (appGUI->cal->calendar_note_textview)); } } /*------------------------------------------------------------------------------*/ void cal_set_date (GDate *date, GUI *appGUI) { g_date_set_julian (appGUI->cal->date, g_date_get_julian (date)); gui_calendar_select_day (GUI_CALENDAR (appGUI->cal->calendar), 1); /* Trick: always select valid day number */ gui_calendar_select_month (GUI_CALENDAR (appGUI->cal->calendar), g_date_get_month (date) - 1, g_date_get_year (date)); gui_calendar_select_day (GUI_CALENDAR (appGUI->cal->calendar), g_date_get_day (date)); gtk_label_set_text (GTK_LABEL (appGUI->cal->date_label), utl_get_date_name_format (date, config.date_header_format)); } /*------------------------------------------------------------------------------*/ void cal_jump_to_date (GDate *date, GUI *appGUI) { appGUI->cal->dont_update = TRUE; cal_set_date (date, appGUI); if (appGUI->calendar_only == FALSE) { cal_mark_days_with_notes (date, appGUI); cal_set_note (date, appGUI); cal_set_day_info (appGUI); enable_disable_note_buttons (appGUI); } appGUI->cal->dont_update = FALSE; } /*------------------------------------------------------------------------------*/ void calendar_set_today (GUI *appGUI) { g_date_set_time_t (appGUI->cal->date, time (NULL)); cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_close_text_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_widget_hide (appGUI->cal->notes_vbox); gtk_widget_show (appGUI->cal->day_info_vbox); gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (appGUI->cal->notes_button), FALSE); gtk_widget_grab_focus (GTK_WIDGET (appGUI->cal->calendar)); } /*------------------------------------------------------------------------------*/ gchar * calendar_get_note_text (GUI *appGUI) { GtkTextBuffer *textbuffer; if (appGUI->calendar_only == TRUE) return NULL; textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); return utl_gui_text_buffer_get_text_with_tags (GTK_TEXT_BUFFER (textbuffer)); } /*------------------------------------------------------------------------------*/ void calendar_clear_text_cb (GtkWidget *widget, gpointer user_data) { gchar *text = NULL; gchar tmpbuf[BUFFER_SIZE]; gint response; GUI *appGUI = (GUI *) user_data; text = calendar_get_note_text (appGUI); if (text == NULL) return; if (!g_utf8_strlen (text, -1)) { g_free (text); return; } g_snprintf (tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("Selected day note will be removed."), _("Continue?")); response = utl_gui_create_dialog (GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW (appGUI->main_window)); if (response == GTK_RESPONSE_YES) { gtk_text_buffer_set_text (GTK_TEXT_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview))), "", -1); enable_disable_note_buttons (appGUI); cal_update_note (appGUI->cal->date, NULL, appGUI); cal_mark_days_with_notes (appGUI->cal->date, appGUI); gui_systray_tooltip_update (appGUI); if (config.save_data_after_modification) { cal_write_notes (appGUI); } } g_free (text); } /*------------------------------------------------------------------------------*/ void calendar_insert_timeline_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; calendar_create_insert_timeline_window (appGUI); } /*------------------------------------------------------------------------------*/ void calendar_select_color_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; calendar_create_color_selector_window (FALSE, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_update_date (guint day, guint month, guint year, GUI *appGUI) { guint max_day; GDate *date; max_day = g_date_get_days_in_month (month, year); if (day > max_day) day = max_day; date = g_date_new_dmy (day, month, year); g_return_if_fail (date != NULL); cal_jump_to_date (date, appGUI); g_date_free (date); } /*------------------------------------------------------------------------------*/ void calendar_btn_prev_day (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if (g_date_get_julian (appGUI->cal->date) <= 1) return; if ((g_date_get_day (appGUI->cal->date) > 1) || (config.display_options & GUI_CALENDAR_NO_MONTH_CHANGE) == FALSE) g_date_subtract_days (appGUI->cal->date, 1); cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_next_day (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if ((g_date_get_day (appGUI->cal->date) < utl_date_get_days_in_month (appGUI->cal->date) || (config.display_options & GUI_CALENDAR_NO_MONTH_CHANGE) == FALSE)) { g_date_add_days (appGUI->cal->date, 1); } cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_today (GUI *appGUI) { calendar_store_note (appGUI); calendar_set_today (appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_prev_week (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if (g_date_get_julian (appGUI->cal->date) <= 7) return; if ((g_date_get_day (appGUI->cal->date) > 7) || (config.display_options & GUI_CALENDAR_NO_MONTH_CHANGE) == FALSE) g_date_subtract_days (appGUI->cal->date, 7); cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_next_week (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if ((g_date_get_day (appGUI->cal->date) + 7 <= utl_date_get_days_in_month (appGUI->cal->date)) || (config.display_options & GUI_CALENDAR_NO_MONTH_CHANGE) == FALSE) { g_date_add_days (appGUI->cal->date, 7); } cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_prev_month (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if (g_date_get_julian (appGUI->cal->date) <= 31) return; g_date_subtract_months (appGUI->cal->date, 1); cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_next_month (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); g_date_add_months (appGUI->cal->date, 1); cal_jump_to_date (appGUI->cal->date, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_prev_year (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); if (g_date_get_year (appGUI->cal->date) == 1) return; g_date_subtract_years (appGUI->cal->date, 1); cal_jump_to_date (appGUI->cal->date, appGUI); update_aux_calendars (appGUI); } /*------------------------------------------------------------------------------*/ void calendar_btn_next_year (GUI *appGUI) { calendar_store_note (appGUI); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); g_date_add_years (appGUI->cal->date, 1); cal_jump_to_date (appGUI->cal->date, appGUI); update_aux_calendars (appGUI); } /*------------------------------------------------------------------------------*/ void calendar_store_note (GUI *appGUI) { gchar *text = NULL; guint32 julian = g_date_get_julian (appGUI->cal->date); text = calendar_get_note_text (appGUI); if (config.day_notes_visible && g_utf8_strlen (text, -1)) cal_add_note (julian, cal_get_note_color (julian, appGUI), text, appGUI); g_free (text); } /*------------------------------------------------------------------------------*/ void calendar_day_selected_cb (GuiCalendar *calendar, GUI *appGUI) { GDate *prev_date = g_date_new_julian (g_date_get_julian (appGUI->cal->date)); if (appGUI->cal->dont_update == FALSE) gui_calendar_get_gdate (GUI_CALENDAR (calendar), appGUI->cal->date); gtk_label_set_text (GTK_LABEL (appGUI->cal->date_label), utl_get_date_name_format (appGUI->cal->date, config.date_header_format)); if (appGUI->cal->dont_update == FALSE) { if (appGUI->calendar_only == FALSE) { cal_update_note (prev_date, cal_get_note_color (g_date_get_julian (prev_date), appGUI), appGUI); cal_mark_days_with_notes (appGUI->cal->date, appGUI); cal_set_note (appGUI->cal->date, appGUI); cal_set_day_info (appGUI); enable_disable_note_buttons (appGUI); } } g_date_free (prev_date); if (appGUI->calendar_only == FALSE) { /* enable/disable 'select day color' popup entry */ if (cal_check_note (g_date_get_julian (appGUI->cal->date), appGUI) == TRUE) { gtk_widget_show (appGUI->cal->popup_menu_select_day_color_entry); } else { gtk_widget_hide (appGUI->cal->popup_menu_select_day_color_entry); } } } /*------------------------------------------------------------------------------*/ void calendar_dc_day_selected_cb (GuiCalendar *calendar, gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->calendar_only == FALSE) { if (!config.day_notes_visible) { enable_disable_note_buttons(appGUI); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), !gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button))); } } } /*------------------------------------------------------------------------------*/ void enable_disable_note_buttons (GUI *appGUI) { gboolean state = FALSE; gchar *text = calendar_get_note_text (appGUI); if (g_utf8_strlen (text, -1)) state = TRUE; gtk_widget_set_sensitive (appGUI->cal->n_clear_button, state); gtk_widget_set_sensitive (appGUI->cal->n_select_color_button, state); g_free (text); } /*------------------------------------------------------------------------------*/ gint calendar_textbuffer_changed_cb (GtkTextBuffer *textbuffer, gpointer user_data) { GUI *appGUI = (GUI *) user_data; enable_disable_note_buttons (appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ gboolean click_handler_cb (GtkWidget * widget, GdkEventButton * event, gpointer data) { GUI *appGUI = (GUI *)data; if ((event->type == GDK_BUTTON_PRESS && event->button == 1) || /* LMB */ (event->type == GDK_BUTTON_PRESS && event->button == 3)) { /* RMB */ gtk_menu_popup(GTK_MENU(appGUI->cal->month_selector_menu), NULL, NULL, NULL, NULL, event->button, event->time); return TRUE; } else if (event->type == GDK_BUTTON_PRESS && event->button == 2) { /* MMB */ calendar_update_date (g_date_get_day (appGUI->cal->date), utl_date_get_current_month (), g_date_get_year (appGUI->cal->date), appGUI); } return FALSE; } /*------------------------------------------------------------------------------*/ static void calendar_create_jumpto_window_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; calendar_create_jumpto_window (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_create_fullyear_window_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_create_fullyear_window (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_create_datecalc_window_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_create_calc_window (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_prev_year_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_prev_year (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_next_year_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_next_year (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_prev_month_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_prev_month (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_next_month_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_next_month (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_prev_day_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_prev_day (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_next_day_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_next_day (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_btn_today_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_btn_today (appGUI); } /*------------------------------------------------------------------------------*/ static void calendar_edit_note_cb (GtkToggleToolButton *toggle_tool_button, gpointer data) { GUI *appGUI = (GUI *)data; day_notes_toggled_cb (toggle_tool_button, appGUI); } /*------------------------------------------------------------------------------*/ void aux_cal_expander_cb (GObject *object, GParamSpec *param_spec, gpointer user_data) { GUI *appGUI = (GUI *)user_data; config.auxilary_calendars_state = gtk_expander_get_expanded (GTK_EXPANDER(appGUI->cal->aux_cal_expander)); update_aux_calendars (appGUI); } /*------------------------------------------------------------------------------*/ gboolean mouse_button_click_handler_cb (GtkWidget * widget, GdkEventButton * event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->type == GDK_BUTTON_PRESS && event->button == 3 && appGUI->calendar_only == FALSE) { /* RMB */ gtk_menu_popup(GTK_MENU(appGUI->cal->popup_menu), NULL, NULL, NULL, NULL, event->button, event->time); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ #ifdef TASKS_ENABLED void popup_add_task_entry_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *) user_data; GDate *date = g_date_new (); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), date); tasks_add_edit_dialog_show (FALSE, g_date_get_julian (date), utl_time_get_current_seconds (), appGUI); g_date_free (date); } #endif /* TASKS_ENABLED */ /*------------------------------------------------------------------------------*/ void popup_select_day_color_entry_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *) user_data; calendar_create_color_selector_window (TRUE, appGUI); } /*------------------------------------------------------------------------------*/ void popup_browse_notes_cb (gpointer user_data) { GUI *appGUI = (GUI *) user_data; cal_notes_browser (appGUI); } /*------------------------------------------------------------------------------*/ #ifdef PRINTING_SUPPORT static void calendar_print_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; calendar_create_print_window (appGUI); } #endif /* PRINTING_SUPPORT */ /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBICAL void popup_ical_export_cb (gpointer user_data) { GUI *appGUI = (GUI *) user_data; ical_export (appGUI); } void popup_ical_browse_cb (gpointer user_data) { GUI *appGUI = (GUI *) user_data; ical_events_browser (appGUI); } #endif /* HAVE_LIBICAL */ /*------------------------------------------------------------------------------*/ void calendar_set_text_attribute_cb (GtkWidget *widget, gpointer user_data) { GtkTextBuffer *buffer; gchar *tagname; GUI *appGUI = (GUI *)user_data; tagname = (gchar*) g_object_get_data (G_OBJECT (widget), "tag"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); utl_gui_text_buffer_toggle_tags (buffer, tagname); g_signal_emit_by_name(G_OBJECT(buffer), "changed"); } /*------------------------------------------------------------------------------*/ void date_selected_cb (GtkCalendar *calendar, gpointer user_data) { GUI *appGUI = (GUI *)user_data; GDate *date = g_date_new (); if (!config.gui_layout) { if (gtk_expander_get_expanded (GTK_EXPANDER(appGUI->cal->aux_cal_expander)) == FALSE) { g_date_free (date); return; } } gui_calendar_get_gdate (GUI_CALENDAR (calendar), date); cal_jump_to_date (date, appGUI); update_aux_calendars (appGUI); g_date_free (date); } /*------------------------------------------------------------------------------*/ #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) static void button_create_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_create(appGUI); } static void button_restore_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_restore(appGUI); } #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ void gui_set_calendar_defaults(GtkWidget *calendar) { gui_calendar_set_color (GUI_CALENDAR (calendar), config.background_color, 0, BACKGROUND_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.header_bg_color, 0, HEADER_BG_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.header_fg_color, 0, HEADER_FG_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.day_color, 0, DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.pf_day_color, 0, PF_DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.weekend_color, 0, WEEKEND_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.selection_color, config.selector_alpha, SELECTOR_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.mark_color, 0, EVENT_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (calendar), config.birthday_mark_color, 0, BIRTHDAY_MARKER_COLOR); gui_calendar_set_marker (GUI_CALENDAR (calendar), config.event_marker_type, EVENT_MARKER); gui_calendar_set_marker (GUI_CALENDAR (calendar), config.today_marker_type, TODAY_MARKER); gui_calendar_set_day_note_marker_symbol (GUI_CALENDAR (calendar), config.day_note_marker); } /*------------------------------------------------------------------------------*/ void gui_create_calendar(GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *vbox3; GtkWidget *hbox1 = NULL; GtkWidget *hbox2; GtkWidget *hbox3; GtkWidget *eventbox; GtkWidget *hseparator; GtkWidget *label; GtkWidget *frame; GtkWidget *vseparator; #ifdef PRINTING_SUPPORT GtkToolItem *print_button; #endif /* PRINTING_SUPPORT */ GtkToolItem *preferences_button, *about_button; #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) GtkToolItem *backup_button, *restore_button; #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ GtkWidget *note_scrolledwindow; #ifdef TASKS_ENABLED GtkWidget *popup_menu_add_task_entry; #endif /* TASKS_ENABLED */ GtkWidget *popup_menu_separator; GtkWidget *popup_menu_browse_notes; GtkTextBuffer *buffer; #ifdef HAVE_LIBICAL GtkWidget *popup_menu_ical_browse; GtkWidget *popup_menu_ical_export; #endif /* HAVE_LIBICAL */ #ifndef HAVE_LIBWEBKIT GdkRGBA color; #endif /* HAVE_LIBWEBKIT */ gchar tmpbuf[BUFFER_SIZE]; vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 0); g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("Calendar")); gui_add_to_notebook (vbox1, tmpbuf, appGUI); appGUI->cal->vbox = GTK_BOX(vbox1); if (config.hide_calendar == TRUE) { gtk_widget_hide(GTK_WIDGET(appGUI->cal->vbox)); } /*-------------------------------------------------------------------------------------*/ appGUI->cal->calendar_toolbar = GTK_TOOLBAR(gtk_toolbar_new()); gtk_box_pack_start(GTK_BOX(vbox1), GTK_WIDGET(appGUI->cal->calendar_toolbar), FALSE, FALSE, 0); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREV_YEAR, _("Previous year"), calendar_btn_prev_year_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREV_MONTH, _("Previous month"), calendar_btn_prev_month_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREV_DAY, _("Previous day"), calendar_btn_prev_day_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_TODAY, _("Today"), calendar_btn_today_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_NEXT_DAY, _("Next day"), calendar_btn_next_day_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_NEXT_MONTH, _("Next month"), calendar_btn_next_month_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_NEXT_YEAR, _("Next year"), calendar_btn_next_year_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_JUMPTO, _("Jump to date"), calendar_create_jumpto_window_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_FULLYEAR, _("Full-year calendar"), calendar_create_fullyear_window_cb), -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_CALCULATOR, _("Date calculator"), calendar_create_datecalc_window_cb), -1); #ifdef PRINTING_SUPPORT print_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_PRINT, _("Print calendar"), calendar_print_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, print_button, -1); #endif /* PRINTING_SUPPORT */ gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gtk_separator_tool_item_new(), -1); appGUI->cal->notes_button = gui_create_toolbar_toggle_button(appGUI, OSMO_STOCK_EDIT_NOTE, _("Toggle day note panel"), calendar_edit_note_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, appGUI->cal->notes_button, -1); gui_append_toolbar_spring(appGUI->cal->calendar_toolbar); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gtk_separator_tool_item_new(), -1); backup_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_BACKUP, _("Backup data"), button_create_backup_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, backup_button, -1); restore_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_RESTORE, _("Restore data"), button_restore_backup_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, restore_button, -1); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, gtk_separator_tool_item_new(), -1); #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ preferences_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_PREFERENCES, _("Preferences"), show_preferences_window_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, preferences_button, -1); about_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_ABOUT, _("About"), gui_show_about_window_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, about_button, -1); appGUI->cal->quit_button = gui_create_toolbar_button(appGUI, "application-exit", _("Quit"), gui_quit_osmo_cb); gtk_toolbar_insert(appGUI->cal->calendar_toolbar, appGUI->cal->quit_button, -1); gtk_toolbar_set_style (appGUI->cal->calendar_toolbar, GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(appGUI->cal->calendar_toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show_all(GTK_WIDGET(appGUI->cal->calendar_toolbar)); if (appGUI->calendar_only == TRUE) { gtk_widget_hide(GTK_WIDGET(appGUI->cal->notes_button)); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cal->notes_button), FALSE); #ifdef PRINTING_SUPPORT gtk_widget_hide (GTK_WIDGET(print_button)); #endif /* PRINTING_SUPPORT */ gtk_widget_hide (GTK_WIDGET(preferences_button)); gtk_widget_hide (GTK_WIDGET(about_button)); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) gtk_widget_hide (GTK_WIDGET(backup_button)); gtk_widget_hide (GTK_WIDGET(restore_button)); #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ } /*-------------------------------------------------------------------------------------*/ vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0); if (config.gui_layout && appGUI->calendar_only == FALSE) { hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, TRUE, TRUE, 0); } vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_hexpand (vbox3, FALSE); gtk_widget_set_margin_left(vbox3, 8); gtk_widget_set_margin_right(vbox3, 8); gtk_widget_set_margin_bottom(vbox3, 8); gtk_widget_show (vbox3); if (appGUI->calendar_only == TRUE) { gtk_box_pack_start (GTK_BOX (vbox2), vbox3, TRUE, TRUE, 0); } else { if (!config.gui_layout) { gtk_box_pack_start (GTK_BOX (vbox2), vbox3, TRUE, TRUE, 0); } else { gtk_box_pack_start (GTK_BOX (hbox1), vbox3, FALSE, FALSE, 0); } } hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, FALSE, 6); eventbox = gtk_event_box_new (); gtk_widget_show (eventbox); gtk_box_pack_start (GTK_BOX (vbox3), eventbox, FALSE, FALSE, 0); g_signal_connect (G_OBJECT(eventbox), "button_press_event", G_CALLBACK(click_handler_cb), appGUI); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox2); gtk_container_add (GTK_CONTAINER (eventbox), hbox2); /* Calendar popup menu */ if (appGUI->calendar_only == FALSE) { appGUI->cal->popup_menu = gtk_menu_new(); #ifdef TASKS_ENABLED popup_menu_add_task_entry = gtk_menu_item_new_with_label(_("Add task")); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_add_task_entry); g_signal_connect_swapped(G_OBJECT(popup_menu_add_task_entry), "activate", G_CALLBACK(popup_add_task_entry_selected_cb), appGUI); gtk_widget_show(popup_menu_add_task_entry); #endif /* TASKS_ENABLED */ appGUI->cal->popup_menu_select_day_color_entry = gtk_menu_item_new_with_label(_("Select day color")); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), appGUI->cal->popup_menu_select_day_color_entry); g_signal_connect_swapped(G_OBJECT(appGUI->cal->popup_menu_select_day_color_entry), "activate", G_CALLBACK(popup_select_day_color_entry_selected_cb), appGUI); gtk_widget_show(appGUI->cal->popup_menu_select_day_color_entry); popup_menu_separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_separator); gtk_widget_show(popup_menu_separator); popup_menu_browse_notes = gtk_menu_item_new_with_label(_("Browse notes")); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_browse_notes); g_signal_connect_swapped(G_OBJECT(popup_menu_browse_notes), "activate", G_CALLBACK(popup_browse_notes_cb), appGUI); gtk_widget_show(popup_menu_browse_notes); #ifdef HAVE_LIBICAL popup_menu_ical_browse = gtk_menu_item_new_with_label(_("Browse iCal events")); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_ical_browse); g_signal_connect_swapped(G_OBJECT(popup_menu_ical_browse), "activate", G_CALLBACK(popup_ical_browse_cb), appGUI); gtk_widget_show(popup_menu_ical_browse); popup_menu_separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_separator); gtk_widget_show(popup_menu_separator); popup_menu_ical_export = gtk_menu_item_new_with_label(_("Export to iCal file")); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->cal->popup_menu), popup_menu_ical_export); g_signal_connect_swapped(G_OBJECT(popup_menu_ical_export), "activate", G_CALLBACK(popup_ical_export_cb), appGUI); gtk_widget_show(popup_menu_ical_export); #endif /* HAVE_LIBICAL */ } appGUI->cal->date_label = gtk_label_new (NULL); gtk_widget_show (appGUI->cal->date_label); gtk_box_pack_start (GTK_BOX (hbox2), appGUI->cal->date_label, TRUE, FALSE, 8); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, FALSE, 6); appGUI->cal->calendar = gui_calendar_new (); gtk_widget_show (appGUI->cal->calendar); gui_calendar_set_cursor_type(GUI_CALENDAR(appGUI->cal->calendar), config.cursor_type); gtk_widget_set_can_focus (appGUI->cal->calendar, FALSE); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar), config.display_options); gtk_widget_override_font (GTK_WIDGET(appGUI->cal->calendar), appGUI->cal->fd_cal_font); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cal->calendar, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (appGUI->cal->calendar), "day-selected", G_CALLBACK (calendar_day_selected_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->calendar), "day-selected-double-click", G_CALLBACK (calendar_dc_day_selected_cb), appGUI); g_signal_connect (G_OBJECT(appGUI->cal->calendar), "button_press_event", G_CALLBACK(mouse_button_click_handler_cb), appGUI); gui_calendar_enable_cursor (GUI_CALENDAR (appGUI->cal->calendar), TRUE); gui_set_calendar_defaults(appGUI->cal->calendar); appGUI->cal->month_selector_menu = gtk_menu_new(); calendar_create_popup_menu (appGUI->cal->month_selector_menu, appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, FALSE, 6); /*-------------------------------------------------------------------------------------*/ if (appGUI->calendar_only == FALSE) { if (!config.gui_layout) { appGUI->cal->aux_cal_expander = gtk_expander_new (_("Previous and next month")); gtk_widget_set_can_focus (appGUI->cal->aux_cal_expander, FALSE); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cal->aux_cal_expander, FALSE, TRUE, 0); } appGUI->cal->aux_calendars_table = gtk_grid_new (); if (!config.gui_layout) { gtk_container_add (GTK_CONTAINER (appGUI->cal->aux_cal_expander), appGUI->cal->aux_calendars_table); } else { gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cal->aux_calendars_table, FALSE, TRUE, 0); } gtk_grid_set_row_spacing (GTK_GRID (appGUI->cal->aux_calendars_table), 4); gtk_grid_set_column_spacing (GTK_GRID (appGUI->cal->aux_calendars_table), 4); if (config.enable_auxilary_calendars == TRUE) { if (!config.gui_layout) { gtk_widget_show (appGUI->cal->aux_cal_expander); } gtk_widget_show (appGUI->cal->aux_calendars_table); } appGUI->cal->prev_month_label = gtk_label_new (""); gtk_widget_show (appGUI->cal->prev_month_label); gtk_widget_set_hexpand(appGUI->cal->prev_month_label, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->aux_calendars_table), appGUI->cal->prev_month_label, 0, 0, 1, 1); appGUI->cal->next_month_label = gtk_label_new (""); gtk_widget_show (appGUI->cal->next_month_label); gtk_widget_set_hexpand(appGUI->cal->next_month_label, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->aux_calendars_table), appGUI->cal->next_month_label, 1, 0, 1, 1); appGUI->cal->calendar_prev = gui_calendar_new (); gtk_widget_show (appGUI->cal->calendar_prev); gtk_widget_set_can_focus (appGUI->cal->calendar_prev, FALSE); gtk_grid_attach (GTK_GRID (appGUI->cal->aux_calendars_table), appGUI->cal->calendar_prev, 0, 1, 1, 1); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar_prev), (config.display_options & (GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_WEEK_START_MONDAY)) | GUI_CALENDAR_NO_MONTH_CHANGE); gui_calendar_enable_cursor (GUI_CALENDAR (appGUI->cal->calendar_prev), FALSE); gui_set_calendar_defaults(appGUI->cal->calendar_prev); g_signal_connect (G_OBJECT (appGUI->cal->calendar_prev), "day_selected_double_click", G_CALLBACK (date_selected_cb), appGUI); appGUI->cal->calendar_next = gui_calendar_new (); gtk_widget_show (appGUI->cal->calendar_next); gtk_widget_set_can_focus (appGUI->cal->calendar_next, FALSE); gtk_grid_attach (GTK_GRID (appGUI->cal->aux_calendars_table), appGUI->cal->calendar_next, 1, 1, 1, 1); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar_next), (config.display_options & (GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_WEEK_START_MONDAY)) | GUI_CALENDAR_NO_MONTH_CHANGE); gui_calendar_enable_cursor (GUI_CALENDAR (appGUI->cal->calendar_next), FALSE); gui_set_calendar_defaults(appGUI->cal->calendar_next); g_signal_connect (G_OBJECT (appGUI->cal->calendar_next), "day_selected_double_click", G_CALLBACK (date_selected_cb), appGUI); /*-------------------------------------------------------------------------------------*/ /* notes */ appGUI->cal->notes_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (appGUI->cal->notes_vbox); gtk_widget_set_margin_right(GTK_WIDGET(appGUI->cal->notes_vbox), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(appGUI->cal->notes_vbox), 8); if (!config.gui_layout) { gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cal->notes_vbox, TRUE, TRUE, 0); } else { gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->notes_vbox, TRUE, TRUE, 0); } hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (appGUI->cal->notes_vbox), hbox3, FALSE, FALSE, 0); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Notes")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox3), label, FALSE, FALSE, 4); appGUI->cal->n_close_button = gtk_button_new_from_icon_name("window-close", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (appGUI->cal->n_close_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->n_close_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->n_close_button, _("Close note panel")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->n_close_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (appGUI->cal->n_close_button), "clicked", G_CALLBACK (calendar_close_text_cb), appGUI); appGUI->cal->ta_highlight_button = gtk_button_new_from_icon_name (OSMO_STOCK_EDITOR_HIGHLIGHT_S, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->ta_highlight_button); gtk_widget_set_can_focus (appGUI->cal->ta_highlight_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->ta_highlight_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->ta_highlight_button, _("Highlight")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->ta_highlight_button, FALSE, FALSE, 1); g_object_set_data (G_OBJECT (appGUI->cal->ta_highlight_button), "tag", "mark_color"); g_signal_connect (G_OBJECT (appGUI->cal->ta_highlight_button), "clicked", G_CALLBACK (calendar_set_text_attribute_cb), appGUI); appGUI->cal->ta_strikethrough_button = gtk_button_new_from_icon_name (OSMO_STOCK_EDITOR_STRIKETHROUGH_S, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->ta_strikethrough_button); gtk_widget_set_can_focus (appGUI->cal->ta_strikethrough_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->ta_strikethrough_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->ta_strikethrough_button, _("Strikethrough")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->ta_strikethrough_button, FALSE, FALSE, 1); g_object_set_data (G_OBJECT (appGUI->cal->ta_strikethrough_button), "tag", "strike"); g_signal_connect (G_OBJECT (appGUI->cal->ta_strikethrough_button), "clicked", G_CALLBACK (calendar_set_text_attribute_cb), appGUI); appGUI->cal->ta_underline_button = gtk_button_new_from_icon_name (OSMO_STOCK_EDITOR_UNDERLINE_S, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->ta_underline_button); gtk_widget_set_can_focus (appGUI->cal->ta_underline_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->ta_underline_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->ta_underline_button, _("Underline")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->ta_underline_button, FALSE, FALSE, 1); g_object_set_data (G_OBJECT (appGUI->cal->ta_underline_button), "tag", "underline"); g_signal_connect (G_OBJECT (appGUI->cal->ta_underline_button), "clicked", G_CALLBACK (calendar_set_text_attribute_cb), appGUI); appGUI->cal->ta_italic_button = gtk_button_new_from_icon_name (OSMO_STOCK_EDITOR_ITALIC_S, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->ta_italic_button); gtk_widget_set_can_focus (appGUI->cal->ta_italic_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->ta_italic_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->ta_italic_button, _("Italic")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->ta_italic_button, FALSE, FALSE, 1); g_object_set_data (G_OBJECT (appGUI->cal->ta_italic_button), "tag", "italic"); g_signal_connect (G_OBJECT (appGUI->cal->ta_italic_button), "clicked", G_CALLBACK (calendar_set_text_attribute_cb), appGUI); appGUI->cal->ta_bold_button = gtk_button_new_from_icon_name (OSMO_STOCK_EDITOR_BOLD_S, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->ta_bold_button); gtk_widget_set_can_focus (appGUI->cal->ta_bold_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->ta_bold_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->ta_bold_button, _("Bold")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->ta_bold_button, FALSE, FALSE, 1); g_object_set_data (G_OBJECT (appGUI->cal->ta_bold_button), "tag", "bold"); g_signal_connect (G_OBJECT (appGUI->cal->ta_bold_button), "clicked", G_CALLBACK (calendar_set_text_attribute_cb), appGUI); vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_box_pack_end (GTK_BOX (hbox3), vseparator, FALSE, TRUE, 0); appGUI->cal->n_timeline_button = gtk_button_new_from_icon_name (OSMO_STOCK_BUTTON_INSERT_TIMELINE, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->n_timeline_button); gtk_widget_set_can_focus (appGUI->cal->n_timeline_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->n_timeline_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->n_timeline_button, _("Insert timeline")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->n_timeline_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (appGUI->cal->n_timeline_button), "clicked", G_CALLBACK (calendar_insert_timeline_cb), appGUI); appGUI->cal->n_clear_button = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->n_clear_button); gtk_widget_set_can_focus (appGUI->cal->n_clear_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->n_clear_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->n_clear_button, _("Clear text")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->n_clear_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (appGUI->cal->n_clear_button), "clicked", G_CALLBACK (calendar_clear_text_cb), appGUI); appGUI->cal->n_select_color_button = gtk_button_new_from_icon_name (OSMO_STOCK_BUTTON_SELECT_COLOR, GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cal->n_select_color_button); gtk_widget_set_can_focus (appGUI->cal->n_select_color_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cal->n_select_color_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->n_select_color_button, _("Select day color")); } gtk_box_pack_end (GTK_BOX (hbox3), appGUI->cal->n_select_color_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (appGUI->cal->n_select_color_button), "clicked", G_CALLBACK (calendar_select_color_cb), appGUI); note_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (note_scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (note_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (appGUI->cal->notes_vbox), note_scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (note_scrolledwindow), GTK_SHADOW_IN); appGUI->cal->calendar_note_textview = gtk_text_view_new (); gtk_widget_show (appGUI->cal->calendar_note_textview); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview)); g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (calendar_textbuffer_changed_cb), appGUI); gtk_container_add (GTK_CONTAINER (note_scrolledwindow), appGUI->cal->calendar_note_textview); gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), TRUE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->cal->calendar_note_textview), GTK_WRAP_WORD_CHAR); gtk_widget_override_font (GTK_WIDGET(appGUI->cal->calendar_note_textview), appGUI->cal->fd_notes_font); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), 4); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), 4); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), 4); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_create_tag (buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (buffer, "strike", "strikethrough", TRUE, NULL); gtk_text_buffer_create_tag (buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (buffer, "mark_color", "background", "#FFFF00", NULL); #ifdef HAVE_GSPELL utl_gui_set_enable_spell_check(appGUI->cal->calendar_note_spelltextview, config.day_note_spell_checker); #endif /* HAVE_GSPELL */ /*-------------------------------------------------------------------------------------*/ /* day info */ appGUI->cal->day_info_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (appGUI->cal->day_info_vbox); if (!config.gui_layout) { gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cal->day_info_vbox, TRUE, TRUE, 0); } else { gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->day_info_vbox, TRUE, TRUE, 0); } frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->cal->day_info_vbox), frame, TRUE, TRUE, 0); gtk_widget_set_margin_right(GTK_WIDGET(frame), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(frame), 8); gtk_frame_set_label_align (GTK_FRAME (frame), 0.98, 0.5); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("Info")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->cal->day_info_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->cal->day_info_scrolledwindow); gtk_container_add (GTK_CONTAINER (frame), appGUI->cal->day_info_scrolledwindow); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (appGUI->cal->day_info_scrolledwindow), GTK_SHADOW_NONE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->cal->day_info_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); #ifdef HAVE_LIBWEBKIT appGUI->cal->html_webkitview = utl_create_webkit_web_view(appGUI); g_signal_connect (appGUI->cal->html_webkitview, "context-menu", G_CALLBACK (utl_webkit_on_menu), appGUI); g_signal_connect (appGUI->cal->html_webkitview, "decide-policy", G_CALLBACK (utl_webkit_link_clicked), appGUI); gtk_widget_show (GTK_WIDGET(appGUI->cal->html_webkitview)); gtk_container_add (GTK_CONTAINER (appGUI->cal->day_info_scrolledwindow), GTK_WIDGET(appGUI->cal->html_webkitview)); #else appGUI->cal->day_desc_textview = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->cal->day_desc_textview), GTK_WRAP_WORD); gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), 4); gtk_text_view_set_left_margin (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), 4); gtk_text_view_set_right_margin (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), 4); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW(appGUI->cal->day_desc_textview), FALSE); gtk_widget_show (appGUI->cal->day_desc_textview); gtk_container_add (GTK_CONTAINER (appGUI->cal->day_info_scrolledwindow), appGUI->cal->day_desc_textview); gtk_widget_realize (appGUI->cal->day_desc_textview); appGUI->cal->day_desc_text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->cal->day_desc_textview)); gtk_text_buffer_create_tag (appGUI->cal->day_desc_text_buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_create_tag (appGUI->cal->day_desc_text_buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (appGUI->cal->day_desc_text_buffer, "strike", "strikethrough", TRUE, NULL); gtk_text_buffer_create_tag (appGUI->cal->day_desc_text_buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (appGUI->cal->day_desc_text_buffer, "mark_color", "background", "#FFFF00", NULL); #endif /* HAVE_LIBWEBKIT */ /*-------------------------------------------------------------------------------------*/ } gtk_widget_override_font (GTK_WIDGET(appGUI->cal->date_label), appGUI->cal->fd_day_name_font); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->calendar), appGUI->cal->date); gui_calendar_set_frame_cursor_thickness (GUI_CALENDAR (appGUI->cal->calendar), config.frame_cursor_thickness); if (appGUI->calendar_only == FALSE) { if (!config.day_notes_visible) { gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), FALSE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), FALSE); gtk_text_view_set_editable(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), FALSE); gtk_widget_show(appGUI->cal->day_info_vbox); gtk_widget_hide(appGUI->cal->notes_vbox); } else { gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), TRUE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), TRUE); gtk_text_view_set_editable(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview), TRUE); gtk_widget_hide(appGUI->cal->day_info_vbox); gtk_widget_show(appGUI->cal->notes_vbox); } gtk_widget_realize(GTK_WIDGET(appGUI->cal->calendar_note_textview)); gtk_widget_grab_focus(GTK_WIDGET(appGUI->cal->calendar_note_textview)); } if (appGUI->calendar_only == FALSE) { if (!config.gui_layout) { g_signal_connect (G_OBJECT(appGUI->cal->aux_cal_expander), "notify::expanded", G_CALLBACK(aux_cal_expander_cb), appGUI); gtk_expander_set_expanded (GTK_EXPANDER(appGUI->cal->aux_cal_expander), config.auxilary_calendars_state); } else { update_aux_calendars (appGUI); } } } /*------------------------------------------------------------------------------*/ void select_bg_color_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_widget_destroy (appGUI->cal->select_bg_color_window); } /*------------------------------------------------------------------------------*/ void button_select_bg_color_close_cb (GtkWidget *widget, gpointer user_data) { select_bg_color_close_cb (widget, NULL, user_data); } /*------------------------------------------------------------------------------*/ void colors_category_selected (GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gchar *color_val = NULL; gchar *text = NULL; gint n; if (gtk_tree_selection_get_selected (appGUI->cal->colors_category_select, &model, &iter)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cal->colors_category_store), &iter, 1, &color_val, 3, &n, -1); text = calendar_get_note_text (appGUI); cal_add_note (g_date_get_julian (appGUI->cal->date), color_val, text, appGUI); cal_mark_days_with_notes (appGUI->cal->date, appGUI); select_bg_color_close_cb (NULL, NULL, appGUI); update_aux_calendars (appGUI); g_free (color_val); g_free (text); } } /*------------------------------------------------------------------------------*/ void select_bg_color_apply_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; config.enable_day_mark = TRUE; cal_refresh_marks (appGUI); update_aux_calendars (appGUI); colors_category_selected (appGUI); } /*------------------------------------------------------------------------------*/ gint select_bg_color_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; switch (event->keyval) { case GDK_KEY_Return: config.enable_day_mark = TRUE; cal_refresh_marks (appGUI); update_aux_calendars (appGUI); colors_category_selected (appGUI); return TRUE; case GDK_KEY_Escape: select_bg_color_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint colors_list_dbclick_cb (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) { config.enable_day_mark = TRUE; cal_refresh_marks (appGUI); update_aux_calendars (appGUI); colors_category_selected (appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void calendar_create_color_selector_window (gboolean window_pos, GUI *appGUI) { GtkWidget *vbox1; GtkWidget *scrolledwindow; GtkWidget *colors_category_treeview; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *ok_button; GtkWidget *cancel_button; GtkTreeIter iter; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreePath *path; GdkPixbuf *image; gchar *color_val, *color_name, *color_sel; gchar tmpbuf[BUFFER_SIZE]; gint i; if (cal_check_note (g_date_get_julian (appGUI->cal->date), appGUI) == FALSE && !config.day_notes_visible) return; config.enable_day_mark = TRUE; cal_refresh_marks (appGUI); update_aux_calendars (appGUI); appGUI->cal->select_bg_color_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->select_bg_color_window), 4); gtk_window_set_title (GTK_WINDOW (appGUI->cal->select_bg_color_window), _("Select color")); gtk_window_set_default_size (GTK_WINDOW(appGUI->cal->select_bg_color_window), 200, 280); gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->select_bg_color_window), GTK_WINDOW(appGUI->main_window)); if (window_pos == TRUE) { gtk_window_set_position(GTK_WINDOW(appGUI->cal->select_bg_color_window), GTK_WIN_POS_CENTER_ON_PARENT); } else { gtk_window_set_position(GTK_WINDOW(appGUI->cal->select_bg_color_window), GTK_WIN_POS_MOUSE); } gtk_window_set_modal(GTK_WINDOW(appGUI->cal->select_bg_color_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->select_bg_color_window), "delete_event", G_CALLBACK(select_bg_color_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->select_bg_color_window), "key_press_event", G_CALLBACK (select_bg_color_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->select_bg_color_window), vbox1); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); appGUI->cal->colors_category_store = gtk_list_store_new(4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); colors_category_treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->cal->colors_category_store)); g_signal_connect(G_OBJECT(colors_category_treeview), "button_press_event", G_CALLBACK(colors_list_dbclick_cb), appGUI); appGUI->cal->colors_category_select = gtk_tree_view_get_selection(GTK_TREE_VIEW(colors_category_treeview)); gtk_widget_show (colors_category_treeview); gtk_container_add (GTK_CONTAINER (scrolledwindow), colors_category_treeview); gtk_container_set_border_width (GTK_CONTAINER (colors_category_treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (colors_category_treeview), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (colors_category_treeview), FALSE); renderer = gtk_cell_renderer_pixbuf_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "pixbuf", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(colors_category_treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(colors_category_treeview), column); gtk_tree_view_column_set_visible (column, FALSE); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 2, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(colors_category_treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 3, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(colors_category_treeview), column); gtk_tree_view_column_set_visible (column, FALSE); image = utl_gui_create_color_swatch ("None"); gtk_list_store_append(appGUI->cal->colors_category_store, &iter); gtk_list_store_set(appGUI->cal->colors_category_store, &iter, 0, image, 1, tmpbuf, 2, _("None"), 3, 0, -1); g_object_unref (image); i = 0; color_sel = cal_get_note_color (g_date_get_julian (appGUI->cal->date), appGUI); while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->calendar_category_store), &iter, 1, &color_val, 2, &color_name, -1); image = utl_gui_create_color_swatch (color_val); gtk_list_store_append(appGUI->cal->colors_category_store, &iter); gtk_list_store_set(appGUI->cal->colors_category_store, &iter, 0, image, 1, color_val, 2, color_name, 3, i, -1); if (color_sel != NULL) { if (!strcmp(color_val, color_sel)) { path = gtk_tree_model_get_path (GTK_TREE_MODEL(appGUI->cal->colors_category_store), &iter); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (colors_category_treeview), path, NULL, FALSE); gtk_tree_path_free(path); } } } g_object_unref (image); g_free(color_val); g_free(color_name); } hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_set_can_focus (cancel_button, FALSE); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (button_select_bg_color_close_cb), appGUI); ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_set_can_focus (ok_button, FALSE); gtk_widget_show (ok_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), ok_button); g_signal_connect (G_OBJECT (ok_button), "clicked", G_CALLBACK (select_bg_color_apply_cb), appGUI); gtk_widget_show (appGUI->cal->select_bg_color_window); } /*------------------------------------------------------------------------------*/ void menu_entry_selected_cb (gpointer user_data) { MESSAGE *msg = (MESSAGE *) user_data; calendar_update_date (g_date_get_day (msg->appGUI->cal->date), (size_t) msg->data, g_date_get_year (msg->appGUI->cal->date), msg->appGUI); } /*------------------------------------------------------------------------------*/ void calendar_create_popup_menu (GtkWidget *menu, GUI *appGUI) { static MESSAGE msg_month[MAX_MONTHS]; GtkWidget *menu_entry; gchar buffer[BUFFER_SIZE]; GDate *tmpdate; gint i; tmpdate = g_date_new_dmy (1, 1, utl_date_get_current_year ()); g_return_if_fail (tmpdate != NULL); for (i = G_DATE_JANUARY; i <= G_DATE_DECEMBER; i++) { g_date_set_month (tmpdate, i); g_date_strftime (buffer, BUFFER_SIZE, "%B", tmpdate); menu_entry = gtk_menu_item_new_with_label (buffer); gtk_menu_shell_append (GTK_MENU_SHELL (appGUI->cal->month_selector_menu), menu_entry); msg_month[i-1].data = (gpointer) ((size_t)i); msg_month[i-1].appGUI = appGUI; g_signal_connect_swapped (G_OBJECT (menu_entry), "activate", G_CALLBACK (menu_entry_selected_cb), &msg_month[i-1]); gtk_widget_show (menu_entry); } g_date_free (tmpdate); } /*------------------------------------------------------------------------------*/ void calendar_mark_events (GtkWidget *calendar, guint32 julian_day, guint i, GUI *appGUI) { gboolean flag = FALSE; if (appGUI->calendar_only == TRUE || appGUI->all_pages_added == FALSE) return; #ifdef TASKS_ENABLED if (tsk_check_tasks (julian_day, julian_day, STATE_CALENDAR, appGUI) == TRUE) { gui_calendar_mark_day (GUI_CALENDAR (calendar), i, EVENT_MARK); flag = TRUE; } #endif /* TASKS_ENABLED */ #ifdef HAVE_LIBICAL if (flag == FALSE) { if (ics_check_event (julian_day, appGUI) == TRUE) { gui_calendar_mark_day (GUI_CALENDAR (calendar), i, EVENT_MARK); } } #endif /* HAVE_LIBICAL */ #ifdef CONTACTS_ENABLED if (check_contacts (julian_day, appGUI) == TRUE) { gui_calendar_mark_day (GUI_CALENDAR (calendar), i, BIRTHDAY_MARK); } #endif /* CONTACTS_ENABLED */ } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/preferences_gui.c0000664000175000017500000007235013161167413013527 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "backup.h" #include "calendar_preferences_gui.h" #include "contacts_preferences_gui.h" #include "i18n.h" #include "notes.h" #include "notes_preferences_gui.h" #include "options_prefs.h" #include "preferences_gui.h" #include "stock_icons.h" #include "tasks.h" #include "tasks_preferences_gui.h" #include "utils_gui.h" #include "calendar.h" /* ========================================================================== */ static void show_restart_info(GUI *appGUI) { utl_gui_create_dialog (GTK_MESSAGE_INFO, _("Osmo has to be restarted to take effect."), GTK_WINDOW (appGUI->opt->window)); } /* ========================================================================== */ static void checkbutton_clicked_cb (GtkToggleButton *togglebutton, gint *option) { *option = gtk_toggle_button_get_active (togglebutton); } /* ========================================================================== */ static void layout_changed_cb (GtkComboBox *widget, GUI *appGUI) { config.gui_layout = gtk_combo_box_get_active (widget); show_restart_info (appGUI); } /* ========================================================================== */ static void tabs_position_changed_cb (GtkComboBox *widget, GUI *appGUI) { GtkWidget *label; gint angle; config.tabs_position = gtk_combo_box_get_active (widget); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (appGUI->notebook), config.tabs_position); if (config.tabs_position == GTK_POS_LEFT) angle = 90; else if (config.tabs_position == GTK_POS_RIGHT) angle = -90; else angle = 0; label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (appGUI->notebook), GTK_WIDGET (appGUI->cal->vbox)); gtk_label_set_angle (GTK_LABEL (label), angle); #ifdef TASKS_ENABLED label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (appGUI->notebook), GTK_WIDGET (appGUI->tsk->vbox)); gtk_label_set_angle (GTK_LABEL (label), angle); #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (appGUI->notebook), GTK_WIDGET (appGUI->cnt->vbox)); gtk_label_set_angle (GTK_LABEL (label), angle); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (appGUI->notebook), GTK_WIDGET (appGUI->nte->vbox)); gtk_label_set_angle (GTK_LABEL (label), angle); #endif /* NOTES_ENABLED */ } /* ========================================================================== */ static void disable_underline_in_links_changed_cb (GtkToggleButton *togglebutton, GUI *appGUI) { config.disable_underline_links = gtk_toggle_button_get_active (togglebutton); #ifdef CONTACTS_ENABLED g_signal_emit_by_name (G_OBJECT (appGUI->cnt->contacts_list_selection), "changed"); #endif /* CONTACTS_ENABLED */ } /* ========================================================================== */ static void toolbar_exit_button_changed_cb (GtkToggleButton *togglebutton, GUI *appGUI) { config.toolbar_exit_button = gtk_toggle_button_get_active (togglebutton); if (config.toolbar_exit_button == TRUE) { gtk_widget_show (GTK_WIDGET(appGUI->cal->quit_button)); } else { gtk_widget_hide (GTK_WIDGET(appGUI->cal->quit_button)); } #ifdef CONTACTS_ENABLED if (config.toolbar_exit_button == TRUE) { gtk_widget_show (GTK_WIDGET(appGUI->cnt->quit_toolbar_button)); } else { gtk_widget_hide (GTK_WIDGET(appGUI->cnt->quit_toolbar_button)); } #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED if (config.toolbar_exit_button == TRUE) { gtk_widget_show (GTK_WIDGET(appGUI->nte->quit_button)); } else { gtk_widget_hide (GTK_WIDGET(appGUI->nte->quit_button)); } #endif /* NOTES_ENABLED */ #ifdef TASKS_ENABLED if (config.toolbar_exit_button == TRUE) { gtk_widget_show (GTK_WIDGET(appGUI->tsk->quit_button)); } else { gtk_widget_hide (GTK_WIDGET(appGUI->tsk->quit_button)); } #endif /* TASKS_ENABLED */ } /* ========================================================================== */ static void create_appearance_section (GtkWidget *appearance_vbox, GUI *appGUI) { GtkWidget *table, *label, *combobox, *checkbutton; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (appearance_vbox), table, FALSE, TRUE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 32); gtk_grid_set_row_spacing (GTK_GRID (table), 8); label = utl_gui_create_label ("%s:", _("Layout")); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); combobox = gtk_combo_box_text_new (); gtk_grid_attach (GTK_GRID (table), combobox, 1, 0, 1, 1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Vertical")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Horizontal")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.gui_layout); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (layout_changed_cb), appGUI); label = utl_gui_create_label ("%s:", _("Tabs position")); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); combobox = gtk_combo_box_text_new (); gtk_grid_attach (GTK_GRID (table), combobox, 3, 0, 1, 1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Left")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Right")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Top")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Bottom")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.tabs_position); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (tabs_position_changed_cb), appGUI); checkbutton = gtk_check_button_new_with_mnemonic (_("Disable underline in links")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.disable_underline_links); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 1, 2, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (disable_underline_in_links_changed_cb), appGUI); checkbutton = gtk_check_button_new_with_mnemonic (_("Show exit button in toolbar")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.toolbar_exit_button); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 1, 2, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (toolbar_exit_button_changed_cb), appGUI); } /* ========================================================================== */ #if defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) static void hide_module_cb (GtkToggleButton *togglebutton, GUI *appGUI) { gboolean cal, tsk, nte, cnt; cal = tsk = nte = cnt = TRUE; cal = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->hide_calendar_checkbutton)); #ifdef TASKS_ENABLED tsk = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->hide_tasks_checkbutton)); #endif /* TASKS_ENABLED */ #ifdef NOTES_ENABLED nte = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->hide_notes_checkbutton)); #endif /* NOTES_ENABLED */ #ifdef CONTACTS_ENABLED cnt = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->hide_contacts_checkbutton)); #endif /* CONTACTS_ENABLED */ if (cal && tsk && nte && cnt) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("At least one module must be visible."), GTK_WINDOW (appGUI->opt->window)); cal = FALSE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->opt->hide_calendar_checkbutton), FALSE); } opt_hide_modules (cal, tsk, cnt, nte, TRUE, appGUI); } void opt_hide_modules (gboolean cal, gboolean tsk, gboolean cnt, gboolean nte, gboolean options, GUI *appGUI) { if (cal && tsk && nte && cnt) { cal = FALSE; } if (cal) { config.hide_calendar = TRUE; gtk_widget_hide (GTK_WIDGET (appGUI->cal->vbox)); if (options) gtk_widget_hide (appGUI->opt->calendar); gtk_widget_hide (appGUI->trayicon_menu_calendar_item); } else { config.hide_calendar = FALSE; gtk_widget_show (GTK_WIDGET (appGUI->cal->vbox)); if (options) gtk_widget_show (appGUI->opt->calendar); gtk_widget_show (appGUI->trayicon_menu_calendar_item); } #ifdef TASKS_ENABLED if (tsk) { config.hide_tasks = TRUE; gtk_widget_hide(GTK_WIDGET (appGUI->tsk->vbox)); if (options) gtk_widget_hide (appGUI->opt->tasks); gtk_widget_hide (appGUI->trayicon_menu_tasks_item); } else { config.hide_tasks = FALSE; gtk_widget_show (GTK_WIDGET (appGUI->tsk->vbox)); if (options) gtk_widget_show (appGUI->opt->tasks); gtk_widget_show (appGUI->trayicon_menu_tasks_item); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (cnt) { config.hide_contacts = TRUE; gtk_widget_hide (GTK_WIDGET (appGUI->cnt->vbox)); if (options) gtk_widget_hide (appGUI->opt->contacts); gtk_widget_hide (appGUI->trayicon_menu_contacts_item); } else { config.hide_contacts = FALSE; gtk_widget_show (GTK_WIDGET (appGUI->cnt->vbox)); if (options) gtk_widget_show (appGUI->opt->contacts); gtk_widget_show (appGUI->trayicon_menu_contacts_item); } #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED if (nte) { config.hide_notes = TRUE; gtk_widget_hide (GTK_WIDGET (appGUI->nte->vbox)); if (options) gtk_widget_hide (appGUI->opt->notes); gtk_widget_hide (appGUI->trayicon_menu_notes_item); } else { config.hide_notes = FALSE; gtk_widget_show (GTK_WIDGET (appGUI->nte->vbox)); if (options) gtk_widget_show (appGUI->opt->notes); gtk_widget_show (appGUI->trayicon_menu_notes_item); } #endif /* NOTES_ENABLED */ } /* ========================================================================== */ static void create_hide_section (GtkWidget *hide_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (hide_vbox), table, TRUE, TRUE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 16); checkbutton = gtk_check_button_new_with_mnemonic (_("Calendar")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_calendar); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_module_cb), appGUI); appGUI->opt->hide_calendar_checkbutton = checkbutton; #ifdef TASKS_ENABLED checkbutton = gtk_check_button_new_with_mnemonic (_("Tasks")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_tasks); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 1, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_module_cb), appGUI); appGUI->opt->hide_tasks_checkbutton = checkbutton; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED checkbutton = gtk_check_button_new_with_mnemonic (_("Contacts")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_contacts); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_module_cb), appGUI); appGUI->opt->hide_contacts_checkbutton = checkbutton; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED checkbutton = gtk_check_button_new_with_mnemonic (_("Notes")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_notes); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 3, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_module_cb), appGUI); appGUI->opt->hide_notes_checkbutton = checkbutton; #endif /* NOTES_ENABLED */ } #endif /* defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) */ /* ========================================================================== */ static void override_locale_changed_cb (GtkToggleButton *togglebutton, GUI *appGUI) { config.override_locale_settings = gtk_toggle_button_get_active (togglebutton); gtk_widget_set_sensitive (appGUI->opt->override_locale_label_1, config.override_locale_settings); gtk_widget_set_sensitive (appGUI->opt->override_locale_label_2, config.override_locale_settings); gtk_widget_set_sensitive (appGUI->opt->date_format_combobox, config.override_locale_settings); gtk_widget_set_sensitive (appGUI->opt->time_format_combobox, config.override_locale_settings); #ifdef HAVE_GSPELL gtk_widget_set_sensitive (appGUI->opt->override_locale_label_3, config.override_locale_settings); gtk_widget_set_sensitive (appGUI->opt->entry_spell_lang, config.override_locale_settings); #endif /* HAVE_GSPELL */ #ifdef TASKS_ENABLED refresh_tasks (appGUI); #endif /* TASKS_ENABLED */ #ifdef NOTES_ENABLED refresh_notes (appGUI); #endif /* NOTES_ENABLED */ } /* ========================================================================== */ static void date_format_changed_cb (GtkComboBox *widget, GUI *appGUI) { config.date_format = gtk_combo_box_get_active (widget); #ifdef NOTES_ENABLED refresh_notes (appGUI); #endif /* NOTES_NOTES */ #ifdef TASKS_ENABLED refresh_tasks (appGUI); #endif /* TASKS_ENABLED */ } /* ========================================================================== */ static void time_format_changed_cb (GtkComboBox *widget, GUI *appGUI) { config.time_format = gtk_combo_box_get_active (widget); update_clock (appGUI); #ifdef NOTES_ENABLED refresh_notes (appGUI); #endif /* NOTES_NOTES */ #ifdef TASKS_ENABLED refresh_tasks (appGUI); #endif /* TASKS_ENABLED */ } /* ========================================================================== */ #ifdef HAVE_GSPELL static void spell_checker_entry_changed_cb (GtkEntry *entry, GUI *appGUI) { if (strlen (gtk_entry_get_text (entry))) g_strlcpy (config.spell_lang, gtk_entry_get_text (entry), MAXNAME); utl_gui_change_bg_widget_state (GTK_WIDGET (entry), NULL, appGUI); } /* ========================================================================== */ static gint spell_checker_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { utl_gui_change_bg_widget_state (widget, COLOR_BG_OK, appGUI); return FALSE; } #endif /* HAVE_GSPELL */ /* ========================================================================== */ static void create_general_section (GtkWidget *general_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton, *combobox; gchar *str; gint i = 0; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (general_vbox), table, FALSE, FALSE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 16); gtk_grid_set_row_spacing (GTK_GRID (table), 4); checkbutton = gtk_check_button_new_with_mnemonic (_("Override locale settings")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.override_locale_settings); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 4, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (override_locale_changed_cb), appGUI); appGUI->opt->override_locale_checkbutton = checkbutton; i++; appGUI->opt->override_locale_label_1 = utl_gui_create_label ("%s:", _("Date format")); gtk_grid_attach (GTK_GRID (table), appGUI->opt->override_locale_label_1, 0, i, 1, 1); combobox = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("DD-MM-YYYY")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("MM-DD-YYYY")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("YYYY-MM-DD")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("YYYY-DD-MM")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.date_format); gtk_grid_attach (GTK_GRID (table), combobox, 1, i, 1, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (date_format_changed_cb), appGUI); appGUI->opt->date_format_combobox = combobox; i++; appGUI->opt->override_locale_label_2 = utl_gui_create_label ("%s:", _("Time format")); gtk_grid_attach (GTK_GRID (table), appGUI->opt->override_locale_label_2, 0, i, 1, 1); combobox = gtk_combo_box_text_new (); str = g_strdup_printf ("24 %s", _("hours")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, str); g_free (str); str = g_strdup_printf ("12 %s", _("hours")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, str); g_free (str); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.time_format); gtk_grid_attach (GTK_GRID (table), combobox, 1, i, 1, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (time_format_changed_cb), appGUI); appGUI->opt->time_format_combobox = combobox; i++; #ifdef HAVE_GSPELL GtkWidget *entry; appGUI->opt->override_locale_label_3 = utl_gui_create_label ("%s:", _("Spell checker language")); gtk_grid_attach (GTK_GRID (table), appGUI->opt->override_locale_label_3, 0, i, 1, 1); entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (entry), MAXNAME); gtk_entry_set_text (GTK_ENTRY (entry), config.spell_lang); gtk_grid_attach (GTK_GRID (table), entry, 1, i, 1, 1); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (spell_checker_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (entry), "key_press_event", G_CALLBACK (spell_checker_key_press_cb), appGUI); appGUI->opt->entry_spell_lang = entry; i++; #endif /* HAVE_GSPELL */ /* update the button enablement */ override_locale_changed_cb(GTK_TOGGLE_BUTTON (appGUI->opt->override_locale_checkbutton), appGUI); checkbutton = gtk_check_button_new_with_mnemonic (_("Enable tooltips")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.enable_tooltips); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 4, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.enable_tooltips)); i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Remember last selected page")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.remember_latest_tab); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 4, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.remember_latest_tab)); i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Save data after every modification")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.save_data_after_modification); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 4, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.save_data_after_modification)); } /* ========================================================================== */ static void helper_entry_changed_cb (GtkEntry *entry, GUI *appGUI) { if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_web_browser)))) g_strlcpy (config.web_browser, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_web_browser)), MAXHELPERCMD); if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_email_client)))) g_strlcpy (config.email_client, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_email_client)), MAXHELPERCMD); if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_sound_player)))) g_strlcpy (config.sound_player, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->entry_sound_player)), MAXHELPERCMD); utl_gui_change_bg_widget_state (appGUI->opt->entry_web_browser, NULL, appGUI); utl_gui_change_bg_widget_state (appGUI->opt->entry_email_client, NULL, appGUI); utl_gui_change_bg_widget_state (appGUI->opt->entry_sound_player, NULL, appGUI); } /* ========================================================================== */ static gint helper_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { utl_gui_change_bg_widget_state (widget, COLOR_BG_OK, appGUI); return FALSE; } /* ========================================================================== */ void create_helpers_section (GtkWidget *helpers_vbox, GUI *appGUI) { GtkWidget *table, *label, *entry; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (helpers_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 8); label = utl_gui_create_label ("%s:", _("Web browser")); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = utl_gui_create_label ("%s:", _("E-mail client")); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); label = utl_gui_create_label ("%s:", _("Sound player")); gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1); entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (entry), MAXHELPERCMD); gtk_entry_set_text (GTK_ENTRY (entry), config.web_browser); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (entry, _("The %s pattern will be replaced with web address")); } gtk_widget_set_hexpand(entry, TRUE); gtk_grid_attach (GTK_GRID (table), entry, 1, 0, 1, 1); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (helper_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (entry), "key_press_event", G_CALLBACK (helper_key_press_cb), appGUI); appGUI->opt->entry_web_browser = entry; entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (entry), MAXHELPERCMD); gtk_entry_set_text (GTK_ENTRY (entry), config.email_client); if (config.enable_tooltips) gtk_widget_set_tooltip_text (entry, _("The %s pattern will be replaced with e-mail address")); gtk_widget_set_hexpand(entry, TRUE); gtk_grid_attach (GTK_GRID (table), entry, 1, 1, 1, 1); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (helper_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (entry), "key_press_event", G_CALLBACK (helper_key_press_cb), appGUI); appGUI->opt->entry_email_client = entry; entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (entry), MAXHELPERCMD); gtk_entry_set_text (GTK_ENTRY (entry), config.sound_player); if (config.enable_tooltips) gtk_widget_set_tooltip_text (entry, _("The %s pattern will be replaced with sound filename")); gtk_widget_set_hexpand(entry, TRUE); gtk_grid_attach (GTK_GRID (table), entry, 1, 2, 1, 1); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (helper_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (entry), "key_press_event", G_CALLBACK (helper_key_press_cb), appGUI); appGUI->opt->entry_sound_player = entry; } /* ========================================================================== */ static void enable_systray_changed_cb (GtkToggleButton *togglebutton, GUI *appGUI) { if (gtk_toggle_button_get_active (togglebutton)) { config.enable_systray = 1; gtk_widget_set_sensitive (appGUI->opt->start_minimised_checkbutton, TRUE); gtk_widget_set_sensitive (appGUI->opt->ignore_day_note_events_checkbutton, TRUE); gtk_status_icon_set_visible (appGUI->osmo_trayicon, TRUE); } else { config.enable_systray = 0; gtk_widget_set_sensitive (appGUI->opt->start_minimised_checkbutton, FALSE); gtk_widget_set_sensitive (appGUI->opt->ignore_day_note_events_checkbutton, FALSE); gtk_status_icon_set_visible (appGUI->osmo_trayicon, FALSE); } } /* ========================================================================== */ void create_system_tray_section (GtkWidget *system_tray_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (system_tray_vbox), table, FALSE, FALSE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 4); checkbutton = gtk_check_button_new_with_mnemonic (_("Enable system tray")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.enable_systray); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (enable_systray_changed_cb), appGUI); appGUI->opt->enable_systray_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Start minimised")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.start_minimised_in_systray); gtk_widget_set_sensitive (checkbutton, config.enable_systray); gtk_grid_attach (GTK_GRID (table), checkbutton, 1, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.start_minimised_in_systray)); appGUI->opt->start_minimised_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Ignore day note events")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.ignore_day_note_events); gtk_widget_set_sensitive (checkbutton, config.enable_systray); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.ignore_day_note_events)); appGUI->opt->ignore_day_note_events_checkbutton = checkbutton; } /* ========================================================================== */ static GtkWidget * create_general_page (GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox_top, *vbox_icon, *vbox, *scrolledwindow; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), BORDER_WIDTH); scrolledwindow = utl_gui_insert_in_scrolled_window (vbox_top, GTK_SHADOW_ETCHED_IN); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 2); vbox_icon = utl_gui_create_icon_with_label (OSMO_STOCK_PREFERENCES, _("General")); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Appearance")); create_appearance_section (vbox, appGUI); #if defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Hide")); create_hide_section (vbox, appGUI); #endif /* defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) */ vbox = utl_gui_create_vbox_in_frame (vbox_top, _("General")); create_general_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Helpers")); create_helpers_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("System tray")); create_system_tray_section (vbox, appGUI); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow, vbox_icon); gtk_widget_show_all (scrolledwindow); return scrolledwindow; } /* ========================================================================== */ static void close_window (GtkWidget *widget, GtkWidget *window) { gtk_widget_destroy (window); } /* ========================================================================== */ static gint key_press (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { switch (event->keyval) { case GDK_KEY_Escape: close_window (NULL, widget); return TRUE; } return FALSE; } /* ========================================================================== */ GtkWidget * opt_create_preferences_window (GUI *appGUI) { GtkWidget *window, *vbox_top; GtkWidget *notebook; GtkWidget *hbuttonbox, *close_button; window = utl_gui_create_window (_("Preferences"), 700, 600, appGUI); g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (key_press), appGUI); vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_add (GTK_CONTAINER (window), vbox_top); appGUI->opt->notebook = notebook = gtk_notebook_new (); gtk_box_pack_start (GTK_BOX (vbox_top), notebook, TRUE, TRUE, 0); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_LEFT); gtk_widget_show (notebook); appGUI->opt->general = create_general_page (notebook, appGUI); appGUI->opt->calendar = cal_create_preferences_page (notebook, appGUI); if (config.hide_calendar) gtk_widget_hide (appGUI->opt->calendar); #ifdef TASKS_ENABLED appGUI->opt->tasks = tsk_create_preferences_page (notebook, appGUI); if (config.hide_tasks) gtk_widget_hide (appGUI->opt->tasks); #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED appGUI->opt->contacts = cnt_create_preferences_page (notebook, appGUI); if (config.hide_contacts) gtk_widget_hide (appGUI->opt->contacts); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED appGUI->opt->notes = nte_create_preferences_page (notebook, appGUI); if (config.hide_notes) gtk_widget_hide (appGUI->opt->notes); #endif /* NOTES_ENABLED */ /* Close button */ hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), HBOX_SPACING); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_container_add (GTK_CONTAINER (hbuttonbox), close_button); gtk_widget_set_can_default (close_button, TRUE); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (close_window), window); gtk_widget_grab_focus (close_button); gtk_widget_show_all (hbuttonbox); gtk_widget_show (vbox_top); return window; } /* ========================================================================== */ osmo-0.4.2/src/calendar_fullyear.h0000664000175000017500000000175113066543472014047 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_FULLYEAR_H #define _CALENDAR_FULLYEAR_H #include "gui.h" void calendar_create_fullyear_window (GUI *appGUI); #endif /* _CALENDAR_FULLYEAR_H */ osmo-0.4.2/src/notes_items.c0000664000175000017500000014760613110234475012717 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007-2014 Tomasz Maka * * 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 "notes_items.h" #include "i18n.h" #include "options_prefs.h" #include "notes.h" #include "notes_preferences_gui.h" #include "calendar.h" #include "calendar_notes.h" #include "calendar_widget.h" #include "calendar_utils.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "stock_icons.h" #ifdef NOTES_ENABLED #ifdef HAVE_LIBGRINGOTTS #include #endif /* HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ gboolean notes_get_active_state (GUI *appGUI) { gint b, c; gint a = strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->note_name_entry))); if (appGUI->nte->encrypted == FALSE) { return a; } if (appGUI->nte->password_entry != NULL) { b = strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->password_entry))); } else { b = 1; } if (appGUI->nte->spassword_entry != NULL) { c = strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->spassword_entry))); } else { c = 1; } return (a && b && c); } /*------------------------------------------------------------------------------*/ void notes_edit_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; appGUI->nte->password_entry = NULL; appGUI->nte->spassword_entry = NULL; gtk_widget_destroy(appGUI->nte->edit_entry_window); } /*------------------------------------------------------------------------------*/ void button_notes_edit_close_cb (GtkWidget *widget, gpointer data) { notes_edit_close_cb (widget, NULL, data); } /*------------------------------------------------------------------------------*/ void notes_edit_action_cb (GtkWidget *widget, gpointer data) { GtkTreePath *path, *sort_path, *filter_path; GtkTreeIter iter; gchar *category; gboolean flag, remember_cursor; gint i, n; GUI *appGUI = (GUI *)data; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->nte->notes_list), &sort_path, NULL); if (sort_path == NULL) return; filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->nte->notes_sort), sort_path); gtk_tree_path_free (sort_path); if (filter_path == NULL) return; path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), filter_path); gtk_tree_path_free (filter_path); if (path != NULL) { n = gtk_combo_box_get_active (GTK_COMBO_BOX(appGUI->nte->category_combobox)); if (n == 0) { category = g_strdup(_("None")); } else { i = 0; flag = FALSE; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, 0, &category, -1); if (i == n) { flag = TRUE; break; } g_free(category); } if (flag != TRUE) { category = g_strdup(_("None")); } } remember_cursor = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->nte->remember_cursor_checkbutton)); gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, path); gtk_list_store_set(appGUI->nte->notes_list_store, &iter, N_COLUMN_NAME, gtk_entry_get_text(GTK_ENTRY(appGUI->nte->note_name_entry)), N_COLUMN_CATEGORY, category, N_COLUMN_REMEMBER_EDITOR_LINE, remember_cursor, -1); g_free (category); gtk_tree_path_free (path); notes_edit_close_cb (widget, NULL, data); if (config.save_data_after_modification) { write_notes_entries (appGUI); } } } /*------------------------------------------------------------------------------*/ gint notes_edit_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { notes_edit_close_cb (NULL, NULL, appGUI); return TRUE; } else if (event->keyval == GDK_KEY_Return) { notes_edit_action_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint notes_add_entry_changed_cb (GtkEditable *editable, gpointer data) { GUI *appGUI = (GUI *)data; gtk_widget_set_sensitive(appGUI->nte->add_entry_ok_button, notes_get_active_state (appGUI)); return FALSE; } /*------------------------------------------------------------------------------*/ void notes_edit_dialog_show (GtkWidget *list, GtkTreeModel *model, GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *label; GtkWidget *frame; GtkWidget *table; GtkTreeIter iter; gchar *c_category, *category, *name; gchar tmpbuf[BUFFER_SIZE]; gboolean remember_cursor; gint i, n; appGUI->nte->edit_entry_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->nte->edit_entry_window), 4); gtk_window_set_title (GTK_WINDOW (appGUI->nte->edit_entry_window), _("Edit entry")); gtk_window_set_default_size (GTK_WINDOW (appGUI->nte->edit_entry_window), 400, -1); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->nte->edit_entry_window), GTK_WINDOW (appGUI->main_window)); } gtk_window_set_position (GTK_WINDOW (appGUI->nte->edit_entry_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (appGUI->nte->edit_entry_window), TRUE); g_signal_connect (G_OBJECT (appGUI->nte->edit_entry_window), "delete_event", G_CALLBACK (notes_edit_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->nte->edit_entry_window), "key_press_event", G_CALLBACK (notes_edit_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (appGUI->nte->edit_entry_window), vbox1); table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (vbox1), table, FALSE, TRUE, 0); frame = gtk_frame_new (NULL); gtk_widget_set_hexpand(frame, TRUE); gtk_widget_set_vexpand(frame, TRUE); gtk_grid_attach (GTK_GRID (table), frame, 0, 0, 1, 1); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->note_name_entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->note_name_entry); gtk_widget_set_margin_left(appGUI->nte->note_name_entry, 16); gtk_widget_set_margin_right(appGUI->nte->note_name_entry, 4); gtk_widget_set_margin_top(appGUI->nte->note_name_entry, 4); gtk_widget_set_margin_bottom(appGUI->nte->note_name_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (appGUI->nte->note_name_entry), 8226); g_signal_connect (G_OBJECT (appGUI->nte->note_name_entry), "changed", G_CALLBACK (notes_add_entry_changed_cb), appGUI); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Note name")); label = gtk_label_new (tmpbuf); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_grid_attach (GTK_GRID (table), frame, 1, 0, 1, 1); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->category_combobox = gtk_combo_box_text_new (); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->category_combobox); gtk_widget_set_margin_left(appGUI->nte->category_combobox, 16); gtk_widget_set_margin_right(appGUI->nte->category_combobox, 4); gtk_widget_set_margin_top(appGUI->nte->category_combobox, 4); gtk_widget_set_margin_bottom(appGUI->nte->category_combobox, 4); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->nte->category_combobox), NULL, _("None")); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Category")); label = gtk_label_new (tmpbuf); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->remember_cursor_checkbutton = gtk_check_button_new_with_mnemonic (_("Remember cursor position")); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->remember_cursor_checkbutton); gtk_widget_set_can_focus (appGUI->nte->remember_cursor_checkbutton, FALSE); gtk_widget_set_margin_left(appGUI->nte->remember_cursor_checkbutton, 16); gtk_widget_set_margin_right(appGUI->nte->remember_cursor_checkbutton, 4); gtk_widget_set_margin_top(appGUI->nte->remember_cursor_checkbutton, 4); gtk_widget_set_margin_bottom(appGUI->nte->remember_cursor_checkbutton, 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Options")); label = gtk_label_new (tmpbuf); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_set_can_focus (cancel_button, FALSE); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (button_notes_edit_close_cb), appGUI); appGUI->nte->add_entry_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_set_can_focus (appGUI->nte->add_entry_ok_button, FALSE); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->nte->add_entry_ok_button); g_signal_connect (G_OBJECT (appGUI->nte->add_entry_ok_button), "clicked", G_CALLBACK (notes_edit_action_cb), appGUI); iter = utl_gui_get_first_selection_iter(appGUI->nte->notes_list_selection, &model); gtk_tree_model_get(model, &iter, N_COLUMN_NAME, &name, N_COLUMN_CATEGORY, &c_category, N_COLUMN_REMEMBER_EDITOR_LINE, &remember_cursor, -1); gtk_entry_set_text(GTK_ENTRY(appGUI->nte->note_name_entry), name); i = n = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, 0, &category, -1); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(appGUI->nte->category_combobox), NULL, category); if (!strcmp(category, c_category)) n = i; g_free(category); } gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->nte->category_combobox), n); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->nte->remember_cursor_checkbutton), remember_cursor); g_free(c_category); g_free(name); gtk_widget_show_all(appGUI->nte->edit_entry_window); } /*------------------------------------------------------------------------------*/ void notes_remove(GtkTreeRowReference *ref, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter, filter_iter, sort_iter; gchar *filename; GtkTreeModel *model; model = gtk_tree_row_reference_get_model(ref); path = gtk_tree_row_reference_get_path(ref); if (path != NULL) { if (gtk_tree_model_get_iter(model, &sort_iter, path)) { gtk_tree_model_get(model, &sort_iter, N_COLUMN_FILENAME, &filename, -1); g_unlink(notes_get_full_filename(filename, appGUI)); g_free(filename); gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(model), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(model))), &iter, &filter_iter); gtk_list_store_remove(appGUI->nte->notes_list_store, &iter); } gtk_tree_path_free(path); } } /*------------------------------------------------------------------------------*/ void notes_remove_dialog_show (GUI *appGUI) { gint response; gchar tmpbuf[BUFFER_SIZE]; g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n%s\n\n%s", _("Selected note will be removed."), _("No further data recovery will be possible."), _("Are you sure?")); response = utl_gui_create_dialog(GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->main_window)); if (response == GTK_RESPONSE_YES) { utl_gui_foreach_selected(appGUI->nte->notes_list_selection, GTK_TREE_MODEL(appGUI->nte->notes_list_store), (GFunc) notes_remove, appGUI); update_notes_items(appGUI); check_notes_type(appGUI); if (config.save_data_after_modification) { write_notes_entries(appGUI); } } } /*------------------------------------------------------------------------------*/ void notes_add_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; #ifdef HAVE_LIBGRINGOTTS appGUI->nte->password_entry = NULL; appGUI->nte->spassword_entry = NULL; #endif /* HAVE_LIBGRINGOTTS */ gtk_widget_destroy(appGUI->nte->add_entry_window); } /*------------------------------------------------------------------------------*/ void button_notes_add_close_cb (GtkWidget *widget, gpointer data) { notes_add_close_cb (widget, NULL, data); } /*------------------------------------------------------------------------------*/ gint notes_add_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { notes_add_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void notes_add_entry_action_cb (GtkWidget *widget, gpointer data) { gchar *name; gchar *current_filename; gchar *category, *create_date_str; guint32 current_date; GtkTreeIter iter; gint current_time; gint i, n; gboolean flag, remember_cursor; #ifdef HAVE_LIBGRINGOTTS gchar *pass = NULL, *spass = NULL; GRG_CTX context; GRG_KEY keyholder; #endif /* HAVE_LIBGRINGOTTS */ GUI *appGUI = (GUI *)data; #ifdef HAVE_LIBGRINGOTTS if (appGUI->nte->encrypted == TRUE) { pass = g_strdup(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->password_entry))); spass = g_strdup(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->spassword_entry))); if (g_utf8_collate (pass, spass) != 0) { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Passwords do not match!"), GTK_WINDOW(appGUI->main_window)); gtk_widget_grab_focus (appGUI->nte->password_entry); g_free(pass); g_free(spass); return; } } #endif /* HAVE_LIBGRINGOTTS */ name = g_strdup(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->note_name_entry))); n = gtk_combo_box_get_active (GTK_COMBO_BOX(appGUI->nte->category_combobox)); remember_cursor = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->nte->remember_cursor_checkbutton)); notes_add_close_cb (NULL, NULL, appGUI); current_date = utl_date_get_current_julian (); current_time = utl_time_get_current_seconds (); current_filename = g_strdup (notes_get_new_filename (appGUI)); #ifdef HAVE_LIBGRINGOTTS if (appGUI->nte->encrypted == TRUE) { context = grg_context_initialize_defaults ((unsigned char*) "OSM"); keyholder = grg_key_gen ((unsigned char*) pass, -1); grg_ctx_set_crypt_algo (context, get_enc_algorithm_value()); grg_ctx_set_hash_algo (context, get_enc_hashing_value()); grg_ctx_set_comp_algo (context, get_comp_algorithm_value()); grg_ctx_set_comp_ratio (context, get_comp_ratio_value()); grg_encrypt_file (context, keyholder, (unsigned char*) notes_get_full_filename (current_filename, appGUI), (guchar *)"", 0); grg_key_free (context, keyholder); grg_context_free (context); } else { g_file_set_contents (notes_get_full_filename(current_filename, appGUI), "", 0, NULL); } #endif /* HAVE_LIBGRINGOTTS */ if (n == 0) { category = g_strdup(_("None")); } else { i = 0; flag = FALSE; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, 0, &category, -1); if (i == n) { flag = TRUE; break; } g_free(category); } if (flag != TRUE) { category = g_strdup(_("None")); } } create_date_str = g_strdup(get_date_time_str (current_date, current_time)); gtk_list_store_append(appGUI->nte->notes_list_store, &iter); gtk_list_store_set(appGUI->nte->notes_list_store, &iter, N_COLUMN_NAME, name, N_COLUMN_CATEGORY, category, N_COLUMN_LAST_CHANGES_DATE, create_date_str, N_COLUMN_LAST_CHANGES_DATE_JULIAN, current_date, N_COLUMN_LAST_CHANGES_TIME, current_time, N_COLUMN_CREATE_DATE, create_date_str, N_COLUMN_CREATE_DATE_JULIAN, current_date, N_COLUMN_CREATE_TIME, current_time, N_COLUMN_REMEMBER_EDITOR_LINE, remember_cursor, N_COLUMN_EDITOR_LINE, 0, N_COLUMN_FILENAME, current_filename, N_COLUMN_FONTNAME, DEFAULT_NOTE_FONT, -1); g_free (category); g_free (create_date_str); update_notes_items(appGUI); check_notes_type (appGUI); if (config.save_data_after_modification) { write_notes_entries (appGUI); } g_free(current_filename); g_free(name); #ifdef HAVE_LIBGRINGOTTS if (appGUI->nte->encrypted == TRUE) { g_free(pass); g_free(spass); } #endif /* HAVE_LIBGRINGOTTS */ } /*------------------------------------------------------------------------------*/ gint notes_add_ok_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Return && notes_get_active_state (appGUI) == TRUE) { notes_add_entry_action_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void note_type_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->nte->note_normal_radiobutton)) == TRUE) { appGUI->nte->encrypted = FALSE; } else { appGUI->nte->encrypted = TRUE; } gtk_widget_set_sensitive (appGUI->nte->password_entry, appGUI->nte->encrypted); gtk_widget_set_sensitive (appGUI->nte->spassword_entry, appGUI->nte->encrypted); gtk_widget_set_sensitive(appGUI->nte->add_entry_ok_button, notes_get_active_state (appGUI)); } /*------------------------------------------------------------------------------*/ void notes_add_entry (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *label; GtkWidget *frame; GtkWidget *table; #ifdef HAVE_LIBGRINGOTTS GtkWidget *hbox1; GtkWidget *note_encrypted_radiobutton; GSList *note_normal_radiobutton_group = NULL; #endif /* HAVE_LIBGRINGOTTS */ gchar tmpbuf[BUFFER_SIZE]; gint i; gchar *category; GtkTreeIter iter; appGUI->nte->encrypted = FALSE; /* default mode */ appGUI->nte->add_entry_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->nte->add_entry_window), 4); gtk_window_set_title (GTK_WINDOW (appGUI->nte->add_entry_window), _("Add note")); gtk_window_set_default_size (GTK_WINDOW(appGUI->nte->add_entry_window), 450, -1); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->nte->add_entry_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_position(GTK_WINDOW(appGUI->nte->add_entry_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal(GTK_WINDOW(appGUI->nte->add_entry_window), TRUE); g_signal_connect (G_OBJECT (appGUI->nte->add_entry_window), "delete_event", G_CALLBACK(notes_add_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->nte->add_entry_window), "key_press_event", G_CALLBACK (notes_add_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->nte->add_entry_window), vbox1); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox1), table, FALSE, TRUE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_widget_set_hexpand(frame, TRUE); gtk_widget_set_vexpand(frame, TRUE); gtk_grid_attach (GTK_GRID (table), frame, 0, 0, 1, 1); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->note_name_entry = gtk_entry_new (); gtk_widget_show (appGUI->nte->note_name_entry); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->note_name_entry); gtk_widget_set_margin_left(appGUI->nte->note_name_entry, 16); gtk_widget_set_margin_right(appGUI->nte->note_name_entry, 4); gtk_widget_set_margin_top(appGUI->nte->note_name_entry, 4); gtk_widget_set_margin_bottom(appGUI->nte->note_name_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (appGUI->nte->note_name_entry), 8226); g_signal_connect (G_OBJECT (appGUI->nte->note_name_entry), "changed", G_CALLBACK (notes_add_entry_changed_cb), appGUI); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Note name")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_grid_attach (GTK_GRID (table), frame, 1, 0, 1, 1); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->category_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->nte->category_combobox); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->category_combobox); gtk_widget_set_margin_left(appGUI->nte->category_combobox, 16); gtk_widget_set_margin_right(appGUI->nte->category_combobox, 4); gtk_widget_set_margin_top(appGUI->nte->category_combobox, 4); gtk_widget_set_margin_bottom(appGUI->nte->category_combobox, 4); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->nte->category_combobox), NULL, _("None")); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, 0, &category, -1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->nte->category_combobox), NULL, category); g_free(category); } gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->nte->category_combobox), gtk_combo_box_get_active (GTK_COMBO_BOX (appGUI->nte->cf_combobox))); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Category")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); #ifdef HAVE_LIBGRINGOTTS frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (frame), hbox1); gtk_widget_set_margin_left(hbox1, 16); gtk_widget_set_margin_right(hbox1, 4); gtk_widget_set_margin_top(hbox1, 4); gtk_widget_set_margin_bottom(hbox1, 4); appGUI->nte->note_normal_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Plain")); gtk_widget_show (appGUI->nte->note_normal_radiobutton); g_signal_connect (appGUI->nte->note_normal_radiobutton, "toggled", G_CALLBACK (note_type_cb), appGUI); gtk_widget_set_can_focus(appGUI->nte->note_normal_radiobutton, FALSE); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->note_normal_radiobutton, TRUE, TRUE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->nte->note_normal_radiobutton), note_normal_radiobutton_group); note_normal_radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->nte->note_normal_radiobutton)); note_encrypted_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Encrypted")); gtk_widget_show (note_encrypted_radiobutton); gtk_widget_set_can_focus(note_encrypted_radiobutton, FALSE); gtk_box_pack_start (GTK_BOX (hbox1), note_encrypted_radiobutton, TRUE, TRUE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (note_encrypted_radiobutton), note_normal_radiobutton_group); note_normal_radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (note_encrypted_radiobutton)); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Note type")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->password_entry = gtk_entry_new (); gtk_widget_show (appGUI->nte->password_entry); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->password_entry); gtk_widget_set_margin_left(appGUI->nte->password_entry, 16); gtk_widget_set_margin_right(appGUI->nte->password_entry, 4); gtk_widget_set_margin_top(appGUI->nte->password_entry, 4); gtk_widget_set_margin_bottom(appGUI->nte->password_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (appGUI->nte->password_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (appGUI->nte->password_entry), FALSE); g_signal_connect (G_OBJECT (appGUI->nte->password_entry), "changed", G_CALLBACK (notes_add_entry_changed_cb), appGUI); gtk_widget_set_sensitive (appGUI->nte->password_entry, FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->spassword_entry = gtk_entry_new (); gtk_widget_show (appGUI->nte->spassword_entry); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->spassword_entry); gtk_widget_set_margin_left(appGUI->nte->spassword_entry, 16); gtk_widget_set_margin_right(appGUI->nte->spassword_entry, 4); gtk_widget_set_margin_top(appGUI->nte->spassword_entry, 4); gtk_widget_set_margin_bottom(appGUI->nte->spassword_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (appGUI->nte->spassword_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (appGUI->nte->spassword_entry), FALSE); g_signal_connect (G_OBJECT (appGUI->nte->spassword_entry), "changed", G_CALLBACK (notes_add_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->nte->spassword_entry), "key_press_event", G_CALLBACK (notes_add_ok_key_press_cb), appGUI); gtk_widget_set_sensitive (appGUI->nte->spassword_entry, FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Re-enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); #endif /* HAVE_LIBGRINGOTTS */ frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->remember_cursor_checkbutton = gtk_check_button_new_with_mnemonic (_("Remember cursor position")); gtk_widget_set_can_focus(appGUI->nte->remember_cursor_checkbutton, FALSE); gtk_widget_show (appGUI->nte->remember_cursor_checkbutton); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->remember_cursor_checkbutton); gtk_widget_set_margin_left(appGUI->nte->remember_cursor_checkbutton, 16); gtk_widget_set_margin_right(appGUI->nte->remember_cursor_checkbutton, 4); gtk_widget_set_margin_top(appGUI->nte->remember_cursor_checkbutton, 4); gtk_widget_set_margin_bottom(appGUI->nte->remember_cursor_checkbutton, 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Options")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_set_can_focus(cancel_button, FALSE); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (button_notes_add_close_cb), appGUI); appGUI->nte->add_entry_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_set_can_focus(appGUI->nte->add_entry_ok_button, FALSE); gtk_widget_show (appGUI->nte->add_entry_ok_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->nte->add_entry_ok_button); g_signal_connect (G_OBJECT (appGUI->nte->add_entry_ok_button), "clicked", G_CALLBACK (notes_add_entry_action_cb), appGUI); gtk_widget_set_sensitive(appGUI->nte->add_entry_ok_button, FALSE); gtk_widget_show (appGUI->nte->add_entry_window); } /*------------------------------------------------------------------------------*/ void notes_enter_password_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; appGUI->nte->password_entry = NULL; appGUI->nte->spassword_entry = NULL; gtk_widget_destroy(appGUI->nte->enter_password_window); } /*------------------------------------------------------------------------------*/ void button_enter_password_close_cb (GtkWidget *widget, gpointer data) { notes_enter_password_close_cb (widget, NULL, data); } /*------------------------------------------------------------------------------*/ void notes_enter_editor_action (GUI *appGUI) { GtkTextBuffer *buffer; gchar *txtnote; gchar *current_filename; GtkTreeIter iter; GtkTreeModel *model; iter = utl_gui_get_first_selection_iter(appGUI->nte->notes_list_selection, &model); gtk_tree_model_get(model, &iter, N_COLUMN_FILENAME, ¤t_filename, -1); appGUI->nte->filename = g_strdup(current_filename); g_file_get_contents(notes_get_full_filename(current_filename, appGUI), &txtnote, NULL, NULL); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->nte->editor_textview)); utl_gui_text_buffer_set_text_with_tags(buffer, (const gchar *) txtnote, TRUE); notes_show_selector_editor(EDITOR, appGUI); appGUI->nte->buffer_check_modify_enable = TRUE; g_free(txtnote); g_free(current_filename); } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBGRINGOTTS void notes_enter_password_action_cb (GtkWidget *widget, gpointer data) { gchar *pass, *current_filename; GtkTreeIter iter; GtkTreeModel *model; GtkTextBuffer *buffer; unsigned char *txtnote; long txtlen; gint ret; GUI *appGUI = (GUI *) data; pass = g_strdup(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->password_entry))); notes_enter_password_close_cb(widget, NULL, data); iter = utl_gui_get_first_selection_iter(appGUI->nte->notes_list_selection, &model); gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, N_COLUMN_FILENAME, ¤t_filename, -1); appGUI->nte->filename = g_strdup(notes_get_full_filename(current_filename, appGUI)); appGUI->nte->context = grg_context_initialize_defaults((unsigned char*) "OSM"); appGUI->nte->keyholder = grg_key_gen((unsigned char*) pass, -1); grg_ctx_set_crypt_algo(appGUI->nte->context, get_enc_algorithm_value()); grg_ctx_set_hash_algo(appGUI->nte->context, get_enc_hashing_value()); grg_ctx_set_comp_algo(appGUI->nte->context, get_comp_algorithm_value()); grg_ctx_set_comp_ratio(appGUI->nte->context, get_comp_ratio_value()); ret = grg_decrypt_file(appGUI->nte->context, appGUI->nte->keyholder, (unsigned char *) appGUI->nte->filename, &txtnote, &txtlen); if (ret != GRG_OK) { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Incorrect password!"), GTK_WINDOW(appGUI->main_window)); g_free(pass); grg_key_free(appGUI->nte->context, appGUI->nte->keyholder); appGUI->nte->keyholder = NULL; grg_context_free(appGUI->nte->context); appGUI->nte->context = NULL; g_free(appGUI->nte->filename); appGUI->nte->filename = NULL; return; } else { buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->nte->editor_textview)); utl_gui_text_buffer_set_text_with_tags(buffer, (const gchar *) txtnote, TRUE); notes_show_selector_editor(EDITOR, appGUI); appGUI->nte->buffer_check_modify_enable = TRUE; } g_free(current_filename); g_free(pass); } /*------------------------------------------------------------------------------*/ gint notes_enter_password_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { notes_enter_password_close_cb (NULL, NULL, appGUI); return TRUE; } else if (event->keyval == GDK_KEY_Return) { notes_enter_password_action_cb (NULL, appGUI); return TRUE; } return FALSE; } #endif /* HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ void notes_enter_password (GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; GtkTreeIter iter; GtkTreeModel *model; gchar *current_filename; #ifdef HAVE_LIBGRINGOTTS GtkWidget *frame; GtkWidget *ok_button; GtkWidget *cancel_button; GtkWidget *label; GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; #endif /* HAVE_LIBGRINGOTTS */ iter = utl_gui_get_first_selection_iter(appGUI->nte->notes_list_selection, &model); gtk_tree_model_get (model, &iter, N_COLUMN_FILENAME, ¤t_filename, -1); #ifndef HAVE_LIBGRINGOTTS if (check_if_encrypted (current_filename, appGUI) == TRUE) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s\n\n(%s)", _("Cannot open the note."), _("encryption support is disabled")); utl_gui_create_dialog (GTK_MESSAGE_ERROR, tmpbuf, GTK_WINDOW(appGUI->main_window)); g_free (current_filename); return; } else { appGUI->nte->encrypted = FALSE; appGUI->nte->changed = FALSE; notes_enter_editor_action (appGUI); } #else if (check_if_encrypted (current_filename, appGUI) == TRUE) { appGUI->nte->encrypted = TRUE; appGUI->nte->enter_password_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->nte->enter_password_window), 4); gtk_window_set_title (GTK_WINDOW (appGUI->nte->enter_password_window), _("Authorization")); gtk_window_set_default_size (GTK_WINDOW(appGUI->nte->enter_password_window), 350, -1); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->nte->enter_password_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_position(GTK_WINDOW(appGUI->nte->enter_password_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal(GTK_WINDOW(appGUI->nte->enter_password_window), TRUE); g_signal_connect (G_OBJECT (appGUI->nte->enter_password_window), "delete_event", G_CALLBACK(notes_enter_password_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->nte->enter_password_window), "key_press_event", G_CALLBACK (notes_enter_password_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->nte->enter_password_window), vbox1); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); appGUI->nte->password_entry = gtk_entry_new (); gtk_widget_show (appGUI->nte->password_entry); gtk_container_add (GTK_CONTAINER (frame), appGUI->nte->password_entry); gtk_widget_set_margin_left(appGUI->nte->password_entry, 16); gtk_widget_set_margin_right(appGUI->nte->password_entry, 4); gtk_widget_set_margin_top(appGUI->nte->password_entry, 4); gtk_widget_set_margin_bottom(appGUI->nte->password_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (appGUI->nte->password_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (appGUI->nte->password_entry), FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_set_can_focus(cancel_button, FALSE); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (button_enter_password_close_cb), appGUI); ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_set_can_focus(ok_button, FALSE); gtk_widget_show (ok_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), ok_button); g_signal_connect (G_OBJECT (ok_button), "clicked", G_CALLBACK (notes_enter_password_action_cb), appGUI); gtk_widget_show (appGUI->nte->enter_password_window); } else { appGUI->nte->encrypted = FALSE; appGUI->nte->changed = FALSE; notes_enter_editor_action (appGUI); } #endif /* HAVE_LIBGRINGOTTS */ g_free (current_filename); } /*------------------------------------------------------------------------------*/ void read_notes_entries (GUI *appGUI) { xmlDocPtr doc; xmlChar *key; xmlNodePtr node, cnode, category_node, main_node; GtkTreeIter iter; gchar *name, *category, *create_date_str, *fontname; gchar *notes_dir, *str, *dir, *fullpath; gint last_changes_time, create_time, editor_line; guint32 last_changes_date_julian, create_date_julian; gboolean remember_editor_line, editor_readonly; notes_dir = g_strdup(prefs_get_data_filename(NOTES_DIRNAME, appGUI)); if (g_file_test (notes_dir, G_FILE_TEST_IS_DIR | G_FILE_TEST_EXISTS) == FALSE) { g_mkdir (notes_dir, 0755); } g_free(notes_dir); if (g_file_test (prefs_get_data_filename(NOTES_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) return; if((doc = xmlParseFile(prefs_get_data_filename(NOTES_ENTRIES_FILENAME, appGUI)))) { if(!(node = xmlDocGetRootElement(doc))) { xmlFreeDoc(doc); return; } if (xmlStrcmp(node->name, (const xmlChar *) NOTES_NAME)) { xmlFreeDoc(doc); return; } main_node = node->xmlChildrenNode; while (main_node != NULL) { if(!xmlStrcmp(main_node->name, (xmlChar *) NOTES_CATEGORY_ENTRIES_NAME)) { /* read note */ category_node = main_node->xmlChildrenNode; while (category_node != NULL) { if ((!xmlStrcmp(category_node->name, (const xmlChar *) "name"))) { key = xmlNodeListGetString(doc, category_node->xmlChildrenNode, 1); if (key != NULL) { gtk_list_store_append(appGUI->opt->notes_category_store, &iter); gtk_list_store_set(appGUI->opt->notes_category_store, &iter, 0, (gchar *) key, -1); } xmlFree(key); } category_node = category_node->next; } } /*---------------------------------------------------------------------------------------*/ if(!xmlStrcmp(main_node->name, (xmlChar *) NOTES_ENTRIES_NAME)) { /* read note */ node = main_node->xmlChildrenNode; while (node != NULL) { if(!xmlStrcmp(node->name, (xmlChar *) "entry")) { cnode = node->xmlChildrenNode; remember_editor_line = FALSE; editor_readonly = FALSE; editor_line = 0; fontname = NULL; while (cnode != NULL) { utl_xml_get_str ("name", &name, cnode); utl_xml_get_str ("category", &category, cnode); utl_xml_get_uint ("last_changes_date", &last_changes_date_julian, cnode); utl_xml_get_int ("last_changes_time", &last_changes_time, cnode); utl_xml_get_uint ("create_date", &create_date_julian, cnode); utl_xml_get_int ("create_time", &create_time, cnode); utl_xml_get_int ("remember_editor_line", &remember_editor_line, cnode); utl_xml_get_int ("editor_line", &editor_line, cnode); utl_xml_get_int ("read_only", &editor_readonly, cnode); utl_xml_get_str ("fontname", &fontname, cnode); if ((!xmlStrcmp(cnode->name, (const xmlChar *) "filename"))) { key = xmlNodeListGetString(doc, cnode->xmlChildrenNode, 1); if (key != NULL) { str = g_path_get_basename ((gchar *) key); dir = g_path_get_dirname ((gchar *) key); if (str && dir) { if (dir[0] == '.') { fullpath = g_strdup (notes_get_full_filename (str, appGUI)); } else { fullpath = (gchar *) key; } gtk_list_store_append (appGUI->nte->notes_list_store, &iter); create_date_str = g_strdup(get_date_time_str (create_date_julian, create_time)); if (fontname == NULL) { fontname = g_strdup(DEFAULT_NOTE_FONT); } gtk_list_store_set (appGUI->nte->notes_list_store, &iter, N_COLUMN_NAME, name, N_COLUMN_CATEGORY, category, N_COLUMN_LAST_CHANGES_DATE, get_date_time_str (last_changes_date_julian, last_changes_time), N_COLUMN_LAST_CHANGES_DATE_JULIAN, last_changes_date_julian, N_COLUMN_LAST_CHANGES_TIME, last_changes_time, N_COLUMN_CREATE_DATE, create_date_str, N_COLUMN_CREATE_DATE_JULIAN, create_date_julian, N_COLUMN_CREATE_TIME, create_time, N_COLUMN_REMEMBER_EDITOR_LINE, remember_editor_line, N_COLUMN_FONTNAME, fontname, N_COLUMN_EDITOR_LINE, editor_line, N_COLUMN_EDITOR_READONLY, editor_readonly, -1); g_free (create_date_str); if (dir[0] == '.') { gtk_list_store_set (appGUI->nte->notes_list_store, &iter, N_COLUMN_FILENAME, (gchar *)key, -1); g_free (fullpath); } else { gtk_list_store_set (appGUI->nte->notes_list_store, &iter, N_COLUMN_FILENAME, str, -1); } g_free (str); g_free (dir); g_free (name); g_free (fontname); g_free (category); fontname = NULL; } xmlFree (key); } } cnode = cnode->next; } } node = node->next; } } /*---------------------------------------------------------------------------------------*/ main_node = main_node->next; } xmlFree(node); xmlFreeDoc(doc); notes_cleanup_files (appGUI); check_notes_type (appGUI); } } /*------------------------------------------------------------------------------*/ void write_notes_entries (GUI *appGUI) { gint i; xmlDocPtr doc; xmlNodePtr main_node, node, note_node; xmlAttrPtr attr; GtkTreeIter iter; gchar *category, *name, *note_filename, *note_fontname; gint last_changes_time, create_time, editor_line; guint32 last_changes_date_julian, create_date_julian; gboolean remember_editor_line, editor_readonly; xmlChar *escaped; if ((appGUI->save_status & WRT_NOTES) != 0) return; appGUI->save_status |= WRT_NOTES; doc = xmlNewDoc((const xmlChar *) "1.0"); attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); main_node = xmlNewNode(NULL, (const xmlChar *) NOTES_NAME); xmlDocSetRootElement(doc, main_node); node = xmlNewChild(main_node, NULL, (const xmlChar *) NOTES_CATEGORY_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->notes_category_store), &iter, 0, &category, -1); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) category); xmlNewChild(node, NULL, (const xmlChar *) "name", (xmlChar *) escaped); g_free(category); xmlFree (escaped); } node = xmlNewChild(main_node, NULL, (const xmlChar *) NOTES_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->nte->notes_list_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->nte->notes_list_store), &iter, N_COLUMN_NAME, &name, N_COLUMN_CATEGORY, &category, N_COLUMN_LAST_CHANGES_DATE_JULIAN, &last_changes_date_julian, N_COLUMN_LAST_CHANGES_TIME, &last_changes_time, N_COLUMN_CREATE_DATE_JULIAN, &create_date_julian, N_COLUMN_CREATE_TIME, &create_time, N_COLUMN_REMEMBER_EDITOR_LINE, &remember_editor_line, N_COLUMN_EDITOR_LINE, &editor_line, N_COLUMN_EDITOR_READONLY, &editor_readonly, N_COLUMN_FONTNAME, ¬e_fontname, N_COLUMN_FILENAME, ¬e_filename, -1); note_node = xmlNewChild (node, NULL, (const xmlChar *) "entry", (xmlChar *) NULL); utl_xml_put_str ("name", name, note_node); g_free (name); utl_xml_put_str ("category", category, note_node); g_free (category); utl_xml_put_uint ("last_changes_date", last_changes_date_julian, note_node); utl_xml_put_int ("last_changes_time", last_changes_time, note_node); utl_xml_put_uint ("create_date", create_date_julian, note_node); utl_xml_put_int ("create_time", create_time, note_node); utl_xml_put_int ("remember_editor_line", remember_editor_line, note_node); utl_xml_put_int ("editor_line", editor_line, note_node); utl_xml_put_int ("read_only", editor_readonly, note_node); utl_xml_put_str ("fontname", note_fontname, note_node); utl_xml_put_str ("filename", note_filename, note_node); g_free (note_filename); } utl_xml_write_doc (prefs_get_data_filename (NOTES_ENTRIES_FILENAME, appGUI), doc); xmlFreeProp (attr); xmlFreeDoc (doc); appGUI->save_status &= ~WRT_NOTES; } /*------------------------------------------------------------------------------*/ gchar * notes_get_new_filename (GUI *appGUI) { guint i; static gchar fullpath[PATH_MAX]; for(i=0; i < 99999999; i++) { g_snprintf(fullpath, PATH_MAX-1, "%s%c%08d.osm", prefs_get_data_filename(NOTES_DIRNAME, appGUI), G_DIR_SEPARATOR, i); if (g_file_test (fullpath, G_FILE_TEST_EXISTS) == FALSE) break; } g_snprintf(fullpath, PATH_MAX-1, "%08d.osm", i); return fullpath; } /*------------------------------------------------------------------------------*/ void notes_cleanup_files (GUI *appGUI) { gchar fullpath[PATH_MAX]; GDir *dpath; gboolean found; gint i; const gchar *item_name; gchar *note_filename; GtkTreeIter iter; g_snprintf(fullpath, PATH_MAX-1, "%s", prefs_get_data_filename(NOTES_DIRNAME, appGUI)); dpath = g_dir_open (fullpath, 0, NULL); if (dpath != NULL) { while ((item_name = g_dir_read_name (dpath)) != NULL) { found = FALSE; g_snprintf(fullpath, PATH_MAX-1, "%s%c%s", prefs_get_data_filename(NOTES_DIRNAME, appGUI), G_DIR_SEPARATOR, item_name); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, N_COLUMN_FILENAME, ¬e_filename, -1); if (!strncmp(notes_get_full_filename(note_filename, appGUI), fullpath, PATH_MAX)) { found = TRUE; g_free(note_filename); break; } g_free(note_filename); } if (found == FALSE) { g_unlink (fullpath); } } g_dir_close (dpath); } } /*------------------------------------------------------------------------------*/ gchar * notes_get_full_filename (gchar *filename, GUI *appGUI) { static gchar fullname[PATH_MAX]; gchar *str; g_snprintf (fullname, PATH_MAX-1, "%s%c%s", prefs_get_data_filename(NOTES_DIRNAME, appGUI), G_DIR_SEPARATOR, filename); if (g_file_test (fullname, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS) == FALSE) { str = g_path_get_basename (fullname); if (str) { g_snprintf (fullname, PATH_MAX-1, "%s%c%s", prefs_get_data_filename(NOTES_DIRNAME, appGUI), G_DIR_SEPARATOR, str); g_free (str); } } return fullname; } /*------------------------------------------------------------------------------*/ #endif /* NOTES_ENABLED */ osmo-0.4.2/src/tasks_preferences_gui.c0000664000175000017500000006676613066543472014761 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "calendar.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "tasks.h" #include "tasks_preferences_gui.h" #include "utils_gui.h" #ifdef TASKS_ENABLED /* ========================================================================== */ static void checkbutton_clicked_cb (GtkToggleButton *togglebutton, gint *option) { *option = gtk_toggle_button_get_active (togglebutton); } /* ========================================================================== */ static void due_today_color_changed_cb (GtkColorChooser *color_button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (color_button, &color); utl_gui_convert_color_to_string (&color, config.due_today_color); refresh_tasks (appGUI); } /* ========================================================================== */ static void due_7days_color_changed_cb (GtkColorChooser *color_button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (color_button, &color); utl_gui_convert_color_to_string(&color, config.due_7days_color); refresh_tasks (appGUI); } /* ========================================================================== */ static void past_due_color_changed_cb (GtkColorChooser *color_button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (color_button, &color); utl_gui_convert_color_to_string (&color, config.past_due_color); refresh_tasks (appGUI); } /* ========================================================================== */ static void bold_items_cb (GtkToggleButton *widget, GUI *appGUI) { config.tasks_high_in_bold = gtk_toggle_button_get_active (widget); refresh_tasks (appGUI); } /* ========================================================================== */ static void ti_font_select_cb (GtkWidget *widget, GUI *appGUI) { GtkWidget *font_selector; gchar *font_name; gint response; font_selector = gtk_font_chooser_dialog_new (_("Select a font..."), GTK_WINDOW (appGUI->main_window)); gtk_window_set_modal (GTK_WINDOW (font_selector), TRUE); gtk_window_set_position (GTK_WINDOW (font_selector), GTK_WIN_POS_MOUSE); gtk_window_set_transient_for (GTK_WINDOW (font_selector), GTK_WINDOW (appGUI->main_window)); gtk_font_chooser_set_font (GTK_FONT_CHOOSER (font_selector), config.task_info_font); gtk_widget_show (font_selector); response = gtk_dialog_run (GTK_DIALOG (font_selector)); if (response == GTK_RESPONSE_OK) { font_name = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (font_selector)); g_strlcpy (config.task_info_font, font_name, MAXFONTNAME); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->ti_font_entry), font_name); g_free (font_name); g_object_set (G_OBJECT (appGUI->tsk->font_tag_object), "font", (gchar *) config.task_info_font, NULL); } gtk_widget_destroy (font_selector); } /* ========================================================================== */ static void create_appearance_section (GtkWidget *appearance_vbox, GUI *appGUI) { GtkWidget *table, *colors_hbox; GtkWidget *checkbutton, *label, *color_button, *font_button; GdkRGBA color; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (appearance_vbox), table, FALSE, FALSE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 8); colors_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), colors_hbox, 1, 0, 1, 1); color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Color of items that are due today")); gdk_rgba_parse (&color, config.due_today_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (due_today_color_changed_cb), appGUI); appGUI->opt->due_today_color_picker = color_button; color_button = gtk_color_button_new (); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (due_7days_color_changed_cb), appGUI); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Color of items that are due in the next 7 days")); gdk_rgba_parse (&color, config.due_7days_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); appGUI->opt->due_7days_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Color of items that are past due")); gdk_rgba_parse(&color, config.past_due_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (past_due_color_changed_cb), appGUI); appGUI->opt->past_due_color_picker = color_button; appGUI->opt->ti_font_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->ti_font_entry), config.task_info_font); gtk_widget_set_can_focus (appGUI->opt->ti_font_entry, FALSE); gtk_widget_set_hexpand(appGUI->opt->ti_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->ti_font_entry, 1, 1, 1, 1); font_button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), font_button, 2, 1, 1, 1); g_signal_connect (G_OBJECT (font_button), "clicked", G_CALLBACK (ti_font_select_cb), appGUI); label = utl_gui_create_label ("%s:", _("Task info font")); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); label = utl_gui_create_label ("%s:", _("Colors")); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); checkbutton = gtk_check_button_new_with_mnemonic (_("Show in bold tasks with high priority")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.tasks_high_in_bold); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 3, 3, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (bold_items_cb), appGUI); appGUI->opt->ct_bold_items_checkbutton = checkbutton; } /* ========================================================================== */ static void visible_columns_changed_cb (GtkToggleButton *widget, GUI *appGUI) { config.tsk_visible_due_date_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->vc_due_date_checkbutton)); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE], config.tsk_visible_due_date_column); config.tsk_visible_type_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->vc_type_checkbutton)); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE], config.tsk_visible_type_column); config.tsk_visible_category_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->vc_category_checkbutton)); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY], config.tsk_visible_category_column); config.tsk_visible_priority_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->vc_priority_checkbutton)); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY], config.tsk_visible_priority_column); set_tasks_columns_width (appGUI); } /* ========================================================================== */ static void create_visible_columns_section (GtkWidget *visible_columns_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (visible_columns_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 8); checkbutton = gtk_check_button_new_with_mnemonic (_("Due date")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.tsk_visible_due_date_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); appGUI->opt->vc_due_date_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Type")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.tsk_visible_type_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 1, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); appGUI->opt->vc_type_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Priority")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.tsk_visible_priority_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); appGUI->opt->vc_priority_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Category")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.tsk_visible_category_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 3, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (visible_columns_changed_cb), appGUI); appGUI->opt->vc_category_checkbutton = checkbutton; } /* ========================================================================== */ static void tasks_category_remove_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->tasks_category_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, path); gtk_list_store_remove (appGUI->opt->tasks_category_store, &iter); gtk_tree_path_free (path); refresh_tasks (appGUI); set_categories (appGUI); } } /* ========================================================================== */ static void tasks_category_add_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeIter iter; const gchar *category_name; gchar *item; gint i; category_name = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->tasks_category_entry)); if (!strlen (category_name)) return; i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, TC_COLUMN_NAME, &item, -1); if (!strcmp (category_name, item)) { g_free (item); return; } g_free (item); } gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, NULL, 0); gtk_list_store_append (appGUI->opt->tasks_category_store, &iter); gtk_list_store_set (appGUI->opt->tasks_category_store, &iter, TC_COLUMN_NAME, category_name, TC_COLUMN_CALENDAR, TRUE, TC_COLUMN_TASKS, TRUE, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->tasks_category_entry), ""); gtk_widget_set_sensitive (appGUI->opt->tasks_category_add_button, FALSE); utl_gui_create_category_combobox (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), appGUI->opt->tasks_category_store, FALSE); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), 0); gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter)); set_categories (appGUI); refresh_tasks (appGUI); } /* ========================================================================== */ static void tsk_show_in_tasks_list_toggled (GtkCellRendererToggle *cell, gchar *path_str, GUI *appGUI) { GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; gboolean done_status; model = GTK_TREE_MODEL (appGUI->opt->tasks_category_store); path = gtk_tree_path_new_from_string (path_str); if (path != NULL) { gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, TC_COLUMN_TASKS, &done_status, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, TC_COLUMN_TASKS, !done_status, -1); refresh_tasks (appGUI); gtk_tree_path_free (path); } } /* ========================================================================== */ static void tsk_show_in_calendar_toggled (GtkCellRendererToggle *cell, gchar *path_str, GUI *appGUI) { GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; gboolean done_status; model = GTK_TREE_MODEL (appGUI->opt->tasks_category_store); path = gtk_tree_path_new_from_string (path_str); if (path != NULL) { gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, TC_COLUMN_CALENDAR, &done_status, -1); gtk_list_store_set (GTK_LIST_STORE(model), &iter, TC_COLUMN_CALENDAR, !done_status, -1); cal_set_day_info (appGUI); cal_refresh_marks (appGUI); gtk_tree_path_free (path); } } /* ========================================================================== */ static void tasks_category_cell_edited_cb (GtkCellRendererText *renderer, gchar *path, gchar *new_text, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (g_ascii_strcasecmp (new_text, "") != 0) { model = gtk_tree_view_get_model (GTK_TREE_VIEW (appGUI->opt->tasks_category_treeview)); if (gtk_tree_model_get_iter_from_string (model, &iter, path)) { gtk_list_store_set (appGUI->opt->tasks_category_store, &iter, TC_COLUMN_NAME, new_text, -1); } } } /* ========================================================================== */ static void tasks_category_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_widget_set_sensitive (appGUI->opt->tasks_category_remove_button, TRUE); else gtk_widget_set_sensitive (appGUI->opt->tasks_category_remove_button, FALSE); } /* ========================================================================== */ static gint tasks_category_entry_key_release_cb (GtkEntry *widget, GdkEventKey *event, GUI *appGUI) { gboolean state = FALSE; if (strlen (gtk_entry_get_text (widget))) state = TRUE; gtk_widget_set_sensitive (appGUI->opt->tasks_category_add_button, state); if (event->keyval == GDK_KEY_Return) { if (state) tasks_category_add_cb (NULL, appGUI); return TRUE; } return FALSE; } /* ========================================================================== */ static void create_categories_section (GtkWidget *categories_vbox, GUI *appGUI) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *table, *scrolledwindow, *treeview; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (categories_vbox), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 8); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); appGUI->opt->tasks_category_entry = gtk_entry_new (); gtk_widget_set_hexpand(appGUI->opt->tasks_category_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->tasks_category_entry, 0, 3, 1, 1); g_signal_connect (G_OBJECT (appGUI->opt->tasks_category_entry), "key_release_event", G_CALLBACK (tasks_category_entry_key_release_cb), appGUI); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW (scrolledwindow), 120); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, 0, 3, 3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->opt->tasks_category_store)); gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview); gtk_container_set_border_width (GTK_CONTAINER (treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); appGUI->opt->tasks_category_treeview = treeview; appGUI->opt->tasks_category_select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (appGUI->opt->tasks_category_select), "changed", G_CALLBACK (tasks_category_selected_cb), appGUI); renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (tasks_category_cell_edited_cb), appGUI); column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", TC_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_expand (column, TRUE); renderer = gtk_cell_renderer_toggle_new (); /* Show in calendar */ column = gtk_tree_view_column_new_with_attributes(_("Calendar"), renderer, "active", TC_COLUMN_CALENDAR, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (tsk_show_in_calendar_toggled), appGUI); renderer = gtk_cell_renderer_toggle_new (); /* Show in tasks list */ column = gtk_tree_view_column_new_with_attributes (_("Tasks"), renderer, "active", TC_COLUMN_TASKS, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (tsk_show_in_tasks_list_toggled), appGUI); appGUI->opt->tasks_category_add_button = gtk_button_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (appGUI->opt->tasks_category_add_button, FALSE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->tasks_category_add_button, 1, 3, 1, 1); g_signal_connect (appGUI->opt->tasks_category_add_button, "clicked", G_CALLBACK (tasks_category_add_cb), appGUI); appGUI->opt->tasks_category_remove_button = gtk_button_new_from_icon_name ("list-remove", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (appGUI->opt->tasks_category_remove_button, FALSE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->tasks_category_remove_button, 2, 3, 1, 1); g_signal_connect (appGUI->opt->tasks_category_remove_button, "clicked", G_CALLBACK (tasks_category_remove_cb), appGUI); } /* ========================================================================== */ static void delete_items_cb (GtkToggleButton *togglebutton, GUI *appGUI) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_delete_items_checkbutton))) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_hide_items_checkbutton), FALSE); } /* ========================================================================== */ static void hide_items_cb (GtkToggleButton *togglebutton, GUI *appGUI) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_hide_items_checkbutton))) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_delete_items_checkbutton), FALSE); } /* ========================================================================== */ static void hide_delete_changed_cb (GtkToggleButton *widget, GUI *appGUI) { config.hide_completed = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_hide_items_checkbutton)); gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter)); config.delete_completed = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ct_delete_items_checkbutton)); } /* ========================================================================== */ static void create_tasks_options_section (GtkWidget *tasks_opt_vbox, GUI *appGUI) { GtkWidget *checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Hide completed tasks")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_completed); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_delete_changed_cb), appGUI); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_items_cb), appGUI); appGUI->opt->ct_hide_items_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Delete completed tasks without confirmation")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.delete_completed); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (hide_delete_changed_cb), appGUI); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (delete_items_cb), appGUI); appGUI->opt->ct_delete_items_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Add new task when double clicked on tasks list")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.add_edit); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.add_edit)); appGUI->opt->ct_add_item_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Remember the last selected category")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.remember_category_in_tasks); gtk_box_pack_start (GTK_BOX (tasks_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.remember_category_in_tasks)); appGUI->opt->ct_remember_category_checkbutton = checkbutton; } /* ========================================================================== */ static gint global_notification_entry_changed_cb (GtkEditable *editable, GUI *appGUI) { utl_gui_update_command_status (editable, appGUI->opt->global_notification_valid_image, appGUI); g_strlcpy (config.global_notification_command, gtk_editable_get_chars (editable, 0, -1), MAXHELPERCMD); return FALSE; } /* ========================================================================== */ static void sound_alarm_repeat_changed_cb (GtkSpinButton *spinbutton, GUI *appGUI) { config.sound_alarm_repeat = (gint) gtk_spin_button_get_value (spinbutton); } /* ========================================================================== */ static void postpone_time_changed_cb (GtkSpinButton *spinbutton, GUI *appGUI) { config.postpone_time = (gint) gtk_spin_button_get_value (spinbutton); } /* ========================================================================== */ static void create_reminder_options_section (GtkWidget *reminder_opt_vbox, GUI *appGUI) { GtkWidget *table, *label, *spinbutton, *entry, *valid_hbox; GtkAdjustment *adjustment; gchar *str; gint i = 0; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (reminder_opt_vbox), table, FALSE, FALSE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 8); label = utl_gui_create_label ("%s:", _("Postpone time")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); adjustment = gtk_adjustment_new (0, 0, 1440, 1, 10, 0); spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton), config.postpone_time); gtk_grid_attach (GTK_GRID (table), spinbutton, 1, i, 1, 1); g_signal_connect (G_OBJECT (spinbutton), "value-changed", G_CALLBACK (postpone_time_changed_cb), appGUI); appGUI->opt->postpone_time_spinbutton = spinbutton; str = g_strdup_printf ("%s (%s)", _("minutes"), _("0 for disable")); label = gtk_label_new (str); g_free (str); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (table), label, 2, i, 1, 1); i++; label = utl_gui_create_label ("%s:", _("Repeat sound alarm")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); adjustment = gtk_adjustment_new (0, 0, 100, 1, 10, 0); spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton), config.sound_alarm_repeat); gtk_grid_attach (GTK_GRID (table), spinbutton, 1, i, 1, 1); g_signal_connect (G_OBJECT (spinbutton), "value-changed", G_CALLBACK (sound_alarm_repeat_changed_cb), appGUI); appGUI->opt->sound_alarm_repeat_spinbutton = spinbutton; str = g_strdup_printf ("%s (%s)", _("times"), _("0 for disable")); label = gtk_label_new (str); g_free (str); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_grid_attach (GTK_GRID (table), label, 2, i, 1, 1); i++; label = utl_gui_create_label ("%s:", _("Global notification command")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); valid_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_grid_attach (GTK_GRID (table), valid_hbox, 1, i, 2, 1); entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), config.global_notification_command); gtk_box_pack_start (GTK_BOX (valid_hbox), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (global_notification_entry_changed_cb), appGUI); appGUI->opt->global_notification_cmd_entry = entry; appGUI->opt->global_notification_valid_image = gtk_image_new (); gtk_box_pack_start (GTK_BOX (valid_hbox), appGUI->opt->global_notification_valid_image, FALSE, FALSE, 0); utl_gui_update_command_status (GTK_EDITABLE(entry), appGUI->opt->global_notification_valid_image, appGUI); } /* ========================================================================== */ GtkWidget * tsk_create_preferences_page (GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox_top, *vbox_icon, *vbox, *scrolledwindow; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), BORDER_WIDTH); scrolledwindow = utl_gui_insert_in_scrolled_window (vbox_top, GTK_SHADOW_ETCHED_IN); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 2); vbox_icon = utl_gui_create_icon_with_label (OSMO_STOCK_TASKS, _("Tasks")); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Appearance")); create_appearance_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Visible columns")); create_visible_columns_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Categories")); create_categories_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Tasks options")); create_tasks_options_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Reminder options")); create_reminder_options_section (vbox, appGUI); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow, vbox_icon); gtk_widget_show_all (scrolledwindow); return scrolledwindow; } /* ========================================================================== */ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/Makefile.in0000664000175000017500000006115313204317526012262 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = : bin_PROGRAMS = osmo$(EXEEXT) @HAVE_LIBWEBKIT_TRUE@am__append_1 = @LIBWEBKIT_CFLAGS@ @HAVE_LIBWEBKIT_TRUE@am__append_2 = @LIBWEBKIT_LIBS@ @HAVE_LIBICAL_TRUE@am__append_3 = @LIBICAL_CFLAGS@ @HAVE_LIBICAL_TRUE@am__append_4 = @LIBICAL_LIBS@ @HAVE_GSPELL_TRUE@am__append_5 = @GSPELL_CFLAGS@ @HAVE_GSPELL_TRUE@am__append_6 = @GSPELL_LIBS@ @CONFIGPATH_TRUE@am__append_7 = -DCONFIG_PATH=\"$(configpath)\" @CONFIGDIR_TRUE@am__append_8 = -DCONFIG_DIR=\"$(configdir)\" subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_osmo_OBJECTS = about.$(OBJEXT) backup.$(OBJEXT) calendar.$(OBJEXT) \ calendar_calc.$(OBJEXT) calendar_fullyear.$(OBJEXT) \ calendar_ical.$(OBJEXT) calendar_jumpto.$(OBJEXT) \ calendar_notes.$(OBJEXT) calendar_print.$(OBJEXT) \ calendar_preferences_gui.$(OBJEXT) calendar_timeline.$(OBJEXT) \ calendar_utils.$(OBJEXT) calendar_widget.$(OBJEXT) \ check_events.$(OBJEXT) contacts.$(OBJEXT) \ contacts_birthdays.$(OBJEXT) contacts_import.$(OBJEXT) \ contacts_import_csv.$(OBJEXT) contacts_export.$(OBJEXT) \ contacts_items.$(OBJEXT) contacts_preferences_gui.$(OBJEXT) \ gui.$(OBJEXT) gtksourceiter.$(OBJEXT) main.$(OBJEXT) \ notes.$(OBJEXT) notes_items.$(OBJEXT) \ notes_preferences_gui.$(OBJEXT) options_prefs.$(OBJEXT) \ preferences_gui.$(OBJEXT) stock_icons.$(OBJEXT) \ tasks.$(OBJEXT) tasks_export.$(OBJEXT) tasks_items.$(OBJEXT) \ tasks_print.$(OBJEXT) tasks_preferences_gui.$(OBJEXT) \ tasks_utils.$(OBJEXT) utils.$(OBJEXT) utils_gui.$(OBJEXT) \ utils_date.$(OBJEXT) utils_date_time.$(OBJEXT) \ utils_time.$(OBJEXT) vcf.$(OBJEXT) osmo_OBJECTS = $(am_osmo_OBJECTS) osmo_DEPENDENCIES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(osmo_SOURCES) DIST_SOURCES = $(osmo_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ @LIBNOTIFY_LIBS@ $(am__append_2) $(am__append_4) \ $(am__append_6) LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = -Wno-portability ISREPO := "$(shell git rev-parse --is-inside-work-tree 2> /dev/null)" REVISION := "$(shell git rev-parse --short HEAD 2>/dev/null)" VERSION_MAJOR := $(shell echo $(VERSION) | awk -F "." '{print $$1}') VERSION_MINOR := $(shell echo $(VERSION) | awk -F "." '{print $$2}') VERSION_MICRO := $(shell echo $(VERSION) | awk -F "." '{print $$3}') AM_CPPFLAGS = -DREPO=$(ISREPO) -DREVISION=$(REVISION) -DLOCALEDIR=\"$(datadir)/locale\" -DDATADIR=\"$(datadir)\" \ -DVERSION_MAJOR=\"$(VERSION_MAJOR)\" -DVERSION_MINOR=\"$(VERSION_MINOR)\" -DVERSION_MICRO=\"$(VERSION_MICRO)\" \ -DSOUNDSDIR=\"$(datadir)/sounds\" @GTK_CFLAGS@ @XML_CPPFLAGS@ -Wall -DGDK_DISABLE_DEPRECATION_WARNINGS \ -DG_DISABLE_CAST_CHECKS AM_CFLAGS = @CFLAGS@ @LIBNOTIFY_CFLAGS@ $(am__append_1) \ $(am__append_3) $(am__append_5) $(am__append_7) \ $(am__append_8) osmo_SOURCES = about.c about.h \ backup.c backup.h \ calendar.c calendar.h \ calendar_calc.c calendar_calc.h \ calendar_fullyear.c calendar_fullyear.h \ calendar_ical.c calendar_ical.h \ calendar_jumpto.c calendar_jumpto.h \ calendar_moon_a.h calendar_moon_b.h \ calendar_notes.c calendar_notes.h \ calendar_print.c calendar_print.h \ calendar_preferences_gui.c calendar_preferences_gui.h \ calendar_timeline.c calendar_timeline.h \ calendar_utils.c calendar_utils.h \ calendar_widget.c calendar_widget.h \ check_events.c check_events.h \ contacts.c contacts.h \ contacts_birthdays.c contacts_birthdays.h \ contacts_import.c contacts_import.h \ contacts_import_csv.c contacts_import_csv.h \ contacts_export.c contacts_export.h \ contacts_items.c contacts_items.h \ contacts_preferences_gui.c contacts_preferences_gui.h \ gui.c gui.h \ gui_icon.h gui_logo.h \ gtksourceiter.c gtksourceiter.h \ i18n.h \ main.c \ notes.c notes.h \ notes_items.c notes_items.h \ notes_preferences_gui.c notes_preferences_gui.h \ options_prefs.c options_prefs.h \ preferences_gui.c preferences_gui.h \ stock_icons.c stock_icons.h stock_icons_data.h \ tasks.c tasks.h \ tasks_export.c tasks_export.h \ tasks_items.c tasks_items.h \ tasks_print.c tasks_print.h \ tasks_preferences_gui.c tasks_preferences_gui.h \ tasks_utils.c tasks_utils.h \ utils.c utils.h \ utils_gui.c utils_gui.h \ utils_date.c utils_date.h \ utils_date_time.c utils_date_time.h \ utils_time.c utils_time.h \ vcf.c vcf.h osmo_LDADD = $(LIBINTL) @GTK_LIBS@ -lm @XML_LIBS@ @GTHREAD_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/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 $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) osmo$(EXEEXT): $(osmo_OBJECTS) $(osmo_DEPENDENCIES) $(EXTRA_osmo_DEPENDENCIES) @rm -f osmo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(osmo_OBJECTS) $(osmo_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/about.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_calc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_fullyear.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_ical.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_jumpto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_notes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_preferences_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_print.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_timeline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calendar_widget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_events.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_birthdays.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_export.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_import.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_import_csv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_items.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/contacts_preferences_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtksourceiter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/notes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/notes_items.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/notes_preferences_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options_prefs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preferences_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stock_icons.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks_export.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks_items.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks_preferences_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks_print.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tasks_utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_date.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_date_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vcf.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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)'; \ 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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) installdirs: for dir in "$(DESTDIR)$(bindir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS 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 maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS .PRECIOUS: Makefile #if WIN32 #AM_CFLAGS = \ # -mms-bitfields \ # -mwindows #endif # 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: osmo-0.4.2/src/tasks_items.c0000664000175000017500000021012413110234475012676 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar.h" #include "calendar_notes.h" #include "calendar_utils.h" #include "calendar_widget.h" #include "check_events.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "tasks.h" #include "tasks_items.h" #include "tasks_preferences_gui.h" #include "tasks_utils.h" #include "utils.h" #include "utils_gui.h" #include "utils_time.h" #ifdef TASKS_ENABLED /*------------------------------------------------------------------------------*/ void tasks_item_entered_cb (GtkWidget *widget, gpointer data) { GtkTextBuffer *text_buffer; GtkTextIter iter_a, iter_b; GtkTreePath *sort_path, *filter_path, *path; GtkTreeIter iter; guint32 fstartdate; guint id; TASK_ITEM *item; GDate *cdate; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; item = g_new0 (TASK_ITEM, 1); if (appGUI->tsk->tasks_edit_state == TRUE) { gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->tsk->tasks_list), &sort_path, NULL); if (sort_path != NULL) { filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->tsk->tasks_sort), sort_path); if (filter_path != NULL) { path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter), filter_path); if (path != NULL) { gtk_tree_model_get_iter(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, path); gtk_tree_model_get (GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_ID, &id, TA_COLUMN_START_DATE_JULIAN, &fstartdate, -1); /* FIXME */ gtk_list_store_remove(appGUI->tsk->tasks_list_store, &iter); gtk_tree_path_free(path); } gtk_tree_path_free(filter_path); } gtk_tree_path_free(sort_path); } } text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->tsk->desc_textview)); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &iter_a, 0); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &iter_b, -1); item->done = FALSE; item->due_date_julian = appGUI->tsk->tasks_due_julian_day; item->due_time = appGUI->tsk->tasks_due_time; if(appGUI->tsk->tasks_edit_state == TRUE) { item->start_date_julian = fstartdate; item->id = id; } else { item->start_date_julian = utl_date_get_current_julian (); item->id = appGUI->tsk->next_id++; } item->active = TRUE; item->sound_enable = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->checkb_sound_enable)); item->ndialog_enable = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->checkb_ndialog_enable)); item->repeat = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->rt_enable_checkbutton)); item->offline_ignore = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->ignore_alarm_checkbutton)); item->warning_days = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->aw_days_spinbutton)); item->warning_time = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->aw_hours_spinbutton)) * 60 + gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->aw_minutes_spinbutton)); item->postpone_time = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->tsk->postpone_spinbutton)); item->alarm_command = g_strdup((gchar *) gtk_entry_get_text(GTK_ENTRY(appGUI->tsk->alarm_cmd_entry))); item->repeat_time_start = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_start_hour_spinbutton)) * 60 + gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_start_minute_spinbutton)); item->repeat_time_end = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_end_hour_spinbutton)) * 60 + gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_end_minute_spinbutton)); item->repeat_time_interval = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_interval_hour_spinbutton)) * 60 + gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_interval_minute_spinbutton)); item->repeat_day_interval = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_dp_day_spinbutton)); item->repeat_month_interval = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->rt_dp_month_spinbutton)); item->repeat_counter = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(appGUI->tsk->repeat_counter_spinbutton)); item->priority = g_strdup(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(appGUI->tsk->priority_combobox))); item->category = g_strdup(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(appGUI->tsk->category_combobox))); item->summary = g_strdup((gchar *) gtk_entry_get_text(GTK_ENTRY(appGUI->tsk->summary_entry))); item->desc = g_strdup(gtk_text_buffer_get_text(GTK_TEXT_BUFFER(text_buffer), &iter_a, &iter_b, TRUE)); if (g_date_valid_julian (item->due_date_julian)) { cdate = g_date_new_julian (item->due_date_julian); item->repeat_start_day = g_date_get_day (cdate); g_date_free (cdate); } else { item->repeat_start_day = 0; } item->repeat_day = 0; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_1_checkbutton))) item->repeat_day |= 1; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_2_checkbutton))) item->repeat_day |= 2; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_3_checkbutton))) item->repeat_day |= 4; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_4_checkbutton))) item->repeat_day |= 8; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_5_checkbutton))) item->repeat_day |= 16; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_6_checkbutton))) item->repeat_day |= 32; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_7_checkbutton))) item->repeat_day |= 64; if (item->repeat == TRUE && item->repeat_day == 0) { tsk_item_free (item); g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("Please select at least one day when recurrency is enabled.")); utl_gui_create_dialog (GTK_MESSAGE_ERROR, tmpbuf, GTK_WINDOW (appGUI->tsk->tasks_add_window)); return; } item->done_date_julian = 0; add_item_to_list (item, appGUI); gui_systray_tooltip_update(appGUI); gtk_widget_destroy (appGUI->tsk->tasks_add_window); tasks_select_first_position_in_list (appGUI); g_signal_emit_by_name (G_OBJECT(appGUI->cal->calendar), "day-selected"); refresh_tasks (appGUI); tsk_item_free (item); cal_refresh_marks (appGUI); update_aux_calendars (appGUI); if (config.save_data_after_modification) { write_tasks_entries (appGUI); } } /*------------------------------------------------------------------------------*/ static void tasks_related_set_state(gboolean date_state, gboolean time_state, GUI *appGUI) { gtk_widget_set_sensitive (appGUI->tsk->recurrent_task_vbox, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->tsk->rt_enable_checkbutton))); gtk_widget_set_sensitive(appGUI->tsk->rt_enable_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->checkb_sound_enable, date_state); gtk_widget_set_sensitive(appGUI->tsk->checkb_ndialog_enable, date_state); gtk_widget_set_sensitive(appGUI->tsk->aw_days_spinbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->aw_hours_spinbutton, date_state && time_state); gtk_widget_set_sensitive(appGUI->tsk->aw_minutes_spinbutton, date_state && time_state); gtk_widget_set_sensitive(appGUI->tsk->postpone_spinbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->alarm_cmd_entry, date_state); gtk_widget_set_sensitive(appGUI->tsk->alarm_cmd_valid_image, date_state); gtk_widget_set_sensitive(appGUI->tsk->rt_dp_day_spinbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->repeat_counter_spinbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->rt_dp_month_spinbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_1_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_2_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_3_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_4_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_5_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_6_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->dp_7_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->ignore_alarm_checkbutton, date_state); gtk_widget_set_sensitive(appGUI->tsk->rt_start_hour_spinbutton, time_state); gtk_widget_set_sensitive(appGUI->tsk->rt_start_minute_spinbutton, time_state); gtk_widget_set_sensitive(appGUI->tsk->rt_end_hour_spinbutton, time_state); gtk_widget_set_sensitive(appGUI->tsk->rt_end_minute_spinbutton, time_state); gtk_widget_set_sensitive(appGUI->tsk->rt_interval_hour_spinbutton, time_state); gtk_widget_set_sensitive(appGUI->tsk->rt_interval_minute_spinbutton, time_state); } /*------------------------------------------------------------------------------*/ void day_selected_cb (GuiCalendar *calendar, GUI *appGUI) { TIME *tm; GDate *d = g_date_new (); gui_calendar_get_gdate (calendar, d); appGUI->tsk->tasks_due_julian_day = g_date_get_julian (d); g_date_free (d); if (gtk_expander_get_expanded (GTK_EXPANDER (appGUI->tsk->time_expander)) == TRUE) { tm = utl_time_new_hms (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_hour)), gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_minute)), 0); appGUI->tsk->tasks_due_time = utl_time_get_seconds (tm); utl_time_free (tm); tasks_related_set_state (TRUE, TRUE, appGUI); } else { appGUI->tsk->tasks_due_time = -1; tasks_related_set_state (TRUE, FALSE, appGUI); } gtk_widget_destroy (appGUI->tsk->td_calendar_window); gtk_entry_set_text (GTK_ENTRY (appGUI->tsk->due_date_entry), get_date_time_full_str (appGUI->tsk->tasks_due_julian_day, appGUI->tsk->tasks_due_time)); } /*------------------------------------------------------------------------------*/ void close_calendar_cb (GtkWidget *widget, GdkEvent *event, GUI *appGUI) { gtk_widget_destroy (appGUI->tsk->td_calendar_window); } /*------------------------------------------------------------------------------*/ void button_close_calendar_cb (GtkButton *button, gpointer user_data) { close_calendar_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ void button_ok_calendar_cb (GtkButton *button, gpointer user_data) { GUI *appGUI = (GUI *) user_data; day_selected_cb (GUI_CALENDAR (appGUI->tsk->td_calendar), appGUI); } /*------------------------------------------------------------------------------*/ void calendar_set_date (GDate *cdate, GUI *appGUI) { gui_calendar_select_month (GUI_CALENDAR (appGUI->tsk->td_calendar), g_date_get_month (cdate) - 1, g_date_get_year (cdate)); gui_calendar_select_day (GUI_CALENDAR (appGUI->tsk->td_calendar), g_date_get_day (cdate)); day_selected_cb (GUI_CALENDAR (appGUI->tsk->td_calendar), appGUI); } /*------------------------------------------------------------------------------*/ void set_today_calendar_cb (GtkWidget *widget, GUI *appGUI) { GDate *date = utl_date_new_current (); calendar_set_date (date, appGUI); g_date_free (date); } /*------------------------------------------------------------------------------*/ void set_tomorrow_calendar_cb (GtkWidget *widget, GUI *appGUI) { GDate *date = utl_date_new_current (); g_date_add_days (date, 1); calendar_set_date (date, appGUI); g_date_free (date); } /*------------------------------------------------------------------------------*/ void nodate_calendar_cb (GtkWidget *widget, GUI *appGUI) { gtk_entry_set_text (GTK_ENTRY(appGUI->tsk->due_date_entry), _("No date")); appGUI->tsk->tasks_due_julian_day = 0; appGUI->tsk->tasks_due_time = -1; tasks_related_set_state (FALSE, FALSE, appGUI); close_calendar_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ gint sd_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { close_calendar_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void select_date_cb (GtkWidget *widget, gpointer data) { GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *today_button; GtkWidget *tomorrow_button; GtkWidget *nodate_button; GtkWidget *close_button; GtkWidget *ok_button; GtkWidget *grid; GtkWidget *label; GtkAdjustment *spinbutton_adjustment; GDate *dt; TIME *tm; GUI *appGUI = (GUI *)data; appGUI->tsk->td_calendar_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_position (GTK_WINDOW (appGUI->tsk->td_calendar_window), GTK_WIN_POS_MOUSE); gtk_window_set_modal (GTK_WINDOW (appGUI->tsk->td_calendar_window), TRUE); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->tsk->td_calendar_window), GTK_WINDOW (appGUI->tsk->tasks_add_window)); } gtk_window_set_decorated (GTK_WINDOW (appGUI->tsk->td_calendar_window), FALSE); g_signal_connect (G_OBJECT (appGUI->tsk->td_calendar_window), "key_press_event", G_CALLBACK (sd_key_press_cb), appGUI); gtk_window_set_resizable (GTK_WINDOW (appGUI->tsk->td_calendar_window), FALSE); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->tsk->td_calendar_window), vbox1); /* calendar */ appGUI->tsk->td_calendar = gui_calendar_new(); gui_calendar_set_cursor_type (GUI_CALENDAR (appGUI->tsk->td_calendar), CURSOR_BLOCK); gui_set_calendar_defaults(appGUI->tsk->td_calendar); gtk_widget_show (appGUI->tsk->td_calendar); g_signal_connect (G_OBJECT (appGUI->tsk->td_calendar), "day_selected_double_click", G_CALLBACK (day_selected_cb), appGUI); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->tsk->td_calendar), (config.display_options & !GUI_CALENDAR_NO_MONTH_CHANGE) | GUI_CALENDAR_SHOW_HEADING | GUI_CALENDAR_SHOW_DAY_NAMES | (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY)); gtk_widget_set_valign(appGUI->tsk->td_calendar, GTK_ALIGN_FILL); gtk_widget_set_halign(appGUI->tsk->td_calendar, GTK_ALIGN_FILL); gtk_widget_set_margin_left(appGUI->tsk->td_calendar, 4); gtk_widget_set_margin_right(appGUI->tsk->td_calendar, 4); gtk_widget_set_margin_top(appGUI->tsk->td_calendar, 4); gtk_widget_set_margin_bottom(appGUI->tsk->td_calendar, 4); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->tsk->td_calendar, TRUE, TRUE, 0); /* time selector */ appGUI->tsk->time_expander = gtk_expander_new (_("Set time")); gtk_widget_set_can_focus(appGUI->tsk->time_expander, FALSE); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->tsk->time_expander, FALSE, FALSE, 0); gtk_widget_show (appGUI->tsk->time_expander); grid = gtk_grid_new (); gtk_widget_show (grid); gtk_container_add (GTK_CONTAINER (appGUI->tsk->time_expander), grid); gtk_container_set_border_width (GTK_CONTAINER (grid), 4); gtk_grid_set_row_spacing (GTK_GRID (grid), 4); gtk_grid_set_column_spacing (GTK_GRID (grid), 4); label = gtk_label_new (_("Hour")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); label = gtk_label_new (_("Minute")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (grid), label, 1, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); spinbutton_adjustment = gtk_adjustment_new (get_current_hour(), 0, 23, 1, 10, 0); appGUI->cal->spinbutton_start_hour = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_hour); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_hour, TRUE); gtk_grid_attach (GTK_GRID (grid), appGUI->cal->spinbutton_start_hour, 0, 1, 1, 1); spinbutton_adjustment = gtk_adjustment_new (get_current_minute(), 0, 59, 1, 10, 0); appGUI->cal->spinbutton_start_minute = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adjustment), 1, 0); gtk_widget_show (appGUI->cal->spinbutton_start_minute); gtk_widget_set_hexpand(appGUI->cal->spinbutton_start_minute, TRUE); gtk_grid_attach (GTK_GRID (grid), appGUI->cal->spinbutton_start_minute, 1, 1, 1, 1); /* update status */ if (g_date_valid_julian (appGUI->tsk->tasks_due_julian_day)) { dt = g_date_new_julian (appGUI->tsk->tasks_due_julian_day); gui_calendar_select_month (GUI_CALENDAR (appGUI->tsk->td_calendar), g_date_get_month (dt) - 1, g_date_get_year (dt)); gui_calendar_select_day (GUI_CALENDAR (appGUI->tsk->td_calendar), g_date_get_day (dt)); g_date_free (dt); if (appGUI->tsk->tasks_due_time >= 0) { tm = utl_time_new_seconds (appGUI->tsk->tasks_due_time); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_hour), utl_time_get_hour (tm)); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->spinbutton_start_minute), utl_time_get_minute (tm)); gtk_expander_set_expanded (GTK_EXPANDER (appGUI->tsk->time_expander), TRUE); utl_time_free (tm); } } /* auxilary buttons */ hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_widget_show (hbox1); gtk_widget_set_valign(hbox1, GTK_ALIGN_FILL); gtk_widget_set_halign(hbox1, GTK_ALIGN_FILL); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 4); today_button = gtk_button_new_with_mnemonic (_("Today")); gtk_widget_show (today_button); gtk_box_pack_start (GTK_BOX (hbox1), today_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (today_button), "clicked", G_CALLBACK (set_today_calendar_cb), appGUI); tomorrow_button = gtk_button_new_with_mnemonic (_("Tomorrow")); gtk_widget_show (tomorrow_button); gtk_box_pack_start (GTK_BOX (hbox1), tomorrow_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (tomorrow_button), "clicked", G_CALLBACK (set_tomorrow_calendar_cb), appGUI); nodate_button = gtk_button_new_with_mnemonic (_("No date")); gtk_widget_show (nodate_button); gtk_box_pack_start (GTK_BOX (hbox1), nodate_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (nodate_button), "clicked", G_CALLBACK (nodate_calendar_cb), appGUI); ok_button = gtk_button_new_from_icon_name ("gtk-ok", GTK_ICON_SIZE_BUTTON); gtk_button_set_relief (GTK_BUTTON (ok_button), GTK_RELIEF_NONE); gtk_widget_show (ok_button); gtk_box_pack_end (GTK_BOX (hbox1), ok_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (ok_button), "clicked", G_CALLBACK (button_ok_calendar_cb), appGUI); close_button = gtk_button_new_from_icon_name ("gtk-cancel", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (close_button, FALSE); gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); gtk_widget_show (close_button); gtk_box_pack_end (GTK_BOX (hbox1), close_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (button_close_calendar_cb), appGUI); gtk_widget_show (appGUI->tsk->td_calendar_window); } /*------------------------------------------------------------------------------*/ void tasks_add_edit_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_window_get_size (GTK_WINDOW (appGUI->tsk->tasks_add_window), &config.tasks_addedit_win_w, &config.tasks_addedit_win_h); gdk_window_get_root_origin (gtk_widget_get_window(appGUI->tsk->tasks_add_window), &config.tasks_addedit_win_x, &config.tasks_addedit_win_y); gtk_widget_destroy (appGUI->tsk->tasks_add_window); } /*------------------------------------------------------------------------------*/ void button_tasks_add_edit_window_close_cb (GtkButton *button, gpointer user_data) { tasks_add_edit_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint tasks_add_edit_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: tasks_add_edit_window_close_cb (appGUI->tsk->tasks_add_window, NULL, appGUI); return TRUE; case GDK_KEY_Return: if (gtk_widget_is_focus(appGUI->tsk->desc_textview) == FALSE) { if (appGUI->tsk->tasks_accept_state == TRUE ) { g_signal_emit_by_name(G_OBJECT(appGUI->tsk->tasks_ok_button), "clicked"); return TRUE; } } else if (event->state & GDK_CONTROL_MASK) { /* CTRL + Return */ g_signal_emit_by_name(G_OBJECT(appGUI->tsk->tasks_ok_button), "clicked"); return TRUE; } return FALSE; } return FALSE; } /*------------------------------------------------------------------------------*/ void tasks_add_edit_summary_changed_cb (GtkEditable *editable, gpointer data) { GUI *appGUI = (GUI *)data; if (strlen (gtk_entry_get_text (GTK_ENTRY (editable)))) { appGUI->tsk->tasks_accept_state = TRUE; } else { appGUI->tsk->tasks_accept_state = FALSE; } gtk_widget_set_sensitive (appGUI->tsk->tasks_ok_button, appGUI->tsk->tasks_accept_state); } /*------------------------------------------------------------------------------*/ void tasks_remove(GtkTreeRowReference *ref, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter, filter_iter, sort_iter; guint id; GtkTreeModel *model; model = gtk_tree_row_reference_get_model(ref); path = gtk_tree_row_reference_get_path(ref); if (path != NULL) { if (gtk_tree_model_get_iter(model, &sort_iter, path)) { gtk_tree_model_get(model, &sort_iter, TA_COLUMN_ID, &id, -1); #ifdef HAVE_LIBNOTIFY delete_task_notification(id, appGUI); #endif /* HAVE_LIBNOTIFY */ gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(model), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(model))), &iter, &filter_iter); gtk_list_store_remove(appGUI->tsk->tasks_list_store, &iter); } gtk_tree_path_free(path); } } /*------------------------------------------------------------------------------*/ void tasks_remove_dialog_show (GUI *appGUI) { gint response; gchar tmpbuf[BUFFER_SIZE]; g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("Selected task will be removed."), _("Are you sure?")); response = utl_gui_create_dialog(GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->main_window)); if (response == GTK_RESPONSE_YES) { tasks_selection_activate (FALSE, appGUI); utl_gui_foreach_selected(appGUI->tsk->tasks_list_selection, GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), (GFunc)tasks_remove, appGUI); tasks_selection_activate (TRUE, appGUI); tasks_select_first_position_in_list(appGUI); g_signal_emit_by_name(G_OBJECT(appGUI->cal->calendar), "day-selected"); gui_systray_tooltip_update(appGUI); if (config.save_data_after_modification) { write_tasks_entries(appGUI); } } } /*------------------------------------------------------------------------------*/ void recurrent_task_enable_cb (GtkToggleButton *togglebutton, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_widget_set_sensitive (appGUI->tsk->recurrent_task_vbox, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(togglebutton))); } /*------------------------------------------------------------------------------*/ gint alarm_cmd_entry_changed_cb (GtkEditable *editable, gpointer user_data) { GUI *appGUI = (GUI *) user_data; utl_gui_update_command_status (GTK_EDITABLE(appGUI->tsk->alarm_cmd_entry), appGUI->tsk->alarm_cmd_valid_image, appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ static GtkWidget * create_styled_label(const gchar *format, const gchar *text) { gchar *text_with_style = g_strdup_printf(format, text); GtkWidget *label = gtk_label_new(text_with_style); gtk_label_set_use_markup(GTK_LABEL(label), TRUE); g_free(text_with_style); return label; } static GtkWidget * create_basic_tab(GUI *appGUI) { GtkWidget *grid; GtkWidget *label; GtkWidget *select_date_button; GtkWidget *scrolledwindow; grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); label = create_styled_label("%s:", _("Summary")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); appGUI->tsk->summary_entry = gtk_entry_new(); g_signal_connect(G_OBJECT(appGUI->tsk->summary_entry), "changed", G_CALLBACK(tasks_add_edit_summary_changed_cb), appGUI); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->summary_entry, 1, 0, 4, 1); label = create_styled_label("%s:", _("Due date")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1); appGUI->tsk->due_date_entry = gtk_entry_new(); gtk_widget_set_can_focus(appGUI->tsk->due_date_entry, FALSE); gtk_editable_set_editable(GTK_EDITABLE(appGUI->tsk->due_date_entry), FALSE); gtk_widget_set_hexpand(appGUI->tsk->due_date_entry, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->due_date_entry, 1, 1, 2, 1); select_date_button = gtk_button_new_with_mnemonic(_("Select date and time")); gtk_widget_set_can_focus(select_date_button, FALSE); g_signal_connect(select_date_button, "clicked", G_CALLBACK(select_date_cb), appGUI); gtk_grid_attach(GTK_GRID(grid), select_date_button, 3, 1, 2, 1); label = create_styled_label("%s:", _("Category")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 2, 1, 1); appGUI->tsk->category_combobox = gtk_combo_box_text_new(); gtk_combo_box_set_focus_on_click(GTK_COMBO_BOX(appGUI->tsk->category_combobox), FALSE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->category_combobox, 1, 2, 2, 1); utl_gui_create_category_combobox(GTK_COMBO_BOX(appGUI->tsk->category_combobox), appGUI->opt->tasks_category_store, TRUE); gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->tsk->category_combobox), utl_gui_list_store_get_text_index(appGUI->opt->tasks_category_store, gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(appGUI->tsk->cf_combobox)))); label = create_styled_label("%s:", _("Priority")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 3, 2, 1, 1); appGUI->tsk->priority_combobox = gtk_combo_box_text_new(); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(appGUI->tsk->priority_combobox), NULL, _("Low")); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(appGUI->tsk->priority_combobox), NULL, _("Medium")); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(appGUI->tsk->priority_combobox), NULL, _("High")); gtk_combo_box_set_focus_on_click(GTK_COMBO_BOX(appGUI->tsk->priority_combobox), FALSE); gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->tsk->priority_combobox), MEDIUM_PRIORITY); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->priority_combobox, 4, 2, 1, 1); label = create_styled_label("%s:", _("Description")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 3, 5, 1); scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_SHADOW_IN); gtk_widget_set_vexpand(scrolledwindow, TRUE); gtk_grid_attach(GTK_GRID(grid), scrolledwindow, 0, 4, 5, 1); appGUI->tsk->desc_textview = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(appGUI->tsk->desc_textview), GTK_WRAP_WORD); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(appGUI->tsk->desc_textview), 4); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(appGUI->tsk->desc_textview), 4); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(appGUI->tsk->desc_textview), 4); gtk_container_add(GTK_CONTAINER(scrolledwindow), appGUI->tsk->desc_textview); label = create_styled_label("%s:", _("Options")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 5, 5, 1); appGUI->tsk->checkb_sound_enable = gtk_check_button_new_with_mnemonic(_("Enable sound notification")); gtk_widget_set_sensitive(appGUI->tsk->checkb_sound_enable, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->checkb_sound_enable), TRUE); gtk_widget_set_halign(appGUI->tsk->checkb_sound_enable, GTK_ALIGN_START); gtk_widget_set_margin_left(appGUI->tsk->checkb_sound_enable, 6); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->checkb_sound_enable, 0, 6, 2, 1); appGUI->tsk->checkb_ndialog_enable = gtk_check_button_new_with_mnemonic(_("Enable notification dialog")); gtk_widget_set_sensitive(appGUI->tsk->checkb_ndialog_enable, FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->checkb_ndialog_enable), TRUE); gtk_widget_set_halign(appGUI->tsk->checkb_ndialog_enable, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->checkb_ndialog_enable, 2, 6, 3, 1); gtk_widget_show_all (grid); return grid; } /*------------------------------------------------------------------------------*/ static GtkWidget * create_spinner(gdouble value, gdouble lower, gdouble upper) { GtkAdjustment *adjustment = gtk_adjustment_new(value, lower, upper, 1, 10, 0); return gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1, 0); } static GtkWidget * create_alarm_section(GUI *appGUI) { GtkWidget *frame; GtkWidget *grid; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s:", _("Alarm warning")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_container_add(GTK_CONTAINER(frame), grid); label = create_styled_label("%s:", _("Days")); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); appGUI->tsk->aw_days_spinbutton = create_spinner(0, 0, 10000); gtk_widget_set_hexpand(appGUI->tsk->aw_days_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->aw_days_spinbutton, 1, 0, 1, 1); label = create_styled_label("%s:", _("Hours")); gtk_grid_attach(GTK_GRID(grid), label, 2, 0, 1, 1); appGUI->tsk->aw_hours_spinbutton = create_spinner(0, 0, 23); gtk_widget_set_hexpand(appGUI->tsk->aw_hours_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->aw_hours_spinbutton, 3, 0, 1, 1); label = create_styled_label("%s:", _("Minutes")); gtk_grid_attach(GTK_GRID(grid), label, 4, 0, 1, 1); appGUI->tsk->aw_minutes_spinbutton = create_spinner(0, 0, 59); gtk_widget_set_hexpand(appGUI->tsk->aw_minutes_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->aw_minutes_spinbutton, 5, 0, 1, 1); return frame; } static GtkWidget * create_postpone_section(GUI *appGUI) { GtkWidget *frame; GtkWidget *grid; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s:", _("Postpone time")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_container_add(GTK_CONTAINER(frame), grid); label = create_styled_label("%s:", _("Minutes")); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); appGUI->tsk->postpone_spinbutton = create_spinner(config.postpone_time, 0, 1440); gtk_widget_set_hexpand(appGUI->tsk->postpone_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->postpone_spinbutton, 1, 0, 1, 1); return frame; } static GtkWidget * create_alarm_command_section(GUI *appGUI) { GtkWidget *frame; GtkWidget *box; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s:", _("Alarm command")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add(GTK_CONTAINER(frame), box); appGUI->tsk->alarm_cmd_entry = gtk_entry_new(); g_signal_connect(G_OBJECT(appGUI->tsk->alarm_cmd_entry), "changed", G_CALLBACK(alarm_cmd_entry_changed_cb), appGUI); gtk_widget_set_hexpand(appGUI->tsk->alarm_cmd_entry, TRUE); gtk_box_pack_start(GTK_BOX(box), appGUI->tsk->alarm_cmd_entry, TRUE, TRUE, 0); appGUI->tsk->alarm_cmd_valid_image = gtk_image_new(); gtk_box_pack_start(GTK_BOX(box), appGUI->tsk->alarm_cmd_valid_image, FALSE, FALSE, 0); return frame; } static GtkWidget * create_date_subsection(GUI *appGUI) { GtkWidget *frame; GtkWidget *grid; GtkWidget *days_grid; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s", _("Date period")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_container_add(GTK_CONTAINER(frame), grid); label = create_styled_label("%s:", _("Days")); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); appGUI->tsk->rt_dp_day_spinbutton = create_spinner(0, 0, 100000); gtk_widget_set_hexpand(appGUI->tsk->rt_dp_day_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_dp_day_spinbutton, 1, 0, 1, 1); label = create_styled_label("%s:", _("Months")); gtk_grid_attach(GTK_GRID(grid), label, 2, 0, 1, 1); appGUI->tsk->rt_dp_month_spinbutton = create_spinner(0, 0, 100000); gtk_widget_set_hexpand(appGUI->tsk->rt_dp_month_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_dp_month_spinbutton, 3, 0, 1, 1); label = create_styled_label("%s:", _("Repeat")); gtk_grid_attach(GTK_GRID(grid), label, 4, 0, 1, 1); appGUI->tsk->repeat_counter_spinbutton = create_spinner(0, 0, 100000); gtk_widget_set_hexpand(appGUI->tsk->repeat_counter_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->repeat_counter_spinbutton, 5, 0, 1, 1); label = create_styled_label("%s:", _("Repeat in the following days")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(grid), label, 0, 3, 6, 1); days_grid = gtk_grid_new(); gtk_grid_set_column_spacing(GTK_GRID(days_grid), 8); gtk_grid_attach(GTK_GRID(grid), days_grid, 0, 4, 6, 1); appGUI->tsk->dp_1_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(1, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_1_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_1_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_1_checkbutton, 0, 0, 1, 1); appGUI->tsk->dp_2_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(2, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_2_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_2_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_2_checkbutton, 1, 0, 1, 1); appGUI->tsk->dp_3_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(3, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_3_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_3_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_3_checkbutton, 2, 0, 1, 1); appGUI->tsk->dp_4_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(4, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_4_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_4_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_4_checkbutton, 3, 0, 1, 1); appGUI->tsk->dp_5_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(5, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_5_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_5_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_5_checkbutton, 0, 1, 1, 1); appGUI->tsk->dp_6_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(6, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_6_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_6_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_6_checkbutton, 1, 1, 1, 1); appGUI->tsk->dp_7_checkbutton = gtk_check_button_new_with_mnemonic(utl_get_day_name(7, FALSE)); gtk_widget_set_hexpand(appGUI->tsk->dp_7_checkbutton, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(appGUI->tsk->dp_7_checkbutton), TRUE); gtk_grid_attach(GTK_GRID(days_grid), appGUI->tsk->dp_7_checkbutton, 2, 1, 1, 1); return frame; } static GtkWidget * create_time_subsection(GUI *appGUI) { GtkWidget *frame; GtkWidget *grid; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s", _("Time period")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_container_add(GTK_CONTAINER(frame), grid); label = gtk_label_new(_("Start")); gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 2, 1); label = gtk_label_new(_("End")); gtk_grid_attach(GTK_GRID(grid), label, 2, 0, 2, 1); label = gtk_label_new(_("Interval")); gtk_grid_attach(GTK_GRID(grid), label, 4, 0, 2, 1); label = create_styled_label("%s", _("Hour")); gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1); label = create_styled_label("%s", _("Minute")); gtk_grid_attach(GTK_GRID(grid), label, 1, 1, 1, 1); label = create_styled_label("%s", _("Hour")); gtk_grid_attach(GTK_GRID(grid), label, 2, 1, 1, 1); label = create_styled_label("%s", _("Minute")); gtk_grid_attach(GTK_GRID(grid), label, 3, 1, 1, 1); label = create_styled_label("%s", _("Hour")); gtk_grid_attach(GTK_GRID(grid), label, 4, 1, 1, 1); label = create_styled_label("%s", _("Minute")); gtk_grid_attach(GTK_GRID(grid), label, 5, 1, 1, 1); appGUI->tsk->rt_start_hour_spinbutton = create_spinner(0, 0, 23); gtk_widget_set_hexpand(appGUI->tsk->rt_start_hour_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_start_hour_spinbutton, 0, 2, 1, 1); appGUI->tsk->rt_start_minute_spinbutton = create_spinner(0, 0, 59); gtk_widget_set_hexpand(appGUI->tsk->rt_start_minute_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_start_minute_spinbutton, 1, 2, 1, 1); appGUI->tsk->rt_end_hour_spinbutton = create_spinner(23, 0, 23); gtk_widget_set_hexpand(appGUI->tsk->rt_end_hour_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_end_hour_spinbutton, 2, 2, 1, 1); appGUI->tsk->rt_end_minute_spinbutton = create_spinner(59, 0, 59); gtk_widget_set_hexpand(appGUI->tsk->rt_end_minute_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_end_minute_spinbutton, 3, 2, 1, 1); appGUI->tsk->rt_interval_hour_spinbutton = create_spinner(0, 0, 23); gtk_widget_set_hexpand(appGUI->tsk->rt_interval_hour_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_interval_hour_spinbutton, 4, 2, 1, 1); appGUI->tsk->rt_interval_minute_spinbutton = create_spinner(0, 0, 59); gtk_widget_set_hexpand(appGUI->tsk->rt_interval_minute_spinbutton, TRUE); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_interval_minute_spinbutton, 5, 2, 1, 1); return frame; } static GtkWidget * create_options_subsection(GUI *appGUI) { GtkWidget *frame; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s", _("Options")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); appGUI->tsk->ignore_alarm_checkbutton = gtk_check_button_new_with_mnemonic(_("Ignore alarm when task expired offline")); gtk_widget_set_margin_left(appGUI->tsk->ignore_alarm_checkbutton, 6); gtk_container_add(GTK_CONTAINER(frame), appGUI->tsk->ignore_alarm_checkbutton); return frame; } static GtkWidget * create_recurrent_section(GUI *appGUI) { GtkWidget *frame; GtkWidget *grid; GtkWidget *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = create_styled_label("%s:", _("Recurrent task")); gtk_frame_set_label_widget(GTK_FRAME(frame), label); grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_container_add(GTK_CONTAINER(frame), grid); appGUI->tsk->rt_enable_checkbutton = gtk_check_button_new_with_mnemonic(_("Enable")); g_signal_connect(G_OBJECT(appGUI->tsk->rt_enable_checkbutton), "toggled", G_CALLBACK(recurrent_task_enable_cb), appGUI); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->rt_enable_checkbutton, 0, 0, 1, 1); appGUI->tsk->recurrent_task_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_grid_attach(GTK_GRID(grid), appGUI->tsk->recurrent_task_vbox, 0, 1, 1, 1); gtk_box_pack_start(GTK_BOX(appGUI->tsk->recurrent_task_vbox), create_time_subsection(appGUI), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(appGUI->tsk->recurrent_task_vbox), create_date_subsection(appGUI), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(appGUI->tsk->recurrent_task_vbox), create_options_subsection(appGUI), TRUE, TRUE, 0); return frame; } static GtkWidget * create_advanced_tab(GUI *appGUI) { GtkWidget *grid; grid = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(grid), 6); gtk_grid_set_column_spacing(GTK_GRID(grid), 6); gtk_grid_attach(GTK_GRID(grid), create_alarm_section(appGUI), 0, 0, 1, 1); gtk_grid_attach(GTK_GRID(grid), gtk_separator_new(GTK_ORIENTATION_VERTICAL), 1, 0, 1, 1); gtk_grid_attach(GTK_GRID(grid), create_postpone_section(appGUI), 2, 0, 1, 1); gtk_grid_attach(GTK_GRID(grid), create_alarm_command_section(appGUI), 0, 1, 3, 1); gtk_grid_attach(GTK_GRID(grid), create_recurrent_section(appGUI), 0, 2, 3, 1); gtk_widget_show_all(grid); return grid; } /*------------------------------------------------------------------------------*/ void tasks_add_edit_dialog_show (gboolean tasks_edit_mode, guint32 julian_date, gint time, GUI *appGUI) { GtkWidget *vbox0, *basic_tab, *advanced_tab; GtkWidget *label; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *notebook; GtkTreeIter iter, filter_iter, sort_iter; GtkTreeModel *model; GtkTextIter titer; GtkTextBuffer *text_buffer; TASK_ITEM *item; appGUI->tsk->tasks_add_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); if(tasks_edit_mode == TRUE) { gtk_window_set_title (GTK_WINDOW (appGUI->tsk->tasks_add_window), _("Edit task")); } else { gtk_window_set_title (GTK_WINDOW (appGUI->tsk->tasks_add_window), _("Add task")); appGUI->tsk->tasks_due_julian_day = 0; appGUI->tsk->tasks_due_time = -1; } gtk_window_move (GTK_WINDOW (appGUI->tsk->tasks_add_window), config.tasks_addedit_win_x, config.tasks_addedit_win_y); gtk_window_set_default_size (GTK_WINDOW(appGUI->tsk->tasks_add_window), config.tasks_addedit_win_w, config.tasks_addedit_win_h); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->tsk->tasks_add_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_modal(GTK_WINDOW(appGUI->tsk->tasks_add_window), TRUE); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_add_window), "key_press_event", G_CALLBACK (tasks_add_edit_key_press_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_add_window), "delete_event", G_CALLBACK(tasks_add_edit_window_close_cb), appGUI); vbox0 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox0); gtk_container_add (GTK_CONTAINER (appGUI->tsk->tasks_add_window), vbox0); notebook = gtk_notebook_new (); gtk_widget_set_can_focus (notebook, FALSE); gtk_widget_show (notebook); gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP); gtk_container_set_border_width (GTK_CONTAINER(notebook), 6); gtk_box_pack_start (GTK_BOX (vbox0), notebook, TRUE, TRUE, 0); /* First Tab */ basic_tab = create_basic_tab(appGUI); gtk_widget_set_margin_left(basic_tab, 6); gtk_widget_set_margin_right(basic_tab, 6); gtk_widget_set_margin_top(basic_tab, 6); gtk_widget_set_margin_bottom(basic_tab, 6); label = gtk_label_new (_("Basic")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), basic_tab, label); /* Second Tab */ advanced_tab = create_advanced_tab(appGUI); gtk_widget_set_margin_left(advanced_tab, 6); gtk_widget_set_margin_right(advanced_tab, 6); gtk_widget_set_margin_top(advanced_tab, 6); gtk_widget_set_margin_bottom(advanced_tab, 6); label = gtk_label_new (_("Advanced")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), advanced_tab, label); /* Common */ tasks_related_set_state (FALSE, FALSE, appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_margin_left(hseparator, 6); gtk_widget_set_margin_right(hseparator, 6); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox0), hseparator, FALSE, FALSE, 0); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox0), hbuttonbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox), 6); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 16); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (cancel_button, "clicked", G_CALLBACK (button_tasks_add_edit_window_close_cb), appGUI); appGUI->tsk->tasks_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_show (appGUI->tsk->tasks_ok_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->tsk->tasks_ok_button); g_signal_connect (appGUI->tsk->tasks_ok_button, "clicked", G_CALLBACK (tasks_item_entered_cb), appGUI); appGUI->tsk->tasks_edit_state = tasks_edit_mode; appGUI->tsk->tasks_accept_state = FALSE; gtk_entry_set_text (GTK_ENTRY(appGUI->tsk->due_date_entry), _("No date")); if (julian_date != 0 ) { appGUI->tsk->tasks_due_julian_day = julian_date; appGUI->tsk->tasks_due_time = -1; gtk_entry_set_text (GTK_ENTRY (appGUI->tsk->due_date_entry), get_date_time_full_str (appGUI->tsk->tasks_due_julian_day, appGUI->tsk->tasks_due_time)); } if (tasks_edit_mode == TRUE) { appGUI->tsk->tasks_accept_state = TRUE; /* fill gui fields */ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(appGUI->tsk->desc_textview)); utl_gui_clear_text_buffer (GTK_TEXT_BUFFER(text_buffer), &titer); sort_iter = utl_gui_get_first_selection_iter(appGUI->tsk->tasks_list_selection, &model); gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->tsk->tasks_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter), &iter, &filter_iter); item = tsk_get_item (&iter, appGUI); if (item != NULL) { appGUI->tsk->tasks_due_julian_day = item->due_date_julian; appGUI->tsk->tasks_due_time = item->due_time; gtk_entry_set_text (GTK_ENTRY (appGUI->tsk->due_date_entry), get_date_time_full_str (item->due_date_julian, item->due_time)); gtk_entry_set_text(GTK_ENTRY(appGUI->tsk->summary_entry), item->summary); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->category_combobox), utl_gui_list_store_get_text_index (appGUI->opt->tasks_category_store, item->category)); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->priority_combobox), tsk_get_priority_index (item->priority)); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &titer, 0); if (item->desc != NULL) { gtk_text_buffer_insert(text_buffer, &titer, item->desc, -1); gtk_text_view_set_buffer(GTK_TEXT_VIEW(appGUI->tsk->desc_textview), text_buffer); } if (item->due_date_julian != 0) { if (item->due_time != -1) { tasks_related_set_state (TRUE, TRUE, appGUI); } else { tasks_related_set_state (TRUE, FALSE, appGUI); } gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->aw_days_spinbutton), item->warning_days); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->aw_hours_spinbutton), item->warning_time / 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->aw_minutes_spinbutton), item->warning_time % 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->postpone_spinbutton), item->postpone_time); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_start_hour_spinbutton), item->repeat_time_start / 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_start_minute_spinbutton), item->repeat_time_start % 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_end_hour_spinbutton), item->repeat_time_end / 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_end_minute_spinbutton), item->repeat_time_end % 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_interval_hour_spinbutton), item->repeat_time_interval / 60); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_interval_minute_spinbutton), item->repeat_time_interval % 60); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->rt_enable_checkbutton), item->repeat); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->recurrent_task_vbox), item->repeat); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->ignore_alarm_checkbutton), item->offline_ignore); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->checkb_sound_enable), item->sound_enable); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->checkb_ndialog_enable), item->ndialog_enable); if (item->alarm_command) { gtk_entry_set_text(GTK_ENTRY(appGUI->tsk->alarm_cmd_entry), item->alarm_command); } utl_gui_update_command_status (GTK_EDITABLE(appGUI->tsk->alarm_cmd_entry), appGUI->tsk->alarm_cmd_valid_image, appGUI); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_dp_day_spinbutton), item->repeat_day_interval); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->rt_dp_month_spinbutton), item->repeat_month_interval); gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->tsk->repeat_counter_spinbutton), item->repeat_counter); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_1_checkbutton), item->repeat_day & 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_2_checkbutton), item->repeat_day & 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_3_checkbutton), item->repeat_day & 4); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_4_checkbutton), item->repeat_day & 8); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_5_checkbutton), item->repeat_day & 16); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_6_checkbutton), item->repeat_day & 32); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->tsk->dp_7_checkbutton), item->repeat_day & 64); } tsk_item_free (item); } } gtk_widget_set_sensitive(appGUI->tsk->tasks_ok_button, appGUI->tsk->tasks_accept_state); gtk_widget_show(appGUI->tsk->tasks_add_window); gtk_widget_grab_focus(appGUI->tsk->summary_entry); } /*------------------------------------------------------------------------------*/ void read_tasks_entries (GUI *appGUI) { xmlDocPtr doc; xmlChar *key; xmlNodePtr node, cnode, category_node, main_node; GtkTreeIter iter; gchar *calendar_prop, *tasks_prop; gboolean calendar_state, tasks_state; TASK_ITEM *item; gint priority_n; gchar *prop; gint tasks_version; if (g_file_test (prefs_get_data_filename (TASKS_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) return; if ((doc = xmlParseFile (prefs_get_data_filename (TASKS_ENTRIES_FILENAME, appGUI)))) { if (!(node = xmlDocGetRootElement (doc))) { xmlFreeDoc (doc); return; } if (xmlStrcmp (node->name, (const xmlChar *) TASKS_NAME)) { xmlFreeDoc (doc); return; } else { prop = (gchar *) xmlGetProp (node, (const xmlChar *) "version"); if (prop != NULL) { tasks_version = atoi (prop); xmlFree (prop); } else tasks_version = 0; } main_node = node->xmlChildrenNode; while (main_node != NULL) { if (!xmlStrcmp (main_node->name, (xmlChar *) TASKS_CATEGORY_ENTRIES_NAME)) { /* read note */ category_node = main_node->xmlChildrenNode; while (category_node != NULL) { calendar_state = tasks_state = TRUE; if ((!xmlStrcmp (category_node->name, (const xmlChar *) "name"))) { key = xmlNodeListGetString (doc, category_node->xmlChildrenNode, 1); calendar_prop = (gchar *) xmlGetProp (category_node, (const xmlChar *) "calendar"); if (calendar_prop != NULL) { calendar_state = atoi (calendar_prop); xmlFree (calendar_prop); } tasks_prop = (gchar *) xmlGetProp (category_node, (const xmlChar *) "tasks"); if (tasks_prop != NULL) { tasks_state = atoi (tasks_prop); xmlFree (tasks_prop); } if (key != NULL) { gtk_list_store_append (appGUI->opt->tasks_category_store, &iter); gtk_list_store_set (appGUI->opt->tasks_category_store, &iter, TC_COLUMN_NAME, (gchar *) key, TC_COLUMN_CALENDAR, calendar_state, TC_COLUMN_TASKS, tasks_state, -1); xmlFree (key); } } category_node = category_node->next; } } /*---------------------------------------------------------------------------------------*/ if (!xmlStrcmp (main_node->name, (xmlChar *) TASKS_ENTRIES_NAME)) { node = main_node->xmlChildrenNode; while (node != NULL) { if (!xmlStrcmp (node->name, (xmlChar *) "entry")) { cnode = node->xmlChildrenNode; item = g_new0 (TASK_ITEM, 1); if (item == NULL) continue; item->id = 0; item->done = FALSE; item->active = TRUE; item->offline_ignore = FALSE; item->repeat = FALSE; item->repeat_day = 127; item->repeat_day_interval = 0; item->repeat_start_day = 0; item->repeat_month_interval = 0; item->repeat_time_start = 0; item->repeat_time_end = 0; item->repeat_time_interval = 0; item->repeat_counter = 0; item->alarm_command = NULL; item->warning_days = 0; item->warning_time = 0; item->postpone_time = 0; item->due_date_julian = 0; item->due_time = -1; item->start_date_julian = 0; item->done_date_julian = 0; item->priority = NULL; item->category = NULL; item->summary = NULL; item->desc = NULL; item->sound_enable = TRUE; item->ndialog_enable = TRUE; priority_n = MEDIUM_PRIORITY; while (cnode != NULL) { utl_xml_get_uint ("id", &(item->id), cnode); utl_xml_get_int ("status", &(item->done), cnode); utl_xml_get_uint ("due_date", &(item->due_date_julian), cnode); utl_xml_get_int ("due_time", &(item->due_time), cnode); utl_xml_get_uint ("start_date", &(item->start_date_julian), cnode); utl_xml_get_uint ("done_date", &(item->done_date_julian), cnode); utl_xml_get_int ("active", &(item->active), cnode); utl_xml_get_int ("offline_ignore", &(item->offline_ignore), cnode); utl_xml_get_int ("repeat", &(item->repeat), cnode); utl_xml_get_int ("repeat_day", &(item->repeat_day), cnode); utl_xml_get_int ("repeat_month_interval", &(item->repeat_month_interval), cnode); utl_xml_get_int ("repeat_day_interval", &(item->repeat_day_interval), cnode); utl_xml_get_int ("repeat_start_day", &(item->repeat_start_day), cnode); utl_xml_get_int ("repeat_time_start", &(item->repeat_time_start), cnode); utl_xml_get_int ("repeat_time_end", &(item->repeat_time_end), cnode); utl_xml_get_int ("repeat_time_interval", &(item->repeat_time_interval), cnode); utl_xml_get_int ("repeat_counter", &(item->repeat_counter), cnode); utl_xml_get_int ("warning_days", &(item->warning_days), cnode); utl_xml_get_int ("warning_time", &(item->warning_time), cnode); utl_xml_get_int ("postpone_time", &(item->postpone_time), cnode); utl_xml_get_int ("sound_enable", &(item->sound_enable), cnode); utl_xml_get_int ("notification_dialog_enable", &(item->ndialog_enable), cnode); utl_xml_get_int ("priority", &priority_n, cnode); utl_xml_get_str ("alarm_command", &(item->alarm_command), cnode); utl_xml_get_str ("category", &(item->category), cnode); utl_xml_get_str ("summary", &(item->summary), cnode); utl_xml_get_str ("description", &(item->desc), cnode); cnode = cnode->next; } if (item->summary != NULL) { item->priority = g_strdup (tsk_get_priority_text (priority_n)); if (item->due_date_julian == 0) { item->due_time = -1; item->warning_days = 0; item->warning_time = 0; item->repeat = FALSE; item->active = TRUE; item->postpone_time = 0; } else if (item->due_time == -1){ item->warning_time = 0; } if (tasks_version < 208) item->active = TRUE; if (item->id == 0) { g_return_if_fail (tasks_version < 208); item->id = appGUI->tsk->next_id++; } else if (item->id >= appGUI->tsk->next_id) appGUI->tsk->next_id = item->id + 1; add_item_to_list (item, appGUI); } tsk_item_free (item); } node = node->next; } } /*---------------------------------------------------------------------------------------*/ main_node = main_node->next; } xmlFree (node); xmlFreeDoc (doc); } } /*------------------------------------------------------------------------------*/ void write_tasks_entries (GUI *appGUI) { xmlDocPtr doc; xmlNodePtr main_node, node, note_node, dc_node; xmlAttrPtr attr; GtkTreeIter iter; gchar *name; gint tc_calendar, tc_tasks; TASK_ITEM *item; gchar temp[BUFFER_SIZE]; gint i; xmlChar *escaped; if ((appGUI->save_status & WRT_TASKS) != 0) return; appGUI->save_status |= WRT_TASKS; doc = xmlNewDoc ((const xmlChar *) "1.0"); attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); xmlFreeProp (attr); main_node = xmlNewNode (NULL, (const xmlChar *) TASKS_NAME); attr = xmlNewProp (main_node, (const xmlChar *) "version", (const xmlChar *) appGUI->version); xmlDocSetRootElement (doc, main_node); node = xmlNewChild (main_node, NULL, (const xmlChar *) TASKS_CATEGORY_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, TC_COLUMN_NAME, &name, TC_COLUMN_CALENDAR, &tc_calendar, TC_COLUMN_TASKS, &tc_tasks, -1); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) name); dc_node = xmlNewChild (node, NULL, (const xmlChar *) "name", (xmlChar *) escaped); xmlFree (escaped); g_snprintf (temp, BUFFER_SIZE, "%d", tc_calendar); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) temp); xmlNewProp (dc_node, (const xmlChar *) "calendar", (xmlChar *) escaped); xmlFree (escaped); g_snprintf (temp, BUFFER_SIZE, "%d", tc_tasks); escaped = xmlEncodeEntitiesReentrant(doc, (const xmlChar *) temp); xmlNewProp (dc_node, (const xmlChar *) "tasks", (xmlChar *) escaped); xmlFree (escaped); g_free (name); } node = xmlNewChild (main_node, NULL, (const xmlChar *) TASKS_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { item = tsk_get_item (&iter, appGUI); if (item != NULL) { note_node = xmlNewChild (node, NULL, (const xmlChar *) "entry", (xmlChar *) NULL); utl_xml_put_int ("id", item->id, note_node); utl_xml_put_int ("status", item->done, note_node); utl_xml_put_uint ("due_date", item->due_date_julian, note_node); utl_xml_put_int ("due_time", item->due_time, note_node); utl_xml_put_uint ("start_date", item->start_date_julian, note_node); utl_xml_put_uint ("done_date", item->done_date_julian, note_node); utl_xml_put_int ("active", item->active, note_node); utl_xml_put_int ("offline_ignore", item->offline_ignore, note_node); utl_xml_put_int ("repeat", item->repeat, note_node); utl_xml_put_int ("repeat_day", item->repeat_day, note_node); utl_xml_put_int ("repeat_month_interval", item->repeat_month_interval, note_node); utl_xml_put_int ("repeat_day_interval", item->repeat_day_interval, note_node); utl_xml_put_int ("repeat_start_day", item->repeat_start_day, note_node); utl_xml_put_int ("repeat_time_start", item->repeat_time_start, note_node); utl_xml_put_int ("repeat_time_end", item->repeat_time_end, note_node); utl_xml_put_int ("repeat_time_interval", item->repeat_time_interval, note_node); utl_xml_put_int ("repeat_counter", item->repeat_counter, note_node); utl_xml_put_int ("warning_days", item->warning_days, note_node); utl_xml_put_int ("warning_time", item->warning_time, note_node); utl_xml_put_int ("postpone_time", item->postpone_time, note_node); utl_xml_put_int ("sound_enable", item->sound_enable, note_node); utl_xml_put_int ("notification_dialog_enable", item->ndialog_enable, note_node); utl_xml_put_int ("priority", tsk_get_priority_index (gettext (item->priority)), note_node); utl_xml_put_str ("alarm_command", item->alarm_command, note_node); utl_xml_put_str ("category", item->category, note_node); utl_xml_put_str ("summary", item->summary, note_node); utl_xml_put_str ("description", item->desc, note_node); tsk_item_free (item); } } utl_xml_write_doc (prefs_get_data_filename (TASKS_ENTRIES_FILENAME, appGUI), doc); xmlFreeDoc (doc); appGUI->save_status &= ~WRT_TASKS; } /*------------------------------------------------------------------------------*/ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/about.h0000664000175000017500000000257013066543472011505 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _ABOUT_H #define _ABOUT_H #include "gui.h" #define OSMO_WEBSITE "http://clayo.org/osmo" #define MAILING_LIST "http://sourceforge.net/p/osmo-pim/mailman" #define BUG_TRACKER "http://sourceforge.net/p/osmo-pim/bugs" #define FEATURE_REQUESTS "http://sourceforge.net/p/osmo-pim/feature-requests" typedef struct { gchar *tag; gchar *name; gchar *email; } OsmoCreditEntry; GtkWidget * opt_create_about_window (GUI *appGUI); #endif /* _ABOUT_H */ osmo-0.4.2/src/utils_date.h0000664000175000017500000000704513066543472012532 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _UTILS_DATE_H #define _UTILS_DATE_H #include "gui.h" #define LEAP_YEAR 2008 enum { DATE_DD_MM_YYYY = 0, /* do not change order */ DATE_MM_DD_YYYY, DATE_YYYY_MM_DD, DATE_YYYY_DD_MM, DATE_NAME_DAY, DATE_DAY_OF_WEEK_NAME, DATE_FULL, /* last entry */ DATE_LOCALE }; enum { D_BAD_DAY = 0, D_MONDAY = 1, D_TUESDAY = 2, D_WEDNESDAY = 4, D_THURSDAY = 8, D_FRIDAY = 16, D_SATURDAY = 32, D_SUNDAY = 64, D_WEEK = 127 }; GDate * utl_date_new_current (void); guint utl_date_get_current_day (void); guint utl_date_get_current_month (void); guint utl_date_get_current_year (void); guint32 utl_date_get_current_julian (void); void utl_date_get_current_dmy (gint *day, gint *month, gint *year); guint utl_date_get_days_in_month (const GDate *date); gboolean utl_date_set_valid_day (GDate *date, gint day); gboolean utl_date_set_valid_dmy (gint *day, gint month, gint year); void utl_date_diff (const GDate *date1, const GDate *date2, gint *day, gint *month, gint *year); gboolean utl_date_order (GDate *date1, GDate *date2); void utl_date_set_nearest_weekday (GDate *date, gint weekdays, gboolean month_mode); gchar * utl_date_print (const GDate *d, gint date_format, gint override_locale); gchar * utl_date_print_j (guint32 julian, gint date_format, gint override_locale); gchar * utl_date_get_format_str (gint date_format, gint override_locale); void utl_date_get_dmy (const GDate *date, gint *day, gint *month, gint *year); void utl_date_julian_to_dmy (guint32 julian, gint *day, gint *month, gint *year); guint32 utl_date_dmy_to_julian (guint day, guint month, guint year); /* Deprecated: */ guint utl_get_month_length (guint leap_year, guint month); guint utl_get_days_in_months (guint leap_year, guint month); glong utl_year_to_days (guint year); glong utl_calc_days (guint year, guint mm, guint dd); glong utl_dates_difference (guint year1, guint mm1, guint dd1, guint year2, guint mm2, guint dd2); guint utl_day_of_week (guint year, guint mm, guint dd); guint utl_weeks_in_year (guint year); guint utl_get_week_number (guint year, guint mm, guint dd); gboolean utl_week_of_year (guint *week, guint *year, guint mm, guint dd); #endif /* _UTILS_DATE_H */ osmo-0.4.2/src/notes_preferences_gui.h0000664000175000017500000000242013066543472014742 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _NOTES_PREFERENCES_GUI_H #define _NOTES_PREFERENCES_GUI_H #include "gui.h" gint get_enc_algorithm_value (void); gint get_enc_hashing_value (void); gint get_comp_algorithm_value (void); gint get_comp_ratio_value (void); GtkWidget * nte_create_preferences_page (GtkWidget *notebook, GUI *appGUI); #endif /* _NOTES_PREFERENCES_GUI_H */ osmo-0.4.2/src/tasks_utils.c0000664000175000017500000001602613066543472012734 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 "i18n.h" #include "tasks_preferences_gui.h" #include "tasks_utils.h" #ifdef TASKS_ENABLED /*------------------------------------------------------------------------------*/ gboolean tsk_check_tasks (guint32 julian_start, guint32 julian_end, gint type, GUI *appGUI) { GtkTreeModel *model = NULL; GtkTreePath *path; GtkTreeIter iter; gchar *category; guint32 julian; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); if (model == NULL) return FALSE; path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_DATE_JULIAN, &julian, TA_COLUMN_CATEGORY, &category, -1); if (julian >= julian_start && julian <= julian_end) if (tsk_get_category_state (category, type, appGUI) == TRUE) { g_free (category); gtk_tree_path_free (path); return TRUE; } g_free (category); gtk_tree_path_next (path); } gtk_tree_path_free (path); return FALSE; } /*------------------------------------------------------------------------------*/ gboolean tsk_get_category_state (gchar *category_name, gint type, GUI *appGUI) { GtkTreeModel *model = NULL; GtkTreeIter iter; gboolean state, state_calendar, state_tasks; gchar *name; gint i; if (type == STATE_NONE || category_name == NULL) return TRUE; model = GTK_TREE_MODEL (appGUI->opt->tasks_category_store); g_return_val_if_fail (model != NULL, TRUE); i = 0; while (gtk_tree_model_iter_nth_child (model, &iter, NULL, i++)) { gtk_tree_model_get (model, &iter, TC_COLUMN_NAME, &name, -1); if (name != NULL && !strcmp (category_name, name)) { gtk_tree_model_get (model, &iter, TC_COLUMN_CALENDAR, &state_calendar, TC_COLUMN_TASKS, &state_tasks, -1); state = (type == STATE_CALENDAR && state_calendar) || (type == STATE_TASKS && state_tasks) || (type == STATE_EITHER && (state_calendar || state_tasks)); g_free (name); return state; } g_free (name); } return TRUE; } /*------------------------------------------------------------------------------*/ gchar * tsk_get_priority_text (gint index) { gchar *priority_table[] = { N_("Low"), N_("Medium"), N_("High") }; g_return_val_if_fail (index >= LOW_PRIORITY && index <= HIGH_PRIORITY, NULL); return gettext (priority_table[index]); } /*------------------------------------------------------------------------------*/ gint tsk_get_priority_index (gchar *text) { gchar *priority_table[] = { N_("Low"), N_("Medium"), N_("High") }; gint i; /* FIXME */ /* g_return_val_if_fail (text != NULL, -1);*/ if (text == NULL) return -1; for (i = 0; i < 3; i++) { if (!strcmp (gettext (priority_table[i]), text)) break; } return (i == 3 ? -1: i); } /*------------------------------------------------------------------------------*/ GtkTreeIter * tsk_get_iter (guint id, GUI *appGUI) { static GtkTreeIter iter; GtkTreeModel *model; gint i, n; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); g_return_val_if_fail (model != NULL, NULL); i = 0; while (gtk_tree_model_iter_nth_child (model, &iter, NULL, i++)) { gtk_tree_model_get (model, &iter, TA_COLUMN_ID, &n, -1); if (n == id) return &iter; } return NULL; } /*============================================================================*/ TASK_ITEM * tsk_get_item_id (guint id, GUI *appGUI) { GtkTreeIter *iter; iter = tsk_get_iter (id, appGUI); if (iter == NULL) return NULL; return tsk_get_item (iter, appGUI); } /*============================================================================*/ TASK_ITEM * tsk_get_item (GtkTreeIter *iter, GUI *appGUI) { GtkTreeModel *model; TASK_ITEM *item; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); g_return_val_if_fail (model != NULL, NULL); item = g_new0 (TASK_ITEM, 1); gtk_tree_model_get (model, iter, TA_COLUMN_ID, &(item->id), TA_COLUMN_DONE, &(item->done), TA_COLUMN_DUE_DATE_JULIAN, &(item->due_date_julian), TA_COLUMN_DUE_TIME, &(item->due_time), TA_COLUMN_START_DATE_JULIAN, &(item->start_date_julian), TA_COLUMN_DONE_DATE_JULIAN, &(item->done_date_julian), TA_COLUMN_ACTIVE, &(item->active), TA_COLUMN_OFFLINE_IGNORE, &(item->offline_ignore), TA_COLUMN_SOUND_ENABLE, &(item->sound_enable), TA_COLUMN_NDIALOG_ENABLE, &(item->ndialog_enable), TA_COLUMN_REPEAT, &(item->repeat), TA_COLUMN_REPEAT_DAY, &(item->repeat_day), TA_COLUMN_REPEAT_MONTH_INTERVAL, &(item->repeat_month_interval), TA_COLUMN_REPEAT_DAY_INTERVAL, &(item->repeat_day_interval), TA_COLUMN_REPEAT_START_DAY, &(item->repeat_start_day), TA_COLUMN_REPEAT_TIME_START, &(item->repeat_time_start), TA_COLUMN_REPEAT_TIME_END, &(item->repeat_time_end), TA_COLUMN_REPEAT_TIME_INTERVAL, &(item->repeat_time_interval), TA_COLUMN_REPEAT_COUNTER, &(item->repeat_counter), TA_COLUMN_WARNING_DAYS, &(item->warning_days), TA_COLUMN_WARNING_TIME, &(item->warning_time), TA_COLUMN_POSTPONE_TIME, &(item->postpone_time), TA_COLUMN_PRIORITY, &(item->priority), TA_COLUMN_ALARM_COMMAND, &(item->alarm_command), TA_COLUMN_CATEGORY, &(item->category), TA_COLUMN_SUMMARY, &(item->summary), TA_COLUMN_DESCRIPTION, &(item->desc), -1); return item; } /*------------------------------------------------------------------------------*/ void tsk_item_free (TASK_ITEM *item) { g_return_if_fail (item != NULL); g_free (item->alarm_command); g_free (item->priority); g_free (item->category); g_free (item->summary); g_free (item->desc); g_free (item); item = NULL; } /*------------------------------------------------------------------------------*/ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/about.c0000664000175000017500000011115013161167412011463 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "about.h" #include "gui_logo.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils_gui.h" static void display_license (GUI *appGUI); static void display_help (GUI *appGUI); static void add_credits_section (const gchar *section_title, OsmoCreditEntry *credits, guint32 n_credits, GUI *appGUI); static void display_about (GUI *appGUI); static void about_switch_buttons (gboolean left, GUI *appGUI); static void button_released_cb (GtkButton *button, GUI *appGUI); static void gui_create_about (GtkWidget *vbox_top, GUI *appGUI); static OsmoCreditEntry credits_programming[] = { { NULL, "Tomasz Mąka", "pasp@users.sourceforge.net" }, { NULL, "Piotr Mąka", "silloz@users.sourceforge.net" } }; static OsmoCreditEntry credits_graphics[] = { { NULL, "Maja Kocoń", "http://pinky-babble.org" } }; static OsmoCreditEntry credits_contributors[] = { { NULL, "Markus Dahms", "mad@automagically.de" }, { NULL, "Nacho Alonso González", "nacho.alonso.gonzalez@gmail.com" }, { NULL, "Maxim Gordienko", "mgordienko@users.sourceforge.net" } }; static OsmoCreditEntry credits_translators[] = { { "bg", "Borislav Totev", "btotev@hotmail.com" }, { "ca", "Roger Adell", "roger.adell@gmail.com" }, { "cs", "Jaroslav Lichtblau", "dragonlord@seznam.cz" }, { "da", "Joakim Seeberg", "joak@users.sourceforge.net" }, /* da */ { NULL, "Joe Hansen", "joedalton2@yahoo.dk" }, /* da */ { "de", "Markus Dahms", "mad@automagically.de" }, /* de */ { NULL, "Mario Blättermann", "mariobl@gnome.org" }, /* de */ { NULL, "Roland Siegbert", "roland.siegbert@gmail.com" }, /* de */ { "el", "Konstantinos Tsakaloglou", "tsakf@yahoo.com" }, { "en_GB", "Steve Cook (Yorvyk)", "yorvik.ubunto@googlemail.com" }, { "es", "Nacho Alonso González", "nacho.alonso.gonzalez@gmail.com" }, { "fi", "Toivo Miettinen", "toivo.miettinen@panuma.fi" }, { "fr", "Jean-Jacques Moulinier", "postmaster@moulinier.net" }, /* fr */ { NULL, "Rémi Roupsard", "remi.roupsard@gmail.com"}, /* fr */ { NULL, "Lylliann Essandre", "lylambda@gmail.com"}, /* fr */ { "gl", "Miguel Anxo Bouzada", "mbouzada@gmail.com"}, /* gl */ { NULL, "xesusmosquera", "xesusmosquera@gmail.com"}, /* gl */ { "gl_ES", "Miguel Anxo Bouzada", "mbouzada@gmail.com"}, /* gl_ES */ { NULL, "xesusmosquera", "xesusmosquera@gmail.com"}, /* gl_ES */ { "he", "Hebrew", "Hebrew@transifex"}, { "hu", "Peter Polonkai", "polesz@nedudu.hu" }, { "it", "Bautz", "bautz@email.com" }, /* it */ { NULL, "Calogero Bonasia", "kbonasia@gmail.com" }, /* it */ { "ja", "Norihiro Yoneda", "aoba@avis.ne.jp" }, { "lt", "Vaidotas Kazla", "joshas@gmail.com" }, /* lt */ { NULL, "Moo", "Moo@transifex" }, /* lt */ { "nl", "Tiger!P", "tigerp@tigerp.net" }, { "pl", "Piotr Mąka", "silloz@users.sourceforge.net" }, { "pt", "Bruno Miguel", "brunoalexandremiguel@gmail.com" }, { "pt_BR", "Átila Camurça", "camurca.home@gmail.com" }, /* pt_BR */ { NULL, "Alexandro Casanova", "shorterfire@gmail.com" }, /* pt_BR */ { "ro", "Alexandru Gavriș", "alexandrugavrish@gmail.com" }, /* ro */ { "ru", "Vyacheslav A. Trishkin", "dedovsk@mail.ru" }, /* ru */ { NULL, "Alexander Vozhennikov", "vodka_ploho@mail.ru" }, /* ru */ { NULL, "Sergey Panasenko", "nitay@users.sourceforge.net" }, /* ru */ { NULL, "Dmitry Korzhevin", "dkorzhevin@lsupport.net" }, /* ru */ { "sr", "Саша Петровић", "salepetronije@gmail.com" }, /* sr */ { "sv", "Niklas Grahn", "terra.unknown@yahoo.com" }, { "te", "Praveen Illa", "mail2ipn@gmail.com" }, { "tr", "Hasan Yılmaz", "hasanyilmaz@users.sourceforge.net" }, { "uk", "Sergey Panasenko", "nitay@users.sourceforge.net" }, /* uk */ { NULL, "Dmitry Korzhevin", "dkorzhevin@lsupport.net" }, /* uk */ { NULL, "Yury Bulka", "yurkobb@gmail.com" }, /* uk */ { "ur", "Muhammad Ali Makki", "makkiabufaris@aol.com" }, /* ur */ { "ur_PK", "Muhammad Ali Makki", "makkiabufaris@aol.com" }, /* ur_pk */ { "zh_CN", "Sasaqqdan", "sasaqqdan@gmail.com" }, /* zh_cn */ { NULL, "Darcsis", "darcsis@gmail.com" } /* zh_cn */ }; /* ========================================================================== */ static void close_window (GtkWidget *widget, GtkWidget *window) { gtk_widget_destroy (window); } /* ========================================================================== */ static gint key_press (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { switch (event->keyval) { case GDK_KEY_Escape: close_window (NULL, widget); return TRUE; case GDK_KEY_Page_Down: about_switch_buttons (FALSE, appGUI); return TRUE; case GDK_KEY_Page_Up: about_switch_buttons (TRUE, appGUI); return TRUE; } return FALSE; } /* ========================================================================== */ GtkWidget * opt_create_about_window (GUI *appGUI) { GtkWidget *window, *vbox_top; GtkWidget *hbuttonbox, *button_close; window = utl_gui_create_window (_("About"), 510, 600, appGUI); gtk_widget_set_events (window, GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (key_press), appGUI); vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_add (GTK_CONTAINER (window), vbox_top); gui_create_about (vbox_top, appGUI); /* Close button */ hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), HBOX_SPACING); button_close = gtk_button_new_with_mnemonic(_("_Close")); gtk_container_add (GTK_CONTAINER (hbuttonbox), button_close); gtk_widget_set_can_default (button_close, TRUE); g_signal_connect (G_OBJECT (button_close), "clicked", G_CALLBACK (close_window), window); gtk_widget_grab_focus (button_close); gtk_widget_show_all (vbox_top); return window; } /* ========================================================================== */ static void display_license (GUI *appGUI) { const gchar license_text[] = { "\nThis 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." "\n\n" "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." "\n\n" "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." }; utl_gui_clear_text_buffer (appGUI->about_entry_buffer, &appGUI->about_entry_iter); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, license_text, -1); gtk_widget_grab_focus (GTK_WIDGET (appGUI->scrolled_window)); } /* ========================================================================== */ static void display_help (GUI *appGUI) { const gchar *general_keys_text[] = { N_("Ctrl+PageUp"), N_("switch to previous tab"), N_("Ctrl+PageDn"), N_("switch to next tab"), "Alt+1...6, F1-F4", N_("switch to selected page"), "F5", N_("show options window"), "F6", N_("show about window"), "F11", N_("toggle fullscreen mode"), N_("PageUp/PageDn"), N_("switch page in options and about tab"), "Ctrl+q", N_("exit") }; const gchar *calendar_keys_text[] = { N_("Space"), N_("select current date"), N_("Ctrl+Space"), N_("toggle personal data visibility"), N_("Arrows"), N_("change day"), N_("Ctrl+Up/Down"), N_("scroll the contents in the day info panel"), N_("PageUp/PageDn"), N_("change month"), N_("Home/End"), N_("change year"), "a", N_("toggle calendars for the previous and next month"), "b", N_("day notes browser"), "c", N_("assign background color to day note"), "d", N_("date calculator"), "f", N_("show full-year calendar"), "g", N_("jump to date"), N_("Delete"), N_("remove day note") }; const gchar *calendar_editor_keys_text[] = { N_("Alt+Arrows"), N_("change day"), N_("Esc"), N_("close editor"), "Ctrl+b", N_("toggle bold"), "Ctrl+i", N_("toggle italic"), "Ctrl+u", N_("toggle underline"), "Ctrl+t", N_("toggle strikethrough"), "Ctrl+m", N_("toggle highlight") }; const gchar *calendar_fy_keys_text[] = { N_("Arrows Up/Down"), N_("change year"), "F1", N_("toggle alternative view"), "F2", N_("year info"), "F3", N_("set current year"), N_("Esc"), N_("close full-year calendar") }; #ifdef TASKS_ENABLED const gchar *tasks_keys_text[] = { N_("Alt+a, Insert"), N_("add task"), N_("Alt+e, Ctrl+Enter"), N_("edit task"), N_("Alt+r, Delete"), N_("remove task"), "Ctrl+h", N_("toggle hidden tasks"), "Ctrl+l", N_("activate search field"), N_("Left, Right"), N_("change category filter"), N_("Esc"), N_("close task info panel") }; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED const gchar *contacts_keys_text[] = { N_("Insert"), N_("add contact"), N_("Ctrl+Enter"), N_("edit contact"), N_("Delete"), N_("remove contact"), "Ctrl+l", N_("activate search field"), N_("Ctrl+Up/Down"), N_("change search mode"), N_("Esc"), N_("close contact details panel") }; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED const gchar *notes_selector_keys_text[] = { N_("Enter"), N_("open note"), N_("Insert"), N_("add note"), N_("Delete"), N_("remove note"), N_("Ctrl+Enter"), N_("edit note name and category"), "Ctrl+l", N_("activate search field"), N_("Left, Right"), N_("change category filter") }; const gchar *notes_editor_keys_text[] = { "Ctrl+w", N_("close note editor"), "Ctrl+s", N_("save note"), "Ctrl+f", N_("find text"), "Ctrl+b", N_("toggle bold"), "Ctrl+i", N_("toggle italic"), "Ctrl+u", N_("toggle underline"), "Ctrl+t", N_("toggle strikethrough"), "Ctrl+m", N_("toggle highlight"), "Ctrl+n", N_("clear selection attributes"), "Ctrl+o", N_("open URLs"), "Ctrl+.", N_("show document statistics") }; #endif /* NOTES_ENABLED */ gchar *str; gint i; utl_gui_clear_text_buffer (appGUI->about_entry_buffer, &appGUI->about_entry_iter); str = g_strdup_printf ("\n%s\n\n", _("OSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:")); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); /* ============================== */ str = g_strdup_printf ("* %s\n", _("General")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (general_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (general_keys_text[i*2]), gettext (general_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); /* ============================== */ str = g_strdup_printf ("* %s\n", _("Calendar")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (calendar_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (calendar_keys_text[i*2]), gettext (calendar_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } str = g_strdup_printf ("\t%s:\n", _("Note editor")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (calendar_editor_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (calendar_editor_keys_text[i*2]), gettext (calendar_editor_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } str = g_strdup_printf ("\t%s:\n", _("Full-year calendar")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (calendar_fy_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (calendar_fy_keys_text[i*2]), gettext (calendar_fy_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); /* ============================== */ #ifdef TASKS_ENABLED str = g_strdup_printf ("* %s\n", _("Tasks")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (tasks_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (tasks_keys_text[i*2]), gettext (tasks_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); #endif /* TASKS_ENABLED */ /* ============================== */ #ifdef CONTACTS_ENABLED str = g_strdup_printf ("* %s\n", _("Contacts")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (contacts_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (contacts_keys_text[i*2]), gettext (contacts_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); #endif /* CONTACTS_ENABLED */ /* ============================== */ #ifdef NOTES_ENABLED str = g_strdup_printf ("* %s\n", _("Notes")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); str = g_strdup_printf ("\t%s:\n", _("Selector")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (notes_selector_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (notes_selector_keys_text[i*2]), gettext (notes_selector_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } str = g_strdup_printf ("\t%s:\n", _("Editor")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); for (i = 0; i < G_N_ELEMENTS (notes_editor_keys_text) / 2; i++) { str = g_strdup_printf ("\t<%s> - %s\n", gettext (notes_editor_keys_text[i*2]), gettext (notes_editor_keys_text[i*2+1])); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); #endif /* NOTES_ENABLED */ gtk_widget_grab_focus (GTK_WIDGET (appGUI->scrolled_window)); } /* ========================================================================== */ static void add_credits_section (const gchar *section_title, OsmoCreditEntry *credits, guint32 n_credits, GUI *appGUI) { gint32 i, j, d; gchar *s; s = g_strdup_printf ("\n %s:\n", section_title); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, s, -1, "bold", NULL); g_free (s); for (i = 0; i < n_credits; i++) { if (credits[i].tag) { if(strlen(credits[i].tag) > 2) { s = g_strdup_printf (" [%s]", credits[i].tag); } else { s = g_strdup_printf (" [%s] ", credits[i].tag); } } else { s = g_strdup (" "); } gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, s, -1, "fixed", NULL); g_free (s); s = g_strdup_printf (" %s <", credits[i].name); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, s, -1); g_free (s); j = d = 0; while (credits[i].email[j] != '\0') if (credits[i].email[j++] == '.') d++; if (d == 0) { gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, credits[i].email, -1); } else { utl_gui_url_insert_link (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, &appGUI->about_entry_iter, config.link_color, NULL, credits[i].email, FALSE, appGUI); } gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, ">\n", -1); } } /* ========================================================================== */ static void display_about (GUI *appGUI) { gchar *str; utl_gui_url_remove_links (&appGUI->about_links_list, &appGUI->about_link_index); utl_gui_clear_text_buffer (appGUI->about_entry_buffer, &appGUI->about_entry_iter); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); str = g_strdup_printf ("%s\n", _("A handy personal organizer")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "big", "center", NULL); g_free (str); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); utl_gui_url_insert_link (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, &appGUI->about_entry_iter, config.link_color, NULL, OSMO_WEBSITE, TRUE, appGUI); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); #ifndef REPRODUCIBLE_BUILD str = g_strdup_printf ("\n(%s %s, %s)\n\n", _("compiled on"), __DATE__, __TIME__); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "center", "italic", NULL); g_free (str); #endif add_credits_section (_("Programming"), credits_programming, G_N_ELEMENTS (credits_programming), appGUI); add_credits_section (_("Graphics"), credits_graphics, G_N_ELEMENTS (credits_graphics), appGUI); add_credits_section (_("Contributors"), credits_contributors, G_N_ELEMENTS (credits_contributors), appGUI); add_credits_section (_("Translators"), credits_translators, G_N_ELEMENTS (credits_translators), appGUI); /* Links */ str = g_strdup_printf ("\n %s:\n", _("Mailing lists")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\t ", -1); utl_gui_url_insert_link (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, &appGUI->about_entry_iter, config.link_color, NULL, MAILING_LIST, FALSE, appGUI); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); str = g_strdup_printf ("\n %s:\n", _("Bug tracker")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\t ", -1); utl_gui_url_insert_link (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, &appGUI->about_entry_iter, config.link_color, NULL, BUG_TRACKER, FALSE, appGUI); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); str = g_strdup_printf ("\n %s:\n", _("Feature requests")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\t ", -1); utl_gui_url_insert_link (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, &appGUI->about_entry_iter, config.link_color, NULL, FEATURE_REQUESTS, FALSE, appGUI); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, "\n", -1); /* Available modules */ str = g_strdup_printf ("\n %s:\n", _("Available modules")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); str = g_strdup_printf (" [+]\t%s\n", _("Calendar")); gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef TASKS_ENABLED str = g_strdup_printf (" [+]\t%s\n", _("Tasks")); #else str = g_strdup_printf (" [-]\t%s\n", _("Tasks")); #endif /* TASKS_ENABLED */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef CONTACTS_ENABLED str = g_strdup_printf (" [+]\t%s\n", _("Contacts")); #else str = g_strdup_printf (" [-]\t%s\n", _("Contacts")); #endif /* CONTACTS_ENABLED */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef NOTES_ENABLED str = g_strdup_printf (" [+]\t%s\n", _("Notes")); #else str = g_strdup_printf (" [-]\t%s\n", _("Notes")); #endif /* NOTES_ENABLED */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); /* Compiled-in features */ str = g_strdup_printf ("\n %s:\n", _("Compiled-in features")); gtk_text_buffer_insert_with_tags_by_name (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1, "bold", NULL); g_free (str); #ifdef HAVE_LIBICAL str = g_strdup_printf (" [+]\t%s (libical)\n", _("iCalendar support")); #else str = g_strdup_printf (" [-]\t%s (libical)\n", _("iCalendar support")); #endif /* HAVE_LIBICAL */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef HAVE_LIBGRINGOTTS str = g_strdup_printf (" [+]\t%s (libgringotts)\n", _("Encrypted notes support")); #else str = g_strdup_printf (" [-]\t%s (libgringotts)\n", _("Encrypted notes support")); #endif /* HAVE_LIBGRINGOTTS */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) str = g_strdup_printf (" [+]\t%s (libarchive + libgringotts)\n", _("Backup support")); #else str = g_strdup_printf (" [-]\t%s (libarchive + libgringotts)\n", _("Backup support")); #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef PRINTING_SUPPORT str = g_strdup_printf (" [+]\t%s\n", _("Printing support")); #else str = g_strdup_printf (" [-]\t%s\n", _("Printing support")); #endif /* PRINTING_SUPPORT */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); #ifdef HAVE_GSPELL str = g_strdup_printf (" [+]\t%s (gspell)\n", _("Spell checker support")); #else str = g_strdup_printf (" [-]\t%s (gspell)\n", _("Spell checker support")); #endif /* HAVE_GSPELL */ gtk_text_buffer_insert (appGUI->about_entry_buffer, &appGUI->about_entry_iter, str, -1); g_free (str); gtk_widget_grab_focus (GTK_WIDGET (appGUI->scrolled_window)); } /* ========================================================================== */ static void about_switch_buttons (gboolean left, GUI *appGUI) { if (left == TRUE && appGUI->about_counter > 0) { --appGUI->about_counter; } else if (left == FALSE && appGUI->about_counter < 2) { appGUI->about_counter++; } if (appGUI->about_counter == 0){ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->about_radiobutton), TRUE); g_signal_emit_by_name (G_OBJECT (appGUI->about_radiobutton), "released"); } else if (appGUI->about_counter == 1) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->help_radiobutton), TRUE); g_signal_emit_by_name (G_OBJECT (appGUI->help_radiobutton), "released"); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->license_radiobutton), TRUE); g_signal_emit_by_name (G_OBJECT (appGUI->license_radiobutton), "released"); } } /* ========================================================================== */ static void button_released_cb (GtkButton *button, GUI *appGUI) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->about_radiobutton)) == TRUE) { display_about (appGUI); appGUI->about_counter = 0; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->help_radiobutton)) == TRUE) { display_help (appGUI); appGUI->about_counter = 1; } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->license_radiobutton)) == TRUE) { display_license (appGUI); appGUI->about_counter = 2; } } /* ========================================================================== */ void gui_create_about (GtkWidget *vbox_top, GUI *appGUI) { GtkWidget *vbox = NULL; GtkWidget *label; GtkWidget *hseparator; GtkWidget *logo_area; GdkPixbuf *logo, *logo_scaled = NULL; GtkWidget *viewport; GtkWidget *hbuttonbox = NULL; GSList *radiobutton_group = NULL; char *str; appGUI->about_counter = 0; appGUI->about_vbox = GTK_BOX (vbox_top); logo_area = gtk_image_new (); logo = gdk_pixbuf_new_from_inline (-1, osmo_logo, FALSE, NULL); gtk_widget_show (logo_area); gtk_box_pack_start (GTK_BOX (vbox_top), logo_area, FALSE, TRUE, 0); /* * http://stackoverflow.com/questions/3781520/how-to-test-if-preprocessor-symbol-is-defined-but-has-no-value */ #define DO_EXPAND(VAL) VAL ## 1 #define EXPAND(VAL) DO_EXPAND(VAL) #if (EXPAND(REPO) == 1) str = g_strdup_printf ("%s %s", _("version"), VERSION); #else #define xstr(a) str(a) #define str(a) #a str = g_strdup_printf ("%s (%s)", _("GIT version"), xstr(REVISION)); #endif label = gtk_label_new (str); g_free (str); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (vbox_top), label, FALSE, TRUE, 4); if (logo_scaled != NULL) { gtk_image_set_from_pixbuf (GTK_IMAGE (logo_area), logo_scaled); g_object_unref (logo_scaled); } else { gtk_image_set_from_pixbuf (GTK_IMAGE (logo_area), logo); g_object_unref (logo); } /*--------------------------------------------------------------------------*/ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4); gtk_widget_show (vbox); gtk_box_pack_start (GTK_BOX (vbox_top), vbox, FALSE, TRUE, 0); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, TRUE, 0); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox), hbuttonbox, FALSE, TRUE, 0); gtk_widget_set_halign(hbuttonbox, GTK_ALIGN_CENTER); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); appGUI->about_radiobutton = utl_gui_icon_label_radio_button (_("About"), OSMO_STOCK_ABOUT, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->about_radiobutton); gtk_widget_show (appGUI->about_radiobutton); gtk_button_set_relief (GTK_BUTTON (appGUI->about_radiobutton), GTK_RELIEF_NONE); gtk_widget_set_can_focus (appGUI->about_radiobutton, FALSE); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->about_radiobutton), radiobutton_group); radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->about_radiobutton)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->about_radiobutton), TRUE); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (appGUI->about_radiobutton), FALSE); g_signal_connect (G_OBJECT (appGUI->about_radiobutton), "released", G_CALLBACK (button_released_cb), appGUI); appGUI->help_radiobutton = utl_gui_icon_label_radio_button (_("Key shortcuts"), OSMO_STOCK_HELP, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->help_radiobutton); gtk_widget_show (appGUI->help_radiobutton); gtk_button_set_relief (GTK_BUTTON (appGUI->help_radiobutton), GTK_RELIEF_NONE); gtk_widget_set_can_focus (appGUI->help_radiobutton, FALSE); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->help_radiobutton), radiobutton_group); radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->help_radiobutton)); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (appGUI->help_radiobutton), FALSE); g_signal_connect (G_OBJECT (appGUI->help_radiobutton), "released", G_CALLBACK (button_released_cb), appGUI); appGUI->license_radiobutton = utl_gui_icon_label_radio_button (_("License"), OSMO_STOCK_LICENSE, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->license_radiobutton); gtk_widget_show (appGUI->license_radiobutton); gtk_button_set_relief (GTK_BUTTON (appGUI->license_radiobutton), GTK_RELIEF_NONE); gtk_widget_set_can_focus (appGUI->license_radiobutton, FALSE); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->license_radiobutton), radiobutton_group); radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->license_radiobutton)); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (appGUI->license_radiobutton), FALSE); g_signal_connect (G_OBJECT (appGUI->license_radiobutton), "released", G_CALLBACK (button_released_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, TRUE, 0); /*--------------------------------------------------------------------------*/ appGUI->scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox_top), appGUI->scrolled_window, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show (appGUI->scrolled_window); viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport); gtk_container_set_border_width (GTK_CONTAINER (viewport), 0); gtk_container_add (GTK_CONTAINER (appGUI->scrolled_window), viewport); appGUI->about_entry_buffer = gtk_text_buffer_new (NULL); gtk_text_buffer_get_iter_at_offset (appGUI->about_entry_buffer, &appGUI->about_entry_iter, 0); gtk_text_buffer_create_tag (appGUI->about_entry_buffer, "fixed", "family", "monospace", NULL); gtk_text_buffer_create_tag (appGUI->about_entry_buffer, "bold", "weight", PANGO_WEIGHT_ULTRABOLD, NULL); gtk_text_buffer_create_tag (appGUI->about_entry_buffer, "big", "size", 16 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (appGUI->about_entry_buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (appGUI->about_entry_buffer, "center", "justification", GTK_JUSTIFY_CENTER, NULL); gtk_text_buffer_get_iter_at_offset (appGUI->about_entry_buffer, &appGUI->about_entry_iter, 0); appGUI->about_textview = gtk_text_view_new_with_buffer (appGUI->about_entry_buffer); gtk_container_set_border_width (GTK_CONTAINER (appGUI->about_textview), 1); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->about_textview), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->about_textview), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->about_textview), GTK_WRAP_WORD); gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (appGUI->about_textview), 2); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (appGUI->about_textview), 6); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (appGUI->about_textview), 6); gtk_widget_show (appGUI->about_textview); gtk_container_add (GTK_CONTAINER (viewport), appGUI->about_textview); utl_gui_url_setup (&appGUI->about_links_list, &appGUI->about_link_index, appGUI->about_textview, appGUI); display_about (appGUI); } /* ========================================================================== */ osmo-0.4.2/src/gui.h0000664000175000017500000007265413161167413011162 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _GUI_H #define _GUI_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef CONTACTS_ENABLED #ifdef HAVE_LIBWEBKIT #include #endif /* LIBWEBKIT */ #endif /* CONTACTS_ENABLED */ #ifdef HAVE_LIBNOTIFY #ifdef TASKS_ENABLED #include #endif /* TASKS_ENABLED */ #endif /* HAVE_LIBNOTIFY */ #ifdef HAVE_LIBGRINGOTTS #include #endif /* HAVE_LIBGRINGOTTS */ #ifdef HAVE_GSPELL #include #endif /* HAVE_GSPELL */ #define TRANSLATION_DOMAIN "osmo" #define MAX_MONTHS 12 #define MAX_WEEKS 6 #define DAYS_PER_WEEK 7 #define FULL_YEAR_COLS 37 #define OPAQUE 65535 #define BUFFER_SIZE 2048 #ifndef PATH_MAX #define PATH_MAX 1024 #endif #ifdef NOTES_ENABLED #define DEFAULT_NOTE_FONT "Sans 12" #endif /* NOTES_ENABLED */ enum notebook_page { PAGE_CALENDAR = 0, #ifdef TASKS_ENABLED PAGE_TASKS, #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED PAGE_CONTACTS, #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED PAGE_NOTES, #endif /* NOTES_ENABLED */ NUMBER_OF_TABS }; #define MAX_VISIBLE_TASK_COLUMNS 6 enum { /* tasks columns */ TA_COLUMN_DONE = 0, /* V */ TA_COLUMN_TYPE, /* V */ TA_COLUMN_DUE_DATE, /* V */ TA_COLUMN_DUE_DATE_JULIAN, TA_COLUMN_DUE_TIME, TA_COLUMN_START_DATE_JULIAN, TA_COLUMN_DONE_DATE_JULIAN, TA_COLUMN_PRIORITY, /* V */ TA_COLUMN_CATEGORY, /* V */ TA_COLUMN_SUMMARY, /* V */ TA_COLUMN_DESCRIPTION, TA_COLUMN_COLOR, TA_COLUMN_BOLD, TA_COLUMN_ACTIVE, TA_COLUMN_OFFLINE_IGNORE, TA_COLUMN_SOUND_ENABLE, TA_COLUMN_NDIALOG_ENABLE, TA_COLUMN_REPEAT, TA_COLUMN_REPEAT_DAY, TA_COLUMN_REPEAT_MONTH_INTERVAL, TA_COLUMN_REPEAT_DAY_INTERVAL, TA_COLUMN_REPEAT_START_DAY, TA_COLUMN_REPEAT_TIME_START, TA_COLUMN_REPEAT_TIME_END, TA_COLUMN_REPEAT_TIME_INTERVAL, TA_COLUMN_REPEAT_COUNTER, TA_COLUMN_ALARM_COMMAND, TA_COLUMN_WARNING_DAYS, TA_COLUMN_WARNING_TIME, TA_COLUMN_POSTPONE_TIME, TA_COLUMN_ID, TASKS_NUM_COLUMNS }; #define MAX_VISIBLE_CONTACT_COLUMNS 3 enum { /* contacts columns */ COLUMN_GROUP = 0 /* V */, COLUMN_FIRST_NAME /* V */, COLUMN_LAST_NAME, /* V */ COLUMN_SECOND_NAME, COLUMN_NICK_NAME, COLUMN_TAGS, COLUMN_BIRTH_DAY_DATE, COLUMN_NAME_DAY_DATE, COLUMN_HOME_ADDRESS, COLUMN_HOME_POST_CODE, COLUMN_HOME_CITY, COLUMN_HOME_STATE, COLUMN_HOME_COUNTRY, COLUMN_WORK_ORGANIZATION, COLUMN_WORK_DEPARTMENT, COLUMN_WORK_ADDRESS, COLUMN_WORK_POST_CODE, COLUMN_WORK_CITY, COLUMN_WORK_STATE, COLUMN_WORK_COUNTRY, COLUMN_WORK_FAX, COLUMN_HOME_PHONE_1, COLUMN_HOME_PHONE_2, COLUMN_HOME_PHONE_3, COLUMN_HOME_PHONE_4, COLUMN_WORK_PHONE_1, COLUMN_WORK_PHONE_2, COLUMN_WORK_PHONE_3, COLUMN_WORK_PHONE_4, COLUMN_CELL_PHONE_1, COLUMN_CELL_PHONE_2, COLUMN_CELL_PHONE_3, COLUMN_CELL_PHONE_4, COLUMN_EMAIL_1, COLUMN_EMAIL_2, COLUMN_EMAIL_3, COLUMN_EMAIL_4, COLUMN_WWW_1, COLUMN_WWW_2, COLUMN_WWW_3, COLUMN_WWW_4, COLUMN_IM_GG, COLUMN_IM_YAHOO, COLUMN_IM_MSN, COLUMN_IM_ICQ, COLUMN_IM_AOL, COLUMN_IM_JABBER, COLUMN_IM_SKYPE, COLUMN_IM_TLEN, COLUMN_BLOG, COLUMN_PHOTO, COLUMN_INFO, COLUMN_ID, CONTACTS_NUM_COLUMNS }; #define MAX_VISIBLE_NOTE_COLUMNS 5 enum { /* notes columns */ N_COLUMN_TYPE = 0, /* V */ N_COLUMN_NAME, /* V */ N_COLUMN_CATEGORY, /* V */ N_COLUMN_LAST_CHANGES_DATE, /* V */ N_COLUMN_LAST_CHANGES_DATE_JULIAN, N_COLUMN_LAST_CHANGES_TIME, N_COLUMN_CREATE_DATE, /* V */ N_COLUMN_CREATE_DATE_JULIAN, N_COLUMN_CREATE_TIME, N_COLUMN_REMEMBER_EDITOR_LINE, N_COLUMN_EDITOR_LINE, N_COLUMN_EDITOR_READONLY, N_COLUMN_FILENAME, N_COLUMN_FONTNAME, N_COLUMN_ENCRYPTED, NOTES_NUM_COLUMNS }; enum { SELECTOR = 0, EDITOR }; enum { WRT_CALENDAR_NOTES = 1, WRT_TASKS = 1 << 1, WRT_CONTACTS = 1 << 2, WRT_NOTES = 1 << 3 }; enum { PORTRAIT = 0, LANDSCAPE }; typedef struct { GtkWidget *calendar; gboolean dont_update; /* calendar toolbar */ GtkToolbar *calendar_toolbar; GtkToolItem *notes_button; GtkToolItem *quit_button; GtkBox *vbox; PangoFontDescription *fd_cal_font; /* date label */ GtkWidget *date_label; PangoFontDescription *fd_day_name_font; /* current selected date */ GDate *date; /* used for 'jump to' button in date calculator */ guint julian_jumpto; /* day notes */ GSList *notes_list; GtkWidget *notes_vbox; GtkWidget *note_label; GtkWidget *calendar_note_textview; #ifdef HAVE_GSPELL GspellTextView *calendar_note_spelltextview; #endif /* HAVE_GSPELL */ GtkWidget *day_info_vbox; GtkWidget *day_info_scrolledwindow; GtkWidget *time_label; GtkWidget *day_number_label; GtkWidget *day_number_year_label; GtkWidget *week_number_label; GtkWidget *moon_icon; GtkWidget *moon_phase_label; GtkWidget *marked_days_label; GtkWidget *weekend_days_label; GtkWidget *day_category_label; GtkWidget *day_desc_textview; GtkTextBuffer *day_desc_text_buffer; GtkTextIter day_desc_iter; PangoFontDescription *fd_notes_font; GtkWidget *ta_bold_button; GtkWidget *ta_italic_button; GtkWidget *ta_underline_button; GtkWidget *ta_strikethrough_button; GtkWidget *ta_highlight_button; /* calendar popup menu */ GtkWidget *popup_menu; GtkWidget *popup_menu_select_day_color_entry; /* month selector popup menu */ GtkWidget *month_selector_menu; /* auxilary calendars */ GtkWidget *aux_cal_expander; GtkWidget *aux_calendars_table; GtkWidget *calendars_table; GtkWidget *prev_month_label; GtkWidget *next_month_label; GtkWidget *calendar_prev; GtkWidget *calendar_next; /* date selector buttons */ GtkWidget *prev_day_button; GtkWidget *next_day_button; GtkWidget *prev_month_button; GtkWidget *next_month_button; /* day note toolbar */ GtkWidget *n_select_color_button; GtkWidget *n_timeline_button; GtkWidget *n_clear_button; GtkWidget *n_close_button; /* day category color selector */ GtkWidget *select_bg_color_window; GtkListStore *colors_category_store; GtkTreeSelection *colors_category_select; /* full year calendar */ gint last_selected_year; GtkWidget *fullyear_window; GtkWidget *fycal_table_1; GtkWidget *fycal_table_2; GtkWidget *fy_spinbutton; GtkWidget *fy_alternative_view_checkbutton; GtkWidget *cyear_button; GtkWidget *fy_calendars[MAX_MONTHS]; GtkWidget *calendar_buttons[MAX_MONTHS*(MAX_WEEKS*DAYS_PER_WEEK-(MAX_WEEKS-1))]; /* jump to date */ GtkWidget *jumpto_window; guint jday; guint jmonth; guint jyear; GtkWidget *day_entry; GtkWidget *month_entry; GtkWidget *year_entry; /* insert timeline */ GtkWidget *insert_timeline_window; GtkWidget *tl_start_h_spinbutton; GtkWidget *tl_start_m_spinbutton; GtkWidget *tl_end_h_spinbutton; GtkWidget *tl_end_m_spinbutton; GtkWidget *tl_step_spinbutton; GtkWidget *insert_timeline_button; GtkWidget *cancel_button; /* date calculator */ GtkWidget *window_date_calculator; GtkWidget *spinbutton_start_year; GtkWidget *spinbutton_start_month; GtkWidget *spinbutton_start_day; GtkWidget *spinbutton_start_hour; GtkWidget *spinbutton_start_minute; GtkWidget *spinbutton_start_second; GtkWidget *spinbutton_end_year; GtkWidget *spinbutton_end_month; GtkWidget *spinbutton_end_day; GtkWidget *spinbutton_end_hour; GtkWidget *spinbutton_end_minute; GtkWidget *spinbutton_end_second; GtkWidget *label_result_1; GtkWidget *label_result_1_2; GtkWidget *label_result_2; GtkWidget *label_result_3; GtkWidget *spinbutton2_start_year; GtkWidget *spinbutton2_start_month; GtkWidget *spinbutton2_start_day; GtkWidget *spinbutton2_start_hour; GtkWidget *spinbutton2_start_minute; GtkWidget *spinbutton2_start_second; GtkWidget *spinbutton2_end_year; GtkWidget *spinbutton2_end_month; GtkWidget *spinbutton2_end_day; GtkWidget *spinbutton2_end_week; GtkWidget *spinbutton2_end_hour; GtkWidget *spinbutton2_end_minute; GtkWidget *spinbutton2_end_second; GtkWidget *label2_result; GtkWidget *radiobutton_add; GtkWidget *ignore_weekend_days_checkbutton; gboolean datecal_bio; /* iCalendar */ GtkWidget *events_window; GtkWidget *ical_combobox; GtkWidget *n_items_label; GSList *ics_files_list; GtkWidget *ical_events_list; GtkTreeSelection *ical_events_list_selection; GtkListStore *ical_events_list_store; GtkTreeModel *ical_events_sort; GtkWidget *ical_export_window; GtkWidget *output_file_entry; GtkWidget *ical_export_vpaned; GtkWidget *export_begin_period_calendar; GtkWidget *export_end_period_calendar; GtkWidget *export_day_note_textview; GtkWidget *export_events_list_treeview; GtkTreeSelection *export_events_list_selection; GtkListStore *export_events_list_store; GtkWidget *use_date_period_checkbutton; /* notes browser */ GtkWidget *day_notes_window; GtkWidget *day_notes_list; GtkTreeSelection *day_notes_list_selection; GtkListStore *day_notes_list_store; GtkWidget *past_notes_checkbutton; GtkWidget *notes_month_spinbutton; GtkWidget *notes_year_spinbutton; GtkWidget *notes_filter_combobox; GtkWidget *notes_search_entry; GtkWidget *notes_search_checkbutton; /* print */ GtkWidget *window_print_options; GtkWidget *print_padding_spinbutton; GtkWidget *print_event_length_spinbutton; GtkWidget *print_tasks_checkbutton; GtkWidget *print_birthdays_checkbutton; GtkWidget *print_namedays_checkbutton; GtkWidget *print_day_notes_checkbutton; GtkWidget *print_ical_checkbutton; GtkWidget *print_month_name_font_entry; GtkWidget *print_day_name_font_entry; GtkWidget *print_day_num_font_entry; GtkWidget *print_event_font_entry; GtkWidget *print_portrait_radiobutton; GtkWidget *disable_background_checkbutton; #ifdef HAVE_LIBWEBKIT WebKitWebView *html_webkitview; #endif /* LIBWEBKIT */ } CALENDAR; #ifdef TASKS_ENABLED typedef struct { /* tasks toolbar */ GtkToolItem *edit_button; GtkToolItem *delete_button; GtkToolItem *prev_button; GtkToolItem *next_button; #ifdef PRINTING_SUPPORT GtkToolItem *print_button; #endif #ifdef HAVE_LIBICAL GtkToolItem *export_button; #endif GtkToolItem *quit_button; GtkBox *vbox; /* number of items label */ GtkWidget *n_items_label; GtkWidget *tasks_find_entry; GtkWidget *tasks_find_clear_button; GtkWidget *desc_textview; GtkWidget *tasks_desc_textview; GtkWidget *tasks_list; GtkTreeSelection *tasks_list_selection; GtkWidget *scrolled_win; GtkListStore *tasks_list_store; GtkWidget *panel_hbox; GtkWidget *panel_scrolledwindow; GtkTreeModel *tasks_filter; GtkTreeModel *tasks_sort; GtkWidget *tasks_paned; GtkWidget *cf_combobox; GtkWidget *priority_combobox; GtkWidget *category_combobox; GtkTreeViewColumn *tasks_columns[TASKS_NUM_COLUMNS]; GtkTextTag *font_tag_object; GtkCellRenderer *done_renderer; gint filter_index; guint next_id; /* tasks items */ GtkWidget *td_calendar; GtkWidget *time_expander; GtkWidget *due_date_entry; GtkWidget *tasks_add_window; GtkWidget *td_calendar_window; gboolean tasks_accept_state, tasks_edit_state; GtkWidget *tasks_ok_button; GtkWidget *summary_entry; guint32 tasks_due_julian_day; gint tasks_due_time; GtkWidget *aw_days_spinbutton; GtkWidget *aw_hours_spinbutton; GtkWidget *aw_minutes_spinbutton; GtkWidget *postpone_spinbutton; GtkWidget *alarm_cmd_entry; GtkWidget *alarm_cmd_valid_image; GtkWidget *recurrent_task_vbox; GtkWidget *rt_enable_checkbutton; GtkWidget *rt_frame; GtkWidget *ignore_alarm_checkbutton; GtkWidget *rt_start_hour_spinbutton; GtkWidget *rt_start_minute_spinbutton; GtkWidget *rt_end_hour_spinbutton; GtkWidget *rt_end_minute_spinbutton; GtkWidget *rt_interval_hour_spinbutton; GtkWidget *rt_interval_minute_spinbutton; GtkWidget *dp_1_checkbutton; GtkWidget *dp_2_checkbutton; GtkWidget *dp_3_checkbutton; GtkWidget *dp_4_checkbutton; GtkWidget *dp_5_checkbutton; GtkWidget *dp_6_checkbutton; GtkWidget *dp_7_checkbutton; GtkWidget *rt_dp_day_spinbutton; GtkWidget *rt_dp_month_spinbutton; GtkWidget *repeat_counter_spinbutton; GtkWidget *checkb_sound_enable; GtkWidget *checkb_ndialog_enable; GSList *notifications; gboolean notifications_enable; #ifdef HAVE_LIBWEBKIT WebKitWebView *html_webkitview; #endif /* LIBWEBKIT */ } TASKS; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED typedef struct { /* contacts toolbar */ GtkToolbar *contacts_toolbar; GtkToolItem *edit_toolbar_button; GtkToolItem *delete_toolbar_button; GtkToolItem *map_location_toolbar_button; GtkToolItem *export_toolbar_button; GtkToolItem *quit_toolbar_button; GtkBox *vbox; GtkWidget *add_contact_button; GtkWidget *edit_contact_button; GtkWidget *delete_contact_button; GtkWidget *contacts_find_entry; GtkWidget *contacts_find_clear_button; GtkWidget *contacts_find_combobox; GtkWidget *contacts_paned; GtkWidget *panel_hbox; GtkWidget *scrolled_win; GtkWidget *contacts_list; GtkTreeSelection *contacts_list_selection; GtkListStore *contacts_list_store; GtkTreeModel *contacts_filter; GtkTreeModel *contacts_sort; GtkWidget *contacts_panel_scrolledwindow; gint contacts_link_index; gint contacts_www_link_index; gint contacts_email_link_index; gint contacts_blog_link_index; gboolean write_flag; GtkWidget *next_field_button[CONTACTS_NUM_COLUMNS]; GtkTreeViewColumn *contacts_columns[CONTACTS_NUM_COLUMNS]; gchar **contact_fields_tags_name; GtkWidget *contacts_add_window; GtkWidget *contacts_ok_button; GtkWidget *contacts_browse_button; GtkWidget *add_info_textview; GtkWidget *photo_browse_button; GtkWidget *birth_day_date_button; GtkWidget *name_day_date_button; GtkWidget *combobox_group; GtkWidget *contact_entries[CONTACTS_NUM_COLUMNS]; GtkWidget *select_date_window; GtkWidget *select_date_calendar; gboolean contacts_accept_state; gboolean contacts_edit_state; guint32 birthday_date; guint32 nameday_date; /* show birthdays */ GtkWidget *birthdays_window; GtkWidget *birthdays_list; GtkTreeSelection *birthdays_list_selection; GtkListStore *birthdays_list_store; /* export contacts */ GtkWidget *export_window; GtkWidget *export_button; GtkWidget *output_file_entry; GtkWidget *first_row_header_check_button; GtkWidget *check_buttons[CONTACTS_NUM_COLUMNS]; /* import contacts */ GtkWidget *import_window; GtkWidget *import_sel_window; GtkWidget *import_button; GtkWidget *value_labels[CONTACTS_NUM_COLUMNS]; GtkWidget *field_type_comboboxes[CONTACTS_NUM_COLUMNS]; GtkWidget *first_row_as_header_check_button; GtkWidget *current_record_spinbutton; GtkAdjustment *current_record_spinbutton_adj; GtkWidget *n_records_label; gint field_type[CONTACTS_NUM_COLUMNS]; guint max_fields; gchar *file_buffer; gsize file_length; PangoFontDescription *fd_ai_font; #ifdef HAVE_LIBWEBKIT WebKitWebView *html_webkitview; #endif /* LIBWEBKIT */ GtkWidget *input_file_entry; GtkWidget *import_type_combobox; GtkWidget *bluetooth_radiobutton; GtkWidget *usb_radiobutton; GtkWidget *bluetooth_address_entry; GtkWidget *file_import_vbox; GtkWidget *import_vbox; GtkWidget *bluetooth_params_hbox; GtkWidget *usb_params_hbox; GtkWidget *bluetooth_channel_spinbutton; GtkWidget *usb_interface_spinbutton; GtkWidget *use_wbxml_checkbutton; } CONTACTS; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED typedef struct { /* notes toolbar */ GtkToolItem *edit_button; GtkToolItem *delete_button; GtkToolItem *quit_button; /* notes editor toolbar */ GtkToolbar *editor_toolbar; GtkToolItem *save_button; #ifdef HAVE_GSPELL GtkToolItem *spell_check_button; #endif /* HAVE_GSPELL */ GtkToolItem *bold_button; GtkToolItem *italic_button; GtkToolItem *highlight_button; GtkToolItem *underline_button; GtkToolItem *strikethrough_button; GtkBox *vbox; GtkWidget *vbox_selector; GtkWidget *vbox_editor; GtkWidget *scrolled_win; gboolean editor_active; /* selector */ GtkWidget *notes_list; GtkListStore *notes_list_store; GtkTreeSelection *notes_list_selection; GtkWidget *notes_find_entry; GtkWidget *notes_find_clear_button; GtkWidget *add_entry_window; GtkWidget *edit_entry_window; GtkWidget *enter_password_window; GtkWidget *add_entry_ok_button; GtkWidget *note_name_entry; GtkWidget *password_entry; GtkWidget *spassword_entry; GtkWidget *category_combobox; GtkWidget *note_normal_radiobutton; GtkWidget *remember_cursor_checkbutton; GtkTreeViewColumn *notes_columns[NOTES_NUM_COLUMNS]; gchar *filename; gboolean encrypted; #ifdef HAVE_LIBGRINGOTTS GRG_CTX context; GRG_KEY keyholder; #endif /* HAVE_LIBGRINGOTTS */ /* category filter */ GtkTreeModel *notes_filter; GtkTreeModel *notes_sort; gint filter_index; GtkWidget *cf_combobox; GtkWidget *n_items_label; /* editor */ PangoFontDescription *fd_notes_font; GtkWidget *title_label; GtkWidget *font_picker; GtkWidget *editor_textview; #ifdef HAVE_GSPELL GspellTextView *editor_spelltextview; #endif /* HAVE_GSPELL */ GtkWidget *editor_scrolledwindow; GtkWidget *ro_editor_scrolledwindow; GtkWidget *editor_viewport; GtkWidget *ro_editor_viewport; gboolean changed; gboolean find_next_flag; gboolean buffer_check_modify_enable; gboolean find_hbox_visible; gboolean note_read_only; GtkWidget *nrow_label_t; GtkWidget *nrow_label; GtkWidget *ncol_label_t; GtkWidget *ncol_label; GtkWidget *find_hbox; GtkWidget *find_entry; GtkWidget *find_case_checkbutton; GtkWidget *readonly_checkbutton; #ifdef HAVE_LIBWEBKIT WebKitWebView *html_webkitview; #endif /* LIBWEBKIT */ /* read-only: scrollbar position */ gdouble htmlViewPosition; } NOTES; #endif /* NOTES_ENABLED */ typedef struct { /* calendar */ GtkWidget *calendar_vbox; GtkWidget *event_marker_type_combobox; GtkWidget *today_marker_type_combobox; GtkWidget *background_color_picker; GtkWidget *header_bg_color_picker; GtkWidget *header_fg_color_picker; GtkWidget *weekend_color_picker; GtkWidget *day_color_picker; GtkWidget *pf_day_color_picker; GtkWidget *selection_color_picker; GtkWidget *mark_color_picker; GtkWidget *mark_current_day_color_picker; GtkWidget *birthday_mark_color_picker; GtkWidget *cft_hscale; GtkWidget *cft_label_1, *cft_label_2, *cft_label_3; GtkWidget *show_day_names_checkbutton; GtkWidget *no_month_change_checkbutton; GtkWidget *show_week_numbers_checkbutton; GtkWidget *week_start_monday_checkbutton; GtkWidget *simple_view_in_fy_calendar_checkbutton; GtkWidget *enable_auxilary_calendars_checkbutton; GtkWidget *strikethrough_past_notes_checkbutton; GtkWidget *ascending_sorting_in_day_notes_checkbutton; GtkWidget *spell_checker_in_day_notes_checkbutton; GtkWidget *enable_block_cursor_checkbutton; GtkWidget *date_header_format_entry; GtkWidget *day_marker_entry; GtkWidget *day_name_font_entry; GtkWidget *calendar_font_entry; GtkWidget *notes_font_entry; GtkWidget *calendar_category_entry; GtkListStore *calendar_category_store; GtkWidget *calendar_category_treeview; GtkTreeSelection *calendar_category_select; GtkWidget *calendar_category_add_button; GtkWidget *calendar_category_edit_button; GtkWidget *calendar_category_remove_button; GtkWidget *day_category_color_picker; GtkWidget *color_edit_window; GtkWidget *color_edit_picker; GtkWidget *color_edit_name_entry; GtkWidget *color_edit_ok_button; GtkWidget *ical_edit_window; GtkWidget *ical_edit_name_entry; GtkWidget *ical_edit_filename_entry; GtkWidget *ical_edit_disable_checkbutton; GtkWidget *ical_edit_filename_browse_button; GtkWidget *ical_edit_ok_button; GtkWidget *calendar_ical_files_add_button; GtkWidget *calendar_ical_files_edit_button; GtkWidget *calendar_ical_files_remove_button; GtkWidget *calendar_ical_files_browse_button; GtkWidget *calendar_ical_files_name_entry; GtkWidget *calendar_ical_files_filename_entry; GtkListStore *calendar_ical_files_store; GtkWidget *calendar_ical_files_treeview; GtkTreeSelection *calendar_ical_files_select; GtkWidget *di_show_current_time_checkbutton; GtkWidget *di_show_current_time_seconds_checkbutton; GtkWidget *di_show_day_number_checkbutton; GtkWidget *di_show_current_day_distance_checkbutton; GtkWidget *di_show_marked_days_checkbutton; GtkWidget *di_show_week_number_checkbutton; GtkWidget *di_show_weekend_days_checkbutton; GtkWidget *di_show_day_category_checkbutton; GtkWidget *di_show_moon_phase_checkbutton; GtkWidget *di_show_notes_checkbutton; GtkWidget *di_show_zodiac_sign_checkbutton; #ifdef TASKS_ENABLED /* tasks */ GtkWidget *tasks_vbox; GtkWidget *ti_font_entry; GtkWidget *due_today_color_picker; GtkWidget *due_7days_color_picker; GtkWidget *past_due_color_picker; GtkWidget *tasks_category_entry; GtkListStore *tasks_category_store; GtkWidget *tasks_category_treeview; GtkTreeSelection *tasks_category_select; GtkWidget *tasks_category_add_button; GtkWidget *tasks_category_remove_button; GtkWidget *ct_bold_items_checkbutton; GtkWidget *ct_delete_items_checkbutton; GtkWidget *ct_hide_items_checkbutton; GtkWidget *ct_add_item_checkbutton; GtkWidget *ct_remember_category_checkbutton; GtkWidget *vc_due_date_checkbutton; GtkWidget *vc_type_checkbutton; GtkWidget *vc_category_checkbutton; GtkWidget *vc_priority_checkbutton; GtkWidget *postpone_time_spinbutton; GtkWidget *sound_alarm_repeat_spinbutton; GtkWidget *global_notification_cmd_entry; GtkWidget *global_notification_valid_image; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* contacts */ GtkWidget *contacts_vbox; GtkWidget *contacts_hide_group_column_checkbutton; GtkWidget *contacts_group_entry; GtkListStore *contacts_group_store; GtkWidget *contacts_group_treeview; GtkWidget *cn_font_size_spinbutton; GtkWidget *ci_font_size_spinbutton; GtkTreeSelection *contacts_group_select; GtkWidget *contacts_group_add_button; GtkWidget *contacts_group_remove_button; GtkWidget *contacts_photo_size_combobox; GtkWidget *contact_tag_color_picker; GtkWidget *contact_link_color_picker; GtkWidget *vc_age_checkbutton; GtkWidget *vc_birthday_date_checkbutton; GtkWidget *vc_zodiac_sign_checkbutton; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED /* notes */ GtkWidget *notes_vbox; GtkWidget *editor_font_entry; GtkWidget *notes_enc_algorithm_combobox; GtkWidget *notes_enc_hashing_combobox; GtkWidget *notes_comp_algorithm_combobox; GtkWidget *notes_comp_ratio_combobox; GtkWidget *notes_category_entry; GtkListStore *notes_category_store; GtkWidget *notes_category_treeview; GtkTreeSelection *notes_category_select; GtkWidget *notes_category_add_button; GtkWidget *notes_category_remove_button; GtkWidget *nvc_type_checkbutton; GtkWidget *nvc_category_checkbutton; GtkWidget *nvc_last_changes_checkbutton; GtkWidget *nvc_created_checkbutton; GtkWidget *cn_remember_category_checkbutton; GtkWidget *cn_use_system_date_checkbutton; #endif /* NOTES_ENABLED */ /* general */ GtkWidget *general_vbox; GtkWidget *layout_combobox; GtkWidget *tabs_position_combobox; GtkWidget *override_locale_label_1; GtkWidget *override_locale_label_2; GtkWidget *override_locale_label_3; GtkWidget *date_format_combobox; GtkWidget *time_format_combobox; GtkWidget *entry_web_browser; GtkWidget *entry_email_client; GtkWidget *entry_sound_player; GtkWidget *entry_spell_lang; GtkWidget *enable_tooltips_checkbutton; GtkWidget *override_locale_checkbutton; GtkWidget *disable_underline_in_links_checkbutton; GtkWidget *default_stock_icons_checkbutton; GtkWidget *enable_rules_hint_checkbutton; GtkWidget *remember_latest_tab_checkbutton; GtkWidget *save_data_checkbutton; GtkWidget *enable_systray_checkbutton; GtkWidget *start_minimised_checkbutton; GtkWidget *ignore_day_note_events_checkbutton; GtkWidget *hide_calendar_checkbutton; GtkWidget *hide_tasks_checkbutton; GtkWidget *hide_contacts_checkbutton; GtkWidget *hide_notes_checkbutton; /* preferences */ GtkWidget *window; GtkWidget *notebook; GtkWidget *general; GtkWidget *calendar; GtkWidget *tasks; GtkWidget *notes; GtkWidget *contacts; } OPTIONS; typedef struct { /* gui */ GtkWidget *main_window; GtkWidget *notebook; gboolean all_pages_added; gboolean window_visible; gint current_tab; gint number_of_tabs; /* tray icon */ GtkStatusIcon *osmo_trayicon; GtkWidget *trayicon_popup_menu; gboolean no_tray; GtkWidget *trayicon_menu_calendar_item; #ifdef TASKS_ENABLED GtkWidget *trayicon_menu_tasks_item; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED GtkWidget *trayicon_menu_contacts_item; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED GtkWidget *trayicon_menu_notes_item; #endif /* NOTES_ENABLED */ /* command line parameters */ gboolean calendar_only; gboolean check_events; gint check_ndays_events; /* links handling */ gboolean hovering_over_link; GdkCursor *hand_cursor; GdkCursor *regular_cursor; GtkTextTag *gui_url_tag; /* check events */ GtkWidget *event_checker_window; GtkWidget *event_checker_list; GtkTreeSelection *event_checker_list_selection; GtkListStore *event_checker_list_store; /* about page */ GtkWidget *about_radiobutton; GtkWidget *license_radiobutton; GtkWidget *help_radiobutton; GtkWidget *scrolled_window; GtkWidget *about_textview; GtkBox *about_vbox; gint about_counter; gint about_link_index; GSList *about_links_list; GtkTextIter about_entry_iter; GtkTextBuffer *about_entry_buffer; /* miscellaneous */ guint32 run_date; gint key_counter; gint run_time; gint save_status; gchar version[7]; guint timer; #ifdef HAVE_LIBWEBKIT gchar *stylesheet; #endif /* HAVE_LIBWEBKIT */ /* print */ gint print_font_size; gint print_nlines; gint print_npages; gint print_lines_per_page; /* modules */ CALENDAR *cal; #ifdef TASKS_ENABLED TASKS *tsk; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED CONTACTS *cnt; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED NOTES *nte; #endif /* NOTES_ENABLED */ OPTIONS *opt; } GUI; typedef struct { gpointer *data; GUI *appGUI; } MESSAGE; gboolean gui_create_window (GUI *appGUI); void gui_add_to_notebook (GtkWidget *widget, gchar *text, GUI *appGUI); void gui_save_all_data (GUI *appGUI); void gui_save_data_and_run_command (gchar *command, GUI *appGUI); void gui_quit_osmo (GUI *appGUI); void gui_quit_osmo_cb (GtkToolButton *toolbutton, gpointer data); void gui_show_about_window_cb (GtkToolButton *toolbutton, gpointer data); void gui_systray_initialize (GUI *appGUI); void gui_systray_update_icon (GUI *appGUI); void gui_systray_tooltip_update (GUI *appGUI); GtkToolItem *gui_create_toolbar_button (GUI *appGUI, const gchar *icon_name, const gchar *label, void(*click_callback) (GtkToolButton *, gpointer)); GtkToolItem *gui_create_toolbar_toggle_button(GUI *appGUI, const gchar *icon_name, const gchar *label, void(*toggle_callback) (GtkToggleToolButton *, gpointer)); void gui_append_toolbar_spring (GtkToolbar *toolbar); #endif /* _GUI_H */ osmo-0.4.2/src/notes.c0000664000175000017500000024270613161167413011516 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "about.h" #include "backup.h" #include "notes.h" #include "i18n.h" #include "calendar.h" #include "calendar_notes.h" #include "options_prefs.h" #include "preferences_gui.h" #include "notes_items.h" #include "calendar_utils.h" #include "utils.h" #include "utils_date.h" #include "utils_date_time.h" #include "utils_gui.h" #include "stock_icons.h" #include "gtksourceiter.h" #ifdef NOTES_ENABLED #ifdef HAVE_LIBGRINGOTTS #include #endif /* HAVE_LIBGRINGOTTS */ /*============================================================================*/ static void show_preferences_window_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; appGUI->opt->window = opt_create_preferences_window(appGUI); gtk_widget_show(appGUI->opt->window); gint page = gtk_notebook_page_num(GTK_NOTEBOOK(appGUI->opt->notebook), appGUI->opt->notes); gtk_notebook_set_current_page(GTK_NOTEBOOK(appGUI->opt->notebook), page); } /*------------------------------------------------------------------------------*/ void notes_show_selector_editor (gint mode, GUI *appGUI) { GtkTextBuffer *buffer; GtkTextMark *cursor; GtkTextIter iter; GtkTreeIter n_iter; GtkTreePath *path, *sort_path, *filter_path; gchar *name, *fontname; gint line; gboolean remember_cursor, readonly = FALSE; gchar tmpbuf[BUFFER_SIZE]; if (mode == SELECTOR) { gtk_widget_show (appGUI->nte->vbox_selector); gtk_widget_hide (appGUI->nte->vbox_editor); gtk_widget_grab_focus (appGUI->nte->notes_find_entry); appGUI->nte->editor_active = FALSE; } else if (mode == EDITOR) { appGUI->nte->htmlViewPosition = 0; gtk_widget_hide (appGUI->nte->find_hbox); gtk_widget_hide (appGUI->nte->vbox_selector); gtk_widget_show (appGUI->nte->vbox_editor); gtk_entry_set_text(GTK_ENTRY(appGUI->nte->find_entry), ""); gtk_widget_grab_focus (appGUI->nte->editor_textview); appGUI->nte->editor_active = TRUE; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->nte->notes_list), &sort_path, NULL); if (sort_path == NULL) return; filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->nte->notes_sort), sort_path); gtk_tree_path_free (sort_path); if (filter_path == NULL) return; path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), filter_path); gtk_tree_path_free (filter_path); gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &n_iter, path); gtk_tree_model_get (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &n_iter, N_COLUMN_NAME, &name, N_COLUMN_EDITOR_LINE, &line, N_COLUMN_REMEMBER_EDITOR_LINE, &remember_cursor, N_COLUMN_EDITOR_READONLY, &readonly, N_COLUMN_FONTNAME, &fontname, -1); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", name); gtk_label_set_markup (GTK_LABEL (appGUI->nte->title_label), tmpbuf); appGUI->nte->fd_notes_font = pango_font_description_from_string(fontname); gtk_widget_override_font (GTK_WIDGET(appGUI->nte->editor_textview), appGUI->nte->fd_notes_font); gtk_font_button_set_font_name (GTK_FONT_BUTTON(appGUI->nte->font_picker), fontname); g_free(name); g_free(fontname); gtk_tree_path_free (path); /* restore cursor position */ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); if (remember_cursor == TRUE) { gtk_text_buffer_get_iter_at_line (GTK_TEXT_BUFFER (buffer), &iter, line); gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER (buffer), &iter); cursor = gtk_text_buffer_get_mark (buffer, "insert"); gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (appGUI->nte->editor_textview), cursor, 0.0, TRUE, 0.0, 0.0); } else { gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (buffer), &iter); gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER (buffer), &iter); gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (appGUI->nte->editor_textview), &iter, 0.0, FALSE, 0.0, 0.0); } /* read-only */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->nte->readonly_checkbutton), readonly); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->nte->editor_textview), !readonly); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->nte->editor_textview), !readonly); gtk_widget_set_sensitive (appGUI->nte->font_picker, !readonly); appGUI->nte->note_read_only = readonly; #ifdef HAVE_LIBWEBKIT update_readonly_view (appGUI); #endif /* HAVE_LIBWEBKIT */ } } /*------------------------------------------------------------------------------*/ void editor_save_buffer_cb (GtkToolButton *toolbutton, gpointer data) { GtkTextBuffer *buffer; guchar *text; guint32 current_date; gint current_time; GtkTreeIter iter, filter_iter, sort_iter; GtkTreeModel *model; GUI *appGUI = (GUI *)data; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); text = (unsigned char*) utl_gui_text_buffer_get_text_with_tags (buffer); if (appGUI->nte->encrypted == TRUE) { #ifdef HAVE_LIBGRINGOTTS if (appGUI->nte->keyholder != NULL && appGUI->nte->context != NULL && appGUI->nte->filename != NULL) { grg_encrypt_file (appGUI->nte->context, appGUI->nte->keyholder, (unsigned char*) notes_get_full_filename(appGUI->nte->filename, appGUI), (guchar *) text, -1); grg_free (appGUI->nte->context, text, -1); } #endif /* HAVE_LIBGRINGOTTS */ } else { g_file_set_contents (notes_get_full_filename(appGUI->nte->filename, appGUI), (gchar *) text, strlen((gchar *) text), NULL); } appGUI->nte->changed = FALSE; gtk_widget_set_sensitive (GTK_WIDGET(appGUI->nte->save_button), FALSE); sort_iter = utl_gui_get_first_selection_iter(appGUI->nte->notes_list_selection, &model); gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->nte->notes_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), &iter, &filter_iter); current_date = utl_date_get_current_julian(); current_time = utl_time_get_current_seconds(); gtk_list_store_set(appGUI->nte->notes_list_store, &iter, N_COLUMN_LAST_CHANGES_DATE, get_date_time_str(current_date, current_time), N_COLUMN_LAST_CHANGES_DATE_JULIAN, current_date, N_COLUMN_LAST_CHANGES_TIME, current_time, -1); } /*------------------------------------------------------------------------------*/ void editor_find_text_show_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; gtk_widget_show (appGUI->nte->find_hbox); gtk_widget_grab_focus (appGUI->nte->find_entry); appGUI->nte->find_hbox_visible = TRUE; } /*------------------------------------------------------------------------------*/ void editor_find_text_hide_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; utl_gui_change_bg_widget_state (appGUI->nte->find_entry, NULL, appGUI); gtk_widget_hide (appGUI->nte->find_hbox); gtk_widget_grab_focus (appGUI->nte->editor_textview); appGUI->nte->find_hbox_visible = FALSE; } /*------------------------------------------------------------------------------*/ void editor_close_cb (GtkToolButton *toolbutton, gpointer data) { GtkTextBuffer *buffer; GtkTextIter iter_s, iter_e, l_iter; GtkTreeIter n_iter; GtkTreePath *path, *sort_path, *filter_path; gint response, line; GtkTextMark *cursor; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; if (appGUI->nte->changed == TRUE) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("The note has changed."), _("Do you want to save it?")); response = utl_gui_create_dialog (GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->main_window)); if (response == GTK_RESPONSE_YES) { editor_save_buffer_cb (NULL, appGUI); } else if (response != GTK_RESPONSE_NO) { return; } } #ifdef HAVE_GSPELL gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (appGUI->nte->spell_check_button), FALSE); #endif /* HAVE_GSPELL */ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); #ifdef HAVE_LIBGRINGOTTS if (appGUI->nte->keyholder != NULL && appGUI->nte->context != NULL) { GtkClipboard *clipboard; grg_key_free (appGUI->nte->context, appGUI->nte->keyholder); appGUI->nte->keyholder = NULL; grg_context_free (appGUI->nte->context); appGUI->nte->context = NULL; /* clear clipboards for encrypted notes */ clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); gtk_clipboard_clear(clipboard); gtk_clipboard_set_text(clipboard, "", 0); clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); gtk_clipboard_clear(clipboard); gtk_clipboard_set_text(clipboard, "", 0); } #endif /* HAVE_LIBGRINGOTTS */ if (appGUI->nte->filename != NULL) { g_free(appGUI->nte->filename); appGUI->nte->filename = NULL; } cursor = gtk_text_buffer_get_mark (buffer, "insert"); gtk_text_buffer_get_iter_at_mark (buffer, &l_iter, cursor); line = gtk_text_iter_get_line (&l_iter); gtk_text_buffer_get_bounds(buffer, &iter_s, &iter_e); gtk_text_buffer_delete(buffer, &iter_s, &iter_e); appGUI->nte->buffer_check_modify_enable = FALSE; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->nte->notes_list), &sort_path, NULL); if (sort_path == NULL) return; filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->nte->notes_sort), sort_path); gtk_tree_path_free (sort_path); if (filter_path == NULL) return; path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), filter_path); gtk_tree_path_free (filter_path); gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &n_iter, path); gtk_list_store_set (appGUI->nte->notes_list_store, &n_iter, N_COLUMN_EDITOR_LINE, line, N_COLUMN_EDITOR_READONLY, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->nte->readonly_checkbutton)), N_COLUMN_FONTNAME, gtk_font_button_get_font_name (GTK_FONT_BUTTON(appGUI->nte->font_picker)), -1); gtk_tree_path_free (path); notes_show_selector_editor (SELECTOR, appGUI); gtk_widget_grab_focus (appGUI->nte->notes_list); } /*------------------------------------------------------------------------------*/ static void set_text_attribute_cb (GtkToolButton *toolbutton, gpointer data) { GtkTextBuffer *buffer; gchar *tagname; GUI *appGUI = (GUI *)data; tagname = (gchar*) g_object_get_data (G_OBJECT (toolbutton), "tag"); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); utl_gui_text_buffer_toggle_tags (buffer, tagname); g_signal_emit_by_name(G_OBJECT(buffer), "changed"); } /*------------------------------------------------------------------------------*/ void clear_text_attributes_cb (GtkToolButton *toolbutton, gpointer data) { GtkTextIter start, end; GtkTextBuffer *buffer; GUI *appGUI = (GUI *)data; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); } /*------------------------------------------------------------------------------*/ void open_url_links_cb (GtkToolButton *toolbutton, gpointer data) { GtkTextIter start, end; GtkTextBuffer *buffer; GtkWidget *info_dialog; gchar *text; gint n, m, response = -1; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); gtk_text_buffer_get_selection_bounds (buffer, &start, &end); text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &start, &end, FALSE); n = utl_open_count_url_links (text, TRUE); if (n == 0) { utl_gui_create_dialog (GTK_MESSAGE_INFO, _("No URLs found in the selection..."), GTK_WINDOW(appGUI->main_window)); } else if (n == 1) { utl_open_count_url_links (text, FALSE); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%d %s\n\n%s", n, _("URLs will be opened in the default browser."), _("Do you want to continue?")); info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW(appGUI->main_window), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, tmpbuf, NULL); gtk_window_set_title(GTK_WINDOW(info_dialog), _("Question")); gtk_window_set_position(GTK_WINDOW(info_dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_widget_show (info_dialog); response = gtk_dialog_run(GTK_DIALOG(info_dialog)); gtk_widget_destroy(info_dialog); if (response == GTK_RESPONSE_YES) { m = utl_open_count_url_links (text, FALSE); if (n != m) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s\n\n(%d / %d %s)", _("Too many links selected!"), m, n, _("links opened")); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW(appGUI->main_window)); } } } } /*------------------------------------------------------------------------------*/ static void notes_add_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; notes_add_entry (appGUI); } /*------------------------------------------------------------------------------*/ static void notes_edit_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; notes_edit_dialog_show(appGUI->nte->notes_list, appGUI->nte->notes_filter, appGUI); } /*------------------------------------------------------------------------------*/ static void notes_delete_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; notes_remove_dialog_show(appGUI); } /*------------------------------------------------------------------------------*/ void insert_current_date_and_time_cb (GtkToolButton *toolbutton, gpointer data) { time_t tmm; gchar *datestr; GUI *appGUI = (GUI *)data; if (config.use_system_date_in_notes == TRUE) { tmm = time (NULL); gtk_text_buffer_insert_at_cursor (gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)), asctime (localtime (&tmm)), -1); } else { datestr = utl_date_time_print_default (utl_date_get_current_julian (), utl_time_get_current_seconds (), FALSE); gtk_text_buffer_insert_at_cursor (gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)), datestr, -1); g_free (datestr); } } /*------------------------------------------------------------------------------*/ void insert_separator_cb (GtkToolButton *toolbutton, gpointer data) { gint chars, i; gchar tmpbuf[BUFFER_SIZE]; PangoLayout *layout; PangoRectangle logical_rect; GtkWidget *vscrollbar; GUI *appGUI = (GUI *)data; memset (tmpbuf, 0, BUFFER_SIZE); tmpbuf[0] = config.text_separator; layout = gtk_widget_create_pango_layout (appGUI->nte->editor_textview, NULL); pango_layout_set_font_description (layout, appGUI->nte->fd_notes_font); pango_layout_set_text (layout, tmpbuf, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (appGUI->nte->editor_scrolledwindow)); if (gtk_widget_get_visible(vscrollbar) == TRUE) { chars = (gtk_widget_get_allocated_width(appGUI->nte->editor_textview)) / logical_rect.width; } else { chars = (gtk_widget_get_allocated_width(appGUI->nte->editor_textview) - utl_gui_get_sw_vscrollbar_width (appGUI->nte->editor_scrolledwindow)) / logical_rect.width; } chars = (chars > BUFFER_SIZE) ? BUFFER_SIZE - 2 : chars - 2; g_object_unref (G_OBJECT(layout)); i = 0; tmpbuf[i++] = '\n'; while (i < chars) tmpbuf[i++] = config.text_separator; tmpbuf[i++] = '\n'; gtk_text_buffer_insert_at_cursor (gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)), tmpbuf, -1); } /*------------------------------------------------------------------------------*/ gchar * get_buffer_info_string (GtkTextBuffer *buffer, gboolean selection) { GtkTextIter start_iter, end_iter; gchar tmpbuf[BUFFER_SIZE]; gchar *text; PangoLogAttr *attrs; gint i, words, lines, chars, white_chars, bytes; if (selection == TRUE && gtk_text_buffer_get_has_selection (buffer) == FALSE) return g_strdup(""); if (selection == TRUE && gtk_text_buffer_get_has_selection (buffer) == TRUE) { gtk_text_buffer_get_selection_bounds (buffer, &start_iter, &end_iter); } else { gtk_text_buffer_get_start_iter (buffer, &start_iter); gtk_text_buffer_get_end_iter (buffer, &end_iter); } text = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &start_iter, &end_iter, FALSE); if (text == NULL) return g_strdup(""); words = 0; white_chars = 0; lines = gtk_text_buffer_get_line_count (buffer); bytes = strlen (text); chars = g_utf8_strlen (text, -1); attrs = g_new0 (PangoLogAttr, chars + 1); /* based on code by Paolo Maggi */ pango_get_log_attrs (text, -1, 0, pango_language_from_string ("C"), attrs, chars + 1); for (i=0; i < chars; i++) { if (attrs[i].is_white) white_chars++; if (attrs[i].is_word_start) words++; } if (chars == 0) lines = 0; g_snprintf (tmpbuf, BUFFER_SIZE, "%s: %d\n%s: %d\n%s: %d\n%s: %d\n%s: %d\n", _("Words"), words, _("Lines"), lines, _("Characters"), chars, _("White characters"), white_chars, _("Bytes"), bytes); g_free (text); g_free (attrs); return g_strdup(tmpbuf); } /*------------------------------------------------------------------------------*/ void text_info_cb (GtkToolButton *toolbutton, gpointer data) { GtkTreePath *path, *sort_path, *filter_path; GtkTreeIter n_iter; GtkTextBuffer *buffer; guint32 modified_date, created_date; gint modified_time, created_time; gchar *modified_date_str, *created_date_str, *date_str, *day_str; gchar *txtinfo_normal, *txtinfo_selection; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->nte->notes_list), &sort_path, NULL); if (sort_path == NULL) return; filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->nte->notes_sort), sort_path); gtk_tree_path_free (sort_path); if (filter_path == NULL) return; path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), filter_path); gtk_tree_path_free (filter_path); gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &n_iter, path); gtk_tree_model_get (GTK_TREE_MODEL(appGUI->nte->notes_list_store), &n_iter, N_COLUMN_LAST_CHANGES_DATE_JULIAN, &modified_date, N_COLUMN_LAST_CHANGES_TIME, &modified_time, N_COLUMN_CREATE_DATE_JULIAN, &created_date, N_COLUMN_CREATE_TIME, &created_time, -1); date_str = utl_date_time_print_default (modified_date, modified_time, FALSE); day_str = utl_date_print_j (modified_date, DATE_DAY_OF_WEEK_NAME, config.override_locale_settings); modified_date_str = g_strdup_printf ("%s (%s)", date_str, day_str); g_free (date_str); g_free (day_str); date_str = utl_date_time_print_default (created_date, created_time, FALSE); day_str = utl_date_print_j (created_date, DATE_DAY_OF_WEEK_NAME, config.override_locale_settings); created_date_str = g_strdup_printf ("%s (%s)", date_str, day_str); g_free (date_str); g_free (day_str); txtinfo_normal = get_buffer_info_string (buffer, FALSE); txtinfo_selection = get_buffer_info_string (buffer, TRUE); if (strlen(txtinfo_selection)) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n\n%s\n%s:\n\n%s\n\n%s: %s\n%s: %s", _("Document"), txtinfo_normal, _("Selection"), txtinfo_selection, _("Created"), created_date_str, _("Modified"), modified_date_str); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n\n%s\n\n%s: %s\n%s: %s", _("Document"), txtinfo_normal, _("Created"), created_date_str, _("Modified"), modified_date_str); } g_free (txtinfo_selection); g_free (txtinfo_normal); g_free (modified_date_str); g_free (created_date_str); gtk_tree_path_free (path); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW (appGUI->main_window)); } /*------------------------------------------------------------------------------*/ gint notes_list_dbclick_cb(GtkWidget * widget, GdkEventButton * event, gpointer func_data) { GUI *appGUI = (GUI *)func_data; if ((event->type==GDK_2BUTTON_PRESS) && (event->button == 1)) { if (gtk_tree_selection_count_selected_rows (appGUI->nte->notes_list_selection) == 1) { notes_enter_password (appGUI); } return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void text_buffer_modified_cb (GtkTextBuffer *textbuffer, gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->nte->buffer_check_modify_enable == FALSE) { appGUI->nte->changed = FALSE; gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->save_button), FALSE); } else { appGUI->nte->changed = TRUE; gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->save_button), TRUE); } } /*------------------------------------------------------------------------------*/ void notes_item_selected (GtkTreeSelection *selection, gpointer data) { gint selection_size; GUI *appGUI = (GUI *)data; selection_size = gtk_tree_selection_count_selected_rows (selection); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->edit_button), selection_size == 1); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->delete_button), selection_size > 0); } #ifdef HAVE_LIBWEBKIT /*------------------------------------------------------------------------------*/ static void text_found (WebKitFindController *find_controller, guint match_count, gpointer user_data) { GUI *appGUI = (GUI *)user_data; utl_gui_change_bg_widget_state (appGUI->nte->find_entry, COLOR_BG_OK, appGUI); } static void text_not_found (WebKitFindController *find_controller, gpointer user_data) { GUI *appGUI = (GUI *)user_data; utl_gui_change_bg_widget_state (appGUI->nte->find_entry, COLOR_BG_FAIL, appGUI); } #endif /* HAVE_LIBWEBKIT */ /*------------------------------------------------------------------------------*/ void find (gchar *find_text, GtkTextIter *iter, gboolean forward, GUI *appGUI) { GtkTextBuffer *buffer; GtkTextIter match_start, match_end; GtkTextMark *found_pos; gboolean flags, result; if (strlen(find_text)) { #ifdef HAVE_LIBWEBKIT if (iter == NULL) { /* webkit */ WebKitFindController *find_controller; WebKitFindOptions case_sensitive, direction; flags = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->nte->find_case_checkbutton)); case_sensitive = flags ? WEBKIT_FIND_OPTIONS_NONE : WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE; direction = forward ? WEBKIT_FIND_OPTIONS_NONE : WEBKIT_FIND_OPTIONS_BACKWARDS; find_controller = webkit_web_view_get_find_controller(appGUI->nte->html_webkitview); webkit_find_controller_search(find_controller, find_text, case_sensitive|direction, G_MAXUINT); } else { #endif /* HAVE_LIBWEBKIT */ flags = GTK_SOURCE_SEARCH_TEXT_ONLY; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->nte->find_case_checkbutton)) == FALSE) { flags |= GTK_SOURCE_SEARCH_CASE_INSENSITIVE; } buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); if (forward == TRUE) { result = gtk_source_iter_forward_search (iter, find_text, flags, &match_start, &match_end, NULL); } else { result = gtk_source_iter_backward_search (iter, find_text, flags, &match_start, &match_end, NULL); } if (result) { utl_gui_change_bg_widget_state (appGUI->nte->find_entry, COLOR_BG_OK, appGUI); gtk_text_buffer_select_range (buffer, &match_start, &match_end); if (forward == TRUE) { gtk_text_buffer_create_mark (buffer, "last_pos", &match_end, FALSE); } else { gtk_text_buffer_create_mark (buffer, "last_pos", &match_start, FALSE); } found_pos = gtk_text_buffer_create_mark (buffer, "found_pos", &match_end, FALSE); gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (appGUI->nte->editor_textview), found_pos); gtk_text_buffer_delete_mark (buffer, found_pos); appGUI->nte->find_next_flag = TRUE; } else { utl_gui_change_bg_widget_state (appGUI->nte->find_entry, COLOR_BG_FAIL, appGUI); if (gtk_text_buffer_get_mark (buffer, "last_pos") != NULL) { gtk_text_buffer_delete_mark_by_name (buffer, "last_pos"); } appGUI->nte->find_next_flag = FALSE; } } #ifdef HAVE_LIBWEBKIT } #endif /* HAVE_LIBWEBKIT */ } /*------------------------------------------------------------------------------*/ void find_entry_action (gboolean forward, GUI *appGUI) { gchar *find_text; gboolean wkflag; GtkTextBuffer *buffer; GtkTextMark *last_pos; GtkTextIter iter; find_text = g_strdup(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->find_entry))); wkflag = FALSE; #ifdef HAVE_LIBWEBKIT wkflag = TRUE; #endif /* HAVE_LIBWEBKIT */ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->nte->readonly_checkbutton)) && wkflag == TRUE) { find (find_text, NULL, forward, appGUI); } else { buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); if (appGUI->nte->find_next_flag == TRUE) { last_pos = gtk_text_buffer_get_mark (buffer, "last_pos"); if (last_pos == NULL) { appGUI->nte->find_next_flag = FALSE; g_free(find_text); return; } gtk_text_buffer_get_iter_at_mark (buffer, &iter, last_pos); find (find_text, &iter, forward, appGUI); } else { if (forward == TRUE) { gtk_text_buffer_get_start_iter (buffer, &iter); } else { gtk_text_buffer_get_end_iter (buffer, &iter); } find (find_text, &iter, forward, appGUI); } g_free(find_text); } } /*------------------------------------------------------------------------------*/ gint find_entry_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { editor_find_text_hide_cb (widget, appGUI); appGUI->nte->find_next_flag = FALSE; return TRUE; } else if (event->keyval == GDK_KEY_Return) { find_entry_action (TRUE, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void case_sensitive_toggle_cb (GtkToggleButton *togglebutton, gpointer data) { GUI *appGUI = (GUI *)data; appGUI->nte->find_next_flag = FALSE; } /*------------------------------------------------------------------------------*/ gboolean notes_category_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ void update_notes_items (GUI *appGUI) { GtkTreeIter iter; gint i; gchar tmpbuf[BUFFER_SIZE]; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->nte->notes_filter), &iter, NULL, i++)); --i; if (!i) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("no entries")); } else { g_snprintf(tmpbuf, BUFFER_SIZE, "%4d %s", i, ngettext ("entry", "entries", i)); } gtk_label_set_markup (GTK_LABEL (appGUI->nte->n_items_label), tmpbuf); } /*------------------------------------------------------------------------------*/ void refresh_notes (GUI *appGUI) { GtkTreeIter iter; gint i; guint32 last_changes_date, create_date; gint last_changes_time, create_time; gchar *last_changes_time_str, *create_time_str; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, N_COLUMN_LAST_CHANGES_DATE_JULIAN, &last_changes_date, N_COLUMN_LAST_CHANGES_TIME, &last_changes_time, N_COLUMN_CREATE_DATE_JULIAN, &create_date, N_COLUMN_CREATE_TIME, &create_time, -1); last_changes_time_str = g_strdup(get_date_time_str(last_changes_date, last_changes_time)); create_time_str = g_strdup(get_date_time_str(create_date, create_time)); gtk_list_store_set(appGUI->nte->notes_list_store, &iter, N_COLUMN_LAST_CHANGES_DATE, last_changes_time_str, N_COLUMN_CREATE_DATE, create_time_str, -1); g_free(last_changes_time_str); g_free(create_time_str); } update_notes_items(appGUI); } /*------------------------------------------------------------------------------*/ void notes_category_filter_cb (GtkComboBox *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; appGUI->nte->filter_index = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); if (appGUI->nte->filter_index != -1) { gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter)); update_notes_items (appGUI); } } /*------------------------------------------------------------------------------*/ gboolean notes_list_filter_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gchar *category; gchar *value; gboolean result; GUI *appGUI = (GUI *)data; gtk_tree_model_get(model, iter, N_COLUMN_NAME, &value, N_COLUMN_CATEGORY, &category, -1); if (appGUI->nte->filter_index && (utl_gui_list_store_get_text_index(appGUI->opt->notes_category_store, category) != appGUI->nte->filter_index)) { result = FALSE; } else if (value == NULL) { result = FALSE; } else { const gchar *text = gtk_entry_get_text(GTK_ENTRY(appGUI->nte->notes_find_entry)); if (text == NULL) { result = TRUE; } else if (!g_utf8_strlen(text, -1)) { result = TRUE; } else { result = utl_text_strcasestr(value, text); } } g_free(category); g_free(value); return result; } /*------------------------------------------------------------------------------*/ gint notes_column_sort_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { gboolean type_a, type_b; gchar *name_a, *name_b; gchar *category_a, *category_b; guint32 last_changes_date_a, last_changes_date_b, create_date_a, create_date_b; gint last_changes_time_a, last_changes_time_b, create_time_a, create_time_b; gint diff; gint sort_column = GPOINTER_TO_INT(user_data); if(iter_a == NULL || iter_b == NULL) { return 0; } switch (sort_column) { case N_COLUMN_TYPE: gtk_tree_model_get(model, iter_a, N_COLUMN_ENCRYPTED, &type_a, -1); gtk_tree_model_get(model, iter_b, N_COLUMN_ENCRYPTED, &type_b, -1); if (type_a == type_b) { diff = 0; } else { diff = type_a == TRUE ? 1 : -1; } break; case N_COLUMN_NAME: gtk_tree_model_get(model, iter_a, N_COLUMN_NAME, &name_a, -1); gtk_tree_model_get(model, iter_b, N_COLUMN_NAME, &name_b, -1); diff = utl_text_strcmp(name_a, name_b); g_free(name_a); g_free(name_b); break; case N_COLUMN_CATEGORY: gtk_tree_model_get(model, iter_a, N_COLUMN_CATEGORY, &category_a, -1); gtk_tree_model_get(model, iter_b, N_COLUMN_CATEGORY, &category_b, -1); diff = utl_text_strcmp(category_a, category_b); g_free(category_a); g_free(category_b); break; case N_COLUMN_LAST_CHANGES_DATE: gtk_tree_model_get(model, iter_a, N_COLUMN_LAST_CHANGES_DATE_JULIAN, &last_changes_date_a, N_COLUMN_LAST_CHANGES_TIME, &last_changes_time_a, -1); gtk_tree_model_get(model, iter_b, N_COLUMN_LAST_CHANGES_DATE_JULIAN, &last_changes_date_b, N_COLUMN_LAST_CHANGES_TIME, &last_changes_time_b, -1); diff = utl_date_time_compare_js(last_changes_date_a, last_changes_time_a, last_changes_date_b, last_changes_time_b); break; case N_COLUMN_CREATE_DATE: gtk_tree_model_get(model, iter_a, N_COLUMN_CREATE_DATE_JULIAN, &create_date_a, N_COLUMN_CREATE_TIME, &create_time_a, -1); gtk_tree_model_get(model, iter_b, N_COLUMN_CREATE_DATE_JULIAN, &create_date_b, N_COLUMN_CREATE_TIME, &create_time_b, -1); diff = utl_date_time_compare_js(create_date_a, create_time_a, create_date_b, create_time_b); break; default: diff = 0; } return diff; } /*------------------------------------------------------------------------------*/ void notes_sort_column_changed_cb (GtkTreeSortable *sortable, gpointer user_data) { GtkSortType sort_order; gtk_tree_sortable_get_sort_column_id(sortable, &config.notes_sorting_column, &sort_order); config.notes_sorting_order = sort_order; } /*------------------------------------------------------------------------------*/ #ifdef HAVE_GSPELL static void notes_spell_check_cb(GtkToggleToolButton *toggle_tool_button, gpointer data) { GUI *appGUI = (GUI *) data; gboolean enable_spellcheck = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(toggle_tool_button)); utl_gui_set_enable_spell_check(appGUI->nte->editor_spelltextview, enable_spellcheck); } #endif /* HAVE_GSPELL */ /*------------------------------------------------------------------------------*/ void store_note_columns_info (GUI *appGUI) { gint n; config.notes_column_idx_0 = utl_gui_get_column_position (appGUI->nte->notes_columns[N_COLUMN_TYPE], GTK_TREE_VIEW(appGUI->nte->notes_list), MAX_VISIBLE_NOTE_COLUMNS, appGUI); config.notes_column_idx_1 = utl_gui_get_column_position (appGUI->nte->notes_columns[N_COLUMN_NAME], GTK_TREE_VIEW(appGUI->nte->notes_list), MAX_VISIBLE_NOTE_COLUMNS, appGUI); config.notes_column_idx_2 = utl_gui_get_column_position (appGUI->nte->notes_columns[N_COLUMN_CATEGORY], GTK_TREE_VIEW(appGUI->nte->notes_list), MAX_VISIBLE_NOTE_COLUMNS, appGUI); config.notes_column_idx_3 = utl_gui_get_column_position (appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE], GTK_TREE_VIEW(appGUI->nte->notes_list), MAX_VISIBLE_NOTE_COLUMNS, appGUI); config.notes_column_idx_4 = utl_gui_get_column_position (appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE], GTK_TREE_VIEW(appGUI->nte->notes_list), MAX_VISIBLE_NOTE_COLUMNS, appGUI); n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 0)); if (n > 1) { config.notes_column_idx_0_width = n; } n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 1)); if (n > 1) { config.notes_column_idx_1_width = n; } n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 2)); if (n > 1) { config.notes_column_idx_2_width = n; } n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 3)); if (n > 1) { config.notes_column_idx_3_width = n; } n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 4)); if (n > 1) { config.notes_column_idx_4_width = n; } } /*------------------------------------------------------------------------------*/ void set_note_columns_width (GUI *appGUI) { GtkTreeViewColumn *col; gint w; w = 2 * utl_gui_get_sw_vscrollbar_width (appGUI->nte->scrolled_win); col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 0); if (gtk_tree_view_column_get_visible(col) == TRUE && config.notes_column_idx_0_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.notes_column_idx_0_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 1); if (gtk_tree_view_column_get_visible(col) == TRUE && config.notes_column_idx_1_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.notes_column_idx_1_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 2); if (gtk_tree_view_column_get_visible(col) == TRUE && config.notes_column_idx_2_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.notes_column_idx_2_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 3); if (gtk_tree_view_column_get_visible(col) == TRUE && config.notes_column_idx_3_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.notes_column_idx_3_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->nte->notes_list), 4); if (gtk_tree_view_column_get_visible(col) == TRUE && config.notes_column_idx_4_width > w) { gtk_tree_view_column_set_fixed_width (col, config.notes_column_idx_4_width - w); } } /*------------------------------------------------------------------------------*/ void editor_cursor_move_cb (GtkTextBuffer *buffer, GtkTextIter *new_location, GtkTextMark *mark, gpointer user_data) { GtkTextIter iter; gint row, col, nrow, ncol; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)user_data; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->nte->readonly_checkbutton))) { return; } gtk_text_buffer_get_iter_at_mark(buffer, &iter, gtk_text_buffer_get_insert(buffer)); row = gtk_text_iter_get_line (&iter) + 1; nrow = gtk_text_buffer_get_line_count (buffer); g_snprintf(tmpbuf, BUFFER_SIZE, "%d/%d", row, nrow); gtk_label_set_markup (GTK_LABEL (appGUI->nte->nrow_label), tmpbuf); col = gtk_text_iter_get_line_offset (&iter) + 1; ncol = gtk_text_iter_get_chars_in_line (&iter); if (ncol < col) ncol = col; g_snprintf(tmpbuf, BUFFER_SIZE, "%d/%d", col, ncol); gtk_label_set_markup (GTK_LABEL (appGUI->nte->ncol_label), tmpbuf); } /*------------------------------------------------------------------------------*/ void update_readonly_view (GUI *appGUI) { gchar *output; gchar *text; GtkTextBuffer *buffer; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); text = utl_gui_text_buffer_get_text_with_tags (buffer); output = utl_text_to_html_page (text, pango_font_description_get_family (appGUI->nte->fd_notes_font), NULL, NULL, NULL, NULL, NULL); g_free(text); #ifdef HAVE_LIBWEBKIT webkit_settings_set_default_font_size (webkit_web_view_get_settings(appGUI->nte->html_webkitview), PANGO_PIXELS(pango_font_description_get_size (appGUI->nte->fd_notes_font))); webkit_web_view_load_html(appGUI->nte->html_webkitview, output, "file://"); #endif /* HAVE_LIBWEBKIT */ g_free(output); } /*------------------------------------------------------------------------------*/ void readonly_toggle_cb (GtkToggleButton *togglebutton, gpointer data) { GUI *appGUI = (GUI *)data; GtkAdjustment *vadj = NULL; gint nbtns, i; gboolean s = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->nte->readonly_checkbutton)); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->nte->editor_textview), !s); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->nte->editor_textview), !s); gtk_widget_set_sensitive (appGUI->nte->font_picker, !s); if (s == TRUE) { /* read-only */ update_readonly_view (appGUI); gtk_label_set_text(GTK_LABEL(appGUI->nte->nrow_label), "-"); gtk_label_set_text(GTK_LABEL(appGUI->nte->ncol_label), "-"); #ifdef HAVE_LIBWEBKIT gtk_widget_hide(appGUI->nte->editor_viewport); gtk_widget_show(appGUI->nte->ro_editor_viewport); #endif /* HAVE_LIBWEBKIT */ while (gtk_events_pending ()) gtk_main_iteration (); /* FIXME: update drawing of scrolled window */ /* probably use 'size-allocate' signal later */ vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(appGUI->nte->ro_editor_scrolledwindow)); gtk_adjustment_set_value(GTK_ADJUSTMENT(vadj), appGUI->nte->htmlViewPosition); gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW(appGUI->nte->ro_editor_scrolledwindow), GTK_ADJUSTMENT(vadj)); } else { vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(appGUI->nte->ro_editor_scrolledwindow)); appGUI->nte->htmlViewPosition = gtk_adjustment_get_value(GTK_ADJUSTMENT(vadj)); #ifdef HAVE_LIBWEBKIT gtk_widget_show(appGUI->nte->editor_viewport); gtk_widget_hide(appGUI->nte->ro_editor_viewport); #endif /* HAVE_LIBWEBKIT */ editor_cursor_move_cb (gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)), NULL, NULL, appGUI); gtk_widget_grab_focus (appGUI->nte->editor_textview); } appGUI->nte->note_read_only = s; for (i = 0, nbtns = gtk_toolbar_get_n_items(appGUI->nte->editor_toolbar) - 1; i < nbtns; i++) { GtkToolItem *item = gtk_toolbar_get_nth_item(appGUI->nte->editor_toolbar, i); if (GTK_IS_TOOL_BUTTON(item) == TRUE) { gtk_widget_set_sensitive(GTK_WIDGET(item), !s); } } } /*------------------------------------------------------------------------------*/ gboolean notes_search_entry_changed_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GtkTreePath *path; GtkTreeIter iter; gint i; GUI *appGUI = (GUI *)user_data; gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter)); if(strlen(gtk_entry_get_text (GTK_ENTRY(appGUI->nte->notes_find_entry)))) { i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->nte->notes_filter), &iter, NULL, i++)); if (i-1 != 0) { path = gtk_tree_path_new_first(); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->nte->notes_list), path, NULL, FALSE); gtk_tree_path_free (path); } } } update_notes_items (appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ void nte_clear_find_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->notes_find_entry)))) { gtk_entry_set_text(GTK_ENTRY(appGUI->nte->notes_find_entry), ""); notes_search_entry_changed_cb (NULL, NULL, appGUI); } gtk_widget_grab_focus (appGUI->nte->notes_find_entry); } /*------------------------------------------------------------------------------*/ void nte_font_selected (GtkFontButton *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; pango_font_description_free(appGUI->nte->fd_notes_font); appGUI->nte->fd_notes_font = pango_font_description_from_string(gtk_font_button_get_font_name (GTK_FONT_BUTTON(widget))); gtk_widget_override_font (GTK_WIDGET(appGUI->nte->editor_textview), appGUI->nte->fd_notes_font); } /*------------------------------------------------------------------------------*/ void editor_find_backward_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; find_entry_action (FALSE, appGUI); } void editor_find_forward_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; find_entry_action (TRUE, appGUI); } /*------------------------------------------------------------------------------*/ #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) static void button_create_backup_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; backup_create (appGUI); } static void button_restore_backup_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; backup_restore (appGUI); } #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ static void fill_notes_toolbar(GtkToolbar *toolbar, GUI *appGUI) { gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_NOTES_ADD, _("New note"), notes_add_item_cb), -1); appGUI->nte->edit_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_NOTES_EDIT, _("Edit note"), notes_edit_item_cb); gtk_toolbar_insert(toolbar, appGUI->nte->edit_button, -1); gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); appGUI->nte->delete_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_NOTES_REMOVE, _("Delete note"), notes_delete_item_cb); gtk_toolbar_insert(toolbar, appGUI->nte->delete_button, -1); gui_append_toolbar_spring(toolbar); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_BACKUP, _("Backup data"), button_create_backup_cb), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_RESTORE, _("Restore data"), button_restore_backup_cb), -1); gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREFERENCES, _("Preferences"), show_preferences_window_cb), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_ABOUT, _("About"), gui_show_about_window_cb), -1); appGUI->nte->quit_button = gui_create_toolbar_button(appGUI, "application-exit", _("Quit"), gui_quit_osmo_cb); gtk_toolbar_insert(toolbar, appGUI->nte->quit_button, -1); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->edit_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->delete_button), FALSE); } /*------------------------------------------------------------------------------*/ static void fill_editor_toolbar(GtkToolbar *toolbar, GtkTextBuffer *buffer, GUI *appGUI) { appGUI->nte->save_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_SAVE, _("Save note"), editor_save_buffer_cb); gtk_toolbar_insert(toolbar, appGUI->nte->save_button, -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_FIND, _("Find"), editor_find_text_show_cb), -1); #ifdef HAVE_GSPELL appGUI->nte->spell_check_button = gui_create_toolbar_toggle_button(appGUI, OSMO_STOCK_EDITOR_SPELL_CHECKER, _("Toggle spell checker"), notes_spell_check_cb); gtk_toolbar_insert(toolbar, appGUI->nte->spell_check_button, -1); #endif /* HAVE_GSPELL */ gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); appGUI->nte->bold_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_BOLD, _("Bold"), set_text_attribute_cb); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); g_object_set_data (G_OBJECT (appGUI->nte->bold_button), "tag", "bold"); gtk_toolbar_insert(toolbar, appGUI->nte->bold_button, -1); appGUI->nte->italic_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_ITALIC, _("Italic"), set_text_attribute_cb); gtk_text_buffer_create_tag (buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); g_object_set_data (G_OBJECT (appGUI->nte->italic_button), "tag", "italic"); gtk_toolbar_insert(toolbar, appGUI->nte->italic_button, -1); appGUI->nte->underline_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_UNDERLINE, _("Underline"), set_text_attribute_cb); gtk_text_buffer_create_tag (buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data (G_OBJECT (appGUI->nte->underline_button), "tag", "underline"); gtk_toolbar_insert(toolbar, appGUI->nte->underline_button, -1); appGUI->nte->strikethrough_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_STRIKETHROUGH, _("Strikethrough"), set_text_attribute_cb); gtk_text_buffer_create_tag (buffer, "strike", "strikethrough", TRUE, NULL); g_object_set_data (G_OBJECT (appGUI->nte->strikethrough_button), "tag", "strike"); gtk_toolbar_insert(toolbar, appGUI->nte->strikethrough_button, -1); appGUI->nte->highlight_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_HIGHLIGHT, _("Highlight"), set_text_attribute_cb); gtk_text_buffer_create_tag (buffer, "mark_color", "background", "#FFFF00", NULL); g_object_set_data (G_OBJECT (appGUI->nte->highlight_button), "tag", "mark_color"); gtk_toolbar_insert(toolbar, appGUI->nte->highlight_button, -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_CLEAR, _("Clear attributes"), clear_text_attributes_cb), -1); gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_OPEN_URL, _("Open URL links"), open_url_links_cb), -1); gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_INSERT_DATE_TIME, _("Insert current date and time"), insert_current_date_and_time_cb), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_INSERT_SEPARATOR, _("Insert separator"), insert_separator_cb), -1); gtk_toolbar_insert(toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_EDITOR_INFO, _("Statistics"), text_info_cb), -1); gui_append_toolbar_spring(toolbar); gtk_toolbar_insert(toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_CLOSE, _("Close editor"), editor_close_cb), -1); } /*------------------------------------------------------------------------------*/ void gui_create_notes (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *vbox3; GtkWidget *hbox1; GtkTextBuffer *buffer; GtkToolbar *notes_toolbar; GtkCellRenderer *renderer; GtkWidget *hseparator; GtkWidget *label; GtkWidget *close_button; GtkWidget *find_backward_button; GtkWidget *find_forward_button; GtkWidget *table; gint i, n; #ifdef HAVE_LIBWEBKIT WebKitFindController *find_controller; #endif /* HAVE_LIBWEBKIT */ gchar tmpbuf[BUFFER_SIZE]; gint columns_order[MAX_VISIBLE_NOTE_COLUMNS]; gint nt_columns[MAX_VISIBLE_NOTE_COLUMNS] = { N_COLUMN_TYPE, N_COLUMN_NAME, N_COLUMN_CATEGORY, N_COLUMN_LAST_CHANGES_DATE, N_COLUMN_CREATE_DATE }; vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (vbox1); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Notes")); gui_add_to_notebook (vbox1, tmpbuf, appGUI); appGUI->nte->vbox = GTK_BOX(vbox1); if (config.hide_notes == TRUE) { gtk_widget_hide(GTK_WIDGET(appGUI->nte->vbox)); } appGUI->nte->vbox_selector = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (appGUI->nte->vbox_selector); gtk_box_pack_start (GTK_BOX(appGUI->nte->vbox), appGUI->nte->vbox_selector, TRUE, TRUE, 0); appGUI->nte->vbox_editor = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (appGUI->nte->vbox_editor); gtk_box_pack_start (GTK_BOX(appGUI->nte->vbox), appGUI->nte->vbox_editor, TRUE, TRUE, 0); /*-------------------------------------------------------------------------------------*/ notes_toolbar = GTK_TOOLBAR(gtk_toolbar_new()); gtk_box_pack_start(GTK_BOX(appGUI->nte->vbox_selector), GTK_WIDGET(notes_toolbar), FALSE, FALSE, 0); gtk_toolbar_set_style (notes_toolbar, GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(notes_toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); fill_notes_toolbar(notes_toolbar, appGUI); gtk_widget_show_all(GTK_WIDGET(notes_toolbar)); /*-------------------------------------------------------------------------------------*/ appGUI->nte->editor_toolbar = GTK_TOOLBAR(gtk_toolbar_new()); gtk_box_pack_start(GTK_BOX(appGUI->nte->vbox_editor), GTK_WIDGET(appGUI->nte->editor_toolbar), FALSE, FALSE, 0); gtk_toolbar_set_style (appGUI->nte->editor_toolbar, GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(appGUI->nte->editor_toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); /*-------------------------------------------------------------------------------------*/ /* selector */ vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_selector), vbox2, TRUE, TRUE, 0); gtk_widget_set_margin_left(GTK_WIDGET(vbox2), 8); gtk_widget_set_margin_right(GTK_WIDGET(vbox2), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(vbox2), 8); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox2), hseparator, FALSE, TRUE, 6); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox2), table, FALSE, TRUE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Category")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->nte->cf_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->nte->cf_combobox); gtk_combo_box_set_focus_on_click (GTK_COMBO_BOX (appGUI->nte->cf_combobox), FALSE); gtk_widget_set_can_focus(appGUI->nte->cf_combobox, FALSE); g_signal_connect(appGUI->nte->cf_combobox, "changed", G_CALLBACK(notes_category_filter_cb), appGUI); g_signal_connect(G_OBJECT(appGUI->nte->cf_combobox), "focus", G_CALLBACK(notes_category_combo_box_focus_cb), NULL); appGUI->nte->n_items_label = gtk_label_new (""); gtk_widget_show (appGUI->nte->n_items_label); gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->n_items_label), TRUE); if (!config.gui_layout) { /* vertical */ gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_hexpand(appGUI->nte->cf_combobox, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->nte->cf_combobox, 1, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->n_items_label, 3, 0, 1, 1); } else { gtk_grid_attach (GTK_GRID (table), label, 3, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->cf_combobox, 4, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->n_items_label, 5, 0, 1, 1); } g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Search")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_CENTER); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->nte->notes_find_entry = gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY(appGUI->nte->notes_find_entry), 128); gtk_widget_show (appGUI->nte->notes_find_entry); g_signal_connect (G_OBJECT(appGUI->nte->notes_find_entry), "key_release_event", G_CALLBACK(notes_search_entry_changed_cb), appGUI); appGUI->nte->notes_find_clear_button = gtk_button_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->nte->notes_find_clear_button); gtk_widget_set_can_focus (appGUI->nte->notes_find_clear_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->nte->notes_find_clear_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->nte->notes_find_clear_button, _("Clear")); } g_signal_connect (G_OBJECT (appGUI->nte->notes_find_clear_button), "clicked", G_CALLBACK (nte_clear_find_cb), appGUI); if (!config.gui_layout) { /* vertical */ gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->notes_find_entry, 1, 1, 4, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->notes_find_clear_button, 5, 1, 1, 1); gtk_grid_set_row_spacing (GTK_GRID (table), 4); } else { gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_widget_set_hexpand(appGUI->nte->notes_find_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->nte->notes_find_entry, 1, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), appGUI->nte->notes_find_clear_button, 2, 0, 1, 1); } hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox2), hseparator, FALSE, TRUE, 6); /*-------------------------------------------------------------------------------------*/ appGUI->nte->editor_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (appGUI->nte->editor_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (appGUI->nte->editor_viewport), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->nte->editor_viewport, TRUE, TRUE, 0); appGUI->nte->scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->nte->scrolled_win); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->nte->scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (appGUI->nte->editor_viewport), appGUI->nte->scrolled_win); appGUI->nte->notes_list_store = gtk_list_store_new(NOTES_NUM_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); appGUI->nte->notes_filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(appGUI->nte->notes_list_store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER(appGUI->nte->notes_filter), (GtkTreeModelFilterVisibleFunc)notes_list_filter_cb, appGUI, NULL); appGUI->nte->notes_sort = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(appGUI->nte->notes_filter)); appGUI->nte->notes_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->nte->notes_sort)); gtk_tree_view_set_enable_search (GTK_TREE_VIEW(appGUI->nte->notes_list), FALSE); gtk_widget_show (appGUI->nte->notes_list); gtk_widget_set_can_default (appGUI->nte->notes_list, TRUE); gtk_container_add (GTK_CONTAINER (appGUI->nte->scrolled_win), appGUI->nte->notes_list); g_signal_connect(G_OBJECT(appGUI->nte->notes_list), "button_press_event", G_CALLBACK(notes_list_dbclick_cb), appGUI); appGUI->nte->notes_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->nte->notes_list)); gtk_tree_selection_set_mode (appGUI->nte->notes_list_selection, GTK_SELECTION_MULTIPLE); g_signal_connect(G_OBJECT(appGUI->nte->notes_list_selection), "changed", G_CALLBACK(notes_item_selected), appGUI); /* create columns */ renderer = gtk_cell_renderer_pixbuf_new(); /* icon */ appGUI->nte->notes_columns[N_COLUMN_TYPE] = gtk_tree_view_column_new_with_attributes(_("Type"), renderer, "pixbuf", N_COLUMN_TYPE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_TYPE]); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_TYPE], config.nte_visible_type_column); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_TYPE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_TYPE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_TYPE]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new(); g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); appGUI->nte->notes_columns[N_COLUMN_NAME] = gtk_tree_view_column_new_with_attributes(_("Note name"), renderer, "text", N_COLUMN_NAME, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_NAME], TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_NAME]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_NAME]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_NAME]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_NAME]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_CATEGORY] = gtk_tree_view_column_new_with_attributes(_("Category"), renderer, "text", N_COLUMN_CATEGORY, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CATEGORY], config.nte_visible_category_column); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_CATEGORY]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CATEGORY]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CATEGORY]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CATEGORY]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE] = gtk_tree_view_column_new_with_attributes(_("Last changes"), renderer, "text", N_COLUMN_LAST_CHANGES_DATE, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE], config.nte_visible_last_changes_column); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE_JULIAN] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_LAST_CHANGES_DATE_JULIAN, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE_JULIAN], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE_JULIAN]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_TIME] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_LAST_CHANGES_TIME, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_TIME], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_TIME]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE] = gtk_tree_view_column_new_with_attributes(_("Created"), renderer, "text", N_COLUMN_CREATE_DATE, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE], config.nte_visible_created_column); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN(appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE_JULIAN] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_CREATE_DATE_JULIAN, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE_JULIAN], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE_JULIAN]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_CREATE_TIME] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_CREATE_TIME, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CREATE_TIME], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_CREATE_TIME]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_REMEMBER_EDITOR_LINE] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_REMEMBER_EDITOR_LINE, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_REMEMBER_EDITOR_LINE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_REMEMBER_EDITOR_LINE]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_EDITOR_LINE] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_EDITOR_LINE, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_EDITOR_LINE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_EDITOR_LINE]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_EDITOR_READONLY] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_EDITOR_READONLY, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_EDITOR_READONLY], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_EDITOR_READONLY]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_FILENAME] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_FILENAME, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_FILENAME], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_FILENAME]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_FONTNAME] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_FONTNAME, NULL); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_FONTNAME], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_FONTNAME]); renderer = gtk_cell_renderer_text_new(); appGUI->nte->notes_columns[N_COLUMN_ENCRYPTED] = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", N_COLUMN_ENCRYPTED, NULL); gtk_tree_view_column_set_visible(appGUI->nte->notes_columns[N_COLUMN_ENCRYPTED], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[N_COLUMN_ENCRYPTED]); /* restore columns order */ columns_order[0] = config.notes_column_idx_0; columns_order[1] = config.notes_column_idx_1; columns_order[2] = config.notes_column_idx_2; columns_order[3] = config.notes_column_idx_3; columns_order[4] = config.notes_column_idx_4; n = MAX_VISIBLE_NOTE_COLUMNS-1; while (n >= 0) { for (i = 0; i < MAX_VISIBLE_NOTE_COLUMNS; i++) { if (n == columns_order[i]) { gtk_tree_view_move_column_after(GTK_TREE_VIEW(appGUI->nte->notes_list), appGUI->nte->notes_columns[nt_columns[i]], NULL); n--; } } } set_note_columns_width (appGUI); /* configure sorting */ for (i = 0; i < MAX_VISIBLE_NOTE_COLUMNS; i++) { gtk_tree_view_column_set_sort_column_id(appGUI->nte->notes_columns[nt_columns[i]], nt_columns[i]); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(appGUI->nte->notes_sort), nt_columns[i], notes_column_sort_function, GINT_TO_POINTER(nt_columns[i]), NULL); } /* restore sorting */ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(appGUI->nte->notes_sort), config.notes_sorting_column, config.notes_sorting_order); g_signal_connect(appGUI->nte->notes_sort, "sort-column-changed", G_CALLBACK(notes_sort_column_changed_cb), appGUI); /*-------------------------------------------------------------------------------------*/ /* editor */ vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (appGUI->nte->vbox_editor), vbox3, TRUE, TRUE, 0); gtk_widget_set_margin_left(GTK_WIDGET(vbox3), 8); gtk_widget_set_margin_right(GTK_WIDGET(vbox3), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(vbox3), 8); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, TRUE, 4); appGUI->nte->title_label = gtk_label_new (""); gtk_widget_show (appGUI->nte->title_label); gtk_label_set_ellipsize (GTK_LABEL(appGUI->nte->title_label), PANGO_ELLIPSIZE_END); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->nte->title_label, FALSE, FALSE, 0); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, TRUE, 4); appGUI->nte->editor_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (appGUI->nte->editor_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (appGUI->nte->editor_viewport), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->nte->editor_viewport, TRUE, TRUE, 0); appGUI->nte->editor_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->nte->editor_scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->nte->editor_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (appGUI->nte->editor_viewport), appGUI->nte->editor_scrolledwindow); appGUI->nte->editor_textview = gtk_text_view_new (); #ifdef HAVE_GSPELL appGUI->nte->editor_spelltextview = utl_gui_create_spell_check_textview(GTK_TEXT_VIEW(appGUI->nte->editor_textview), FALSE); #endif /* HAVE_GSPELL */ gtk_widget_show (appGUI->nte->editor_textview); gtk_container_add (GTK_CONTAINER (appGUI->nte->editor_scrolledwindow), appGUI->nte->editor_textview); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->nte->editor_textview), GTK_WRAP_WORD_CHAR); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(appGUI->nte->editor_textview), 4); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(appGUI->nte->editor_textview), 8); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(appGUI->nte->editor_textview), 8); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->nte->editor_textview)); appGUI->nte->buffer_check_modify_enable = FALSE; g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (text_buffer_modified_cb), appGUI); g_signal_connect (G_OBJECT (buffer), "mark_set", G_CALLBACK(editor_cursor_move_cb), appGUI); fill_editor_toolbar(appGUI->nte->editor_toolbar, buffer, appGUI); gtk_widget_show_all(GTK_WIDGET(appGUI->nte->editor_toolbar)); /* read-only view */ #ifdef HAVE_LIBWEBKIT appGUI->nte->ro_editor_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (appGUI->nte->ro_editor_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (appGUI->nte->ro_editor_viewport), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->nte->ro_editor_viewport, TRUE, TRUE, 0); appGUI->nte->ro_editor_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->nte->ro_editor_scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->nte->ro_editor_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (appGUI->nte->ro_editor_viewport), appGUI->nte->ro_editor_scrolledwindow); appGUI->nte->html_webkitview = utl_create_webkit_web_view (appGUI); g_signal_connect (appGUI->nte->html_webkitview, "context-menu", G_CALLBACK (utl_webkit_on_menu), appGUI); g_signal_connect (appGUI->nte->html_webkitview, "navigation-policy-decision-requested", G_CALLBACK (utl_webkit_link_clicked), appGUI); find_controller = webkit_web_view_get_find_controller(appGUI->nte->html_webkitview); g_signal_connect (find_controller, "found-text", G_CALLBACK (text_found), appGUI); g_signal_connect (find_controller, "failed-to-find-text", G_CALLBACK (text_not_found), appGUI); gtk_widget_show (GTK_WIDGET(appGUI->nte->html_webkitview)); gtk_container_add (GTK_CONTAINER (appGUI->nte->ro_editor_scrolledwindow), GTK_WIDGET(appGUI->nte->html_webkitview)); gtk_widget_hide(appGUI->nte->ro_editor_viewport); #endif /* HAVE_LIBWEBKIT */ hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 1); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 2); appGUI->nte->readonly_checkbutton = gtk_check_button_new_with_mnemonic (_("Read-only")); gtk_widget_set_can_focus(appGUI->nte->readonly_checkbutton, FALSE); gtk_widget_show (appGUI->nte->readonly_checkbutton); gtk_box_pack_end (GTK_BOX (hbox1), appGUI->nte->readonly_checkbutton, FALSE, FALSE, 4); g_signal_connect (GTK_TOGGLE_BUTTON(appGUI->nte->readonly_checkbutton), "toggled", G_CALLBACK (readonly_toggle_cb), appGUI); appGUI->nte->font_picker = gtk_font_button_new (); gtk_widget_show (appGUI->nte->font_picker); gtk_widget_set_can_focus(appGUI->nte->font_picker, FALSE); g_signal_connect (GTK_FONT_BUTTON(appGUI->nte->font_picker), "font-set", G_CALLBACK (nte_font_selected), appGUI); gtk_box_pack_end (GTK_BOX (hbox1), appGUI->nte->font_picker, FALSE, FALSE, 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Line")); appGUI->nte->nrow_label_t = gtk_label_new (tmpbuf); gtk_widget_show (appGUI->nte->nrow_label_t); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->nrow_label_t, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->nrow_label_t), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", "1/1"); appGUI->nte->nrow_label = gtk_label_new (tmpbuf); gtk_widget_show (appGUI->nte->nrow_label); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->nrow_label, FALSE, FALSE, 8); gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->nrow_label), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Column")); appGUI->nte->ncol_label_t = gtk_label_new (tmpbuf); gtk_widget_show (appGUI->nte->ncol_label_t); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->ncol_label_t, FALSE, FALSE, 8); gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->ncol_label_t), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", "1/1"); appGUI->nte->ncol_label = gtk_label_new (tmpbuf); gtk_widget_show (appGUI->nte->ncol_label); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->nte->ncol_label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (appGUI->nte->ncol_label), TRUE); appGUI->nte->find_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (appGUI->nte->find_hbox); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->nte->find_hbox, FALSE, FALSE, 0); appGUI->nte->find_next_flag = FALSE; g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Find")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (appGUI->nte->find_hbox), label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->nte->find_entry = gtk_entry_new (); gtk_widget_show (appGUI->nte->find_entry); gtk_box_pack_start (GTK_BOX (appGUI->nte->find_hbox), appGUI->nte->find_entry, TRUE, TRUE, 4); g_signal_connect (G_OBJECT (appGUI->nte->find_entry), "key_press_event", G_CALLBACK (find_entry_key_press_cb), appGUI); find_backward_button = gtk_button_new_from_icon_name ("go-previous", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(find_backward_button, FALSE); gtk_button_set_relief (GTK_BUTTON(find_backward_button), GTK_RELIEF_NONE); gtk_widget_show (find_backward_button); gtk_box_pack_start (GTK_BOX (appGUI->nte->find_hbox), find_backward_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (find_backward_button), "clicked", G_CALLBACK (editor_find_backward_cb), appGUI); find_forward_button = gtk_button_new_from_icon_name ("go-next", GTK_ICON_SIZE_BUTTON); gtk_button_set_relief (GTK_BUTTON(find_forward_button), GTK_RELIEF_NONE); gtk_widget_set_can_focus(find_forward_button, FALSE); gtk_widget_show (find_forward_button); gtk_box_pack_start (GTK_BOX (appGUI->nte->find_hbox), find_forward_button, FALSE, FALSE, 1); g_signal_connect (G_OBJECT (find_forward_button), "clicked", G_CALLBACK (editor_find_forward_cb), appGUI); appGUI->nte->find_case_checkbutton = gtk_check_button_new_with_mnemonic (_("case sensitive")); gtk_widget_set_can_focus(appGUI->nte->find_case_checkbutton, FALSE); gtk_widget_show (appGUI->nte->find_case_checkbutton); gtk_box_pack_start (GTK_BOX (appGUI->nte->find_hbox), appGUI->nte->find_case_checkbutton, FALSE, FALSE, 4); g_signal_connect (GTK_TOGGLE_BUTTON(appGUI->nte->find_case_checkbutton), "toggled", G_CALLBACK (case_sensitive_toggle_cb), appGUI); close_button = gtk_button_new_from_icon_name ("window-close", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(close_button, FALSE); gtk_button_set_relief (GTK_BUTTON(close_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (close_button, _("Close find entry")); } gtk_box_pack_end (GTK_BOX (appGUI->nte->find_hbox), close_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (editor_find_text_hide_cb), appGUI); gtk_widget_hide (appGUI->nte->find_hbox); appGUI->nte->changed = FALSE; gtk_widget_set_sensitive(GTK_WIDGET(appGUI->nte->save_button), FALSE); /*-------------------------------------------------------------------------------------*/ notes_show_selector_editor (SELECTOR, appGUI); appGUI->nte->filename = NULL; #ifdef HAVE_LIBGRINGOTTS appGUI->nte->context = NULL; appGUI->nte->keyholder = NULL; #endif /* HAVE_LIBGRINGOTTS */ } /*------------------------------------------------------------------------------*/ gboolean check_if_encrypted (gchar *filename, GUI *appGUI) { gchar *contents; gboolean result = FALSE; if (g_file_get_contents (notes_get_full_filename(filename, appGUI), &contents, NULL, NULL) == TRUE) { if (contents[0] == 'O' && contents[1] == 'S' && contents[2] == 'M' && g_ascii_isalnum(contents[3])) { result = TRUE; } g_free (contents); } return result; } /*------------------------------------------------------------------------------*/ void check_notes_type (GUI *appGUI) { GtkTreeIter iter; gint i; gchar *filename; GdkPixbuf *image; gboolean encrypted; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->nte->notes_list_store), &iter, N_COLUMN_FILENAME, &filename, -1); encrypted = check_if_encrypted(filename, appGUI); if (encrypted == TRUE) { image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), OSMO_STOCK_TYPE_ENCRYPTED, 16, 0, NULL); } else { image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), OSMO_STOCK_TYPE_NORMAL, 16, 0, NULL); } g_free(filename); gtk_list_store_set(appGUI->nte->notes_list_store, &iter, N_COLUMN_TYPE, image, N_COLUMN_ENCRYPTED, encrypted, -1); g_object_unref(image); } } /*------------------------------------------------------------------------------*/ #endif /* NOTES_ENABLED */ osmo-0.4.2/src/utils.c0000664000175000017500000007473013110234475011523 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "utils.h" #include "utils_gui.h" #include "utils_time.h" #include "utils_date.h" #include "i18n.h" #include "options_prefs.h" /*------------------------------------------------------------------------------*/ gchar * utl_text_with_tags_to_html (gchar *input_text) { const gchar *html_tags[] = { "mark_color", "", "bold", "", "italic", "", "underline", "", "strike", "" }; guint n_pairs = G_N_ELEMENTS (html_tags) / 2; gchar *output = g_strdup (""); gunichar TAG_CHAR = TAG; /* Unicode chars in the Private Use Area. */ gchar tag_char_utf8[7] = {0}; gchar **tokens, *o_links_1_text, *o_links_2_text; gint count, i; g_unichar_to_utf8 (TAG_CHAR, tag_char_utf8); tokens = g_strsplit (input_text, tag_char_utf8, 0); for (count = 0; tokens[count]; count++) { if (count % 2 == 0) { /* normal text */ output = utl_strconcat (output, tokens[count], NULL); } else { if (tokens[count][0] != '/') { /* opening tag */ for (i=0; i < n_pairs; i++) { if (!strcmp(html_tags[i*2+0], tokens[count])) { output = utl_strconcat (output, html_tags[i*2+1], NULL); break; } } } else { /* closing tag */ output = utl_strconcat (output, "", NULL); } } } g_strfreev (tokens); o_links_1_text = utl_text_replace (output, REGEX_URL, "\\0"); g_free (output); o_links_2_text = utl_text_replace (o_links_1_text, REGEX_EMAIL, "\\0"); g_free (o_links_1_text); return o_links_2_text; } /*------------------------------------------------------------------------------*/ gchar * utl_inline_image_to_html (const guint8 *inline_data) { GdkPixbuf *image; gchar *output = g_strdup (""); gchar *img; gchar tmpbuf[BUFFER_SIZE]; image = gdk_pixbuf_new_from_inline (-1, inline_data, FALSE, NULL); g_snprintf (tmpbuf, BUFFER_SIZE, "width=\"%d\" height=\"%d\">", gdk_pixbuf_get_width (image), gdk_pixbuf_get_height (image)); output = utl_strconcat (output, "", "bold", "", "italic", "", "underline", "", "strike", "" }; guint n_pairs = G_N_ELEMENTS (html_tags) / 2; g_unichar_to_utf8 (TAG_CHAR, tag_char_utf8); itext = utl_text_to_html (text, FALSE, TRUE); output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); output = utl_strconcat (output, "", NULL); if (header_html != NULL) { output = utl_strconcat (output, header_html, NULL); } output = utl_strconcat (output, "", NULL); if (top_html != NULL) { output = utl_strconcat (output, top_html, NULL); } output = utl_strconcat (output, "", NULL); tokens = g_strsplit (itext, tag_char_utf8, 0); g_free (itext); for (count = 0; tokens[count]; count++) { if (count % 2 == 0) { /* normal text */ output = utl_strconcat (output, tokens[count], NULL); } else { if (tokens[count][0] != '/') { /* opening tag */ for (i=0; i < n_pairs; i++) { if (!strcmp(html_tags[i*2+0], tokens[count])) { output = utl_strconcat (output, html_tags[i*2+1], NULL); break; } } } else { /* closing tag */ output = utl_strconcat (output, "", NULL); } } } g_strfreev (tokens); output = utl_strconcat (output, "", NULL); if (bottom_html != NULL) { output = utl_strconcat (output, bottom_html, NULL); } output = utl_strconcat (output, "", NULL); o_links_1_text = utl_text_replace (output, REGEX_URL, "\\0"); g_free (output); o_links_2_text = utl_text_replace (o_links_1_text, REGEX_EMAIL, "\\0"); g_free (o_links_1_text); return o_links_2_text; } /*------------------------------------------------------------------------------*/ gchar * utl_text_to_html (const gchar *text, gboolean ignoreBR, /* ignore line breaks */ gboolean ignoreSP /* ignore spaces */) { const gchar *pairs[] = { "&", "&", "\"", """, "<", "<", ">", ">" }; GRegex *reg; gint i = 0; gchar *buffer = NULL, *temp = NULL; guint n_pairs = G_N_ELEMENTS (pairs) / 2; temp = g_strdup(text); for (i=0; i < n_pairs; i++) { reg = g_regex_new (pairs[i*2+0], 0, 0, NULL); buffer = g_regex_replace_literal (reg, temp, -1, 0, pairs[i*2+1], 0, NULL); g_free (temp); temp = buffer; g_regex_unref (reg); } if (ignoreBR == FALSE) { reg = g_regex_new ("\\n", 0, 0, NULL); buffer = g_regex_replace_literal (reg, temp, -1, 0, "
", 0, NULL); g_free (temp); temp = buffer; g_regex_unref (reg); } if (ignoreSP == FALSE) { reg = g_regex_new (" ", 0, 0, NULL); buffer = g_regex_replace_literal (reg, temp, -1, 0, "%20", 0, NULL); g_free (temp); temp = buffer; g_regex_unref (reg); } return temp; } /*------------------------------------------------------------------------------*/ gchar * utl_get_day_name (guint day, gboolean short_name) { static gchar buffer[BUFFER_SIZE]; GDate *tmpdate = NULL; g_return_val_if_fail (day > 0 && day <= 31, buffer); tmpdate = g_date_new_dmy (day, 1, 2007); g_return_val_if_fail (tmpdate != NULL, buffer); g_date_strftime (buffer, BUFFER_SIZE, short_name ? "%a" : "%A", tmpdate); g_date_free (tmpdate); return buffer; } /*------------------------------------------------------------------------------*/ gchar * utl_get_julian_day_name (guint32 julian) { static gchar buffer[BUFFER_SIZE]; GDate *tmpdate = NULL; buffer[0] = '\0'; g_return_val_if_fail (g_date_valid_julian (julian) == TRUE, buffer); tmpdate = g_date_new_julian (julian); g_return_val_if_fail (tmpdate != NULL, buffer); g_date_strftime (buffer, BUFFER_SIZE, "%A", tmpdate); g_date_free (tmpdate); return buffer; } /*------------------------------------------------------------------------------*/ gchar * utl_get_date_name (const GDate *date) { static gchar buffer[BUFFER_SIZE]; g_date_strftime (buffer, BUFFER_SIZE, "%e %B %Y", date); /* e.g. 1 August 1999 */ return buffer; } /*------------------------------------------------------------------------------*/ gchar * utl_get_date_name_format (const GDate *date, gchar *fmt) { static gchar buffer[BUFFER_SIZE]; g_date_strftime (buffer, BUFFER_SIZE, fmt, date); return buffer; } /*------------------------------------------------------------------------------*/ guint utl_get_weekend_days_in_month (const GDate *date) { GDate *tmpdate = NULL; guint i, day, days, weekend_days; tmpdate = g_date_new_dmy (1, g_date_get_month (date), g_date_get_year (date)); g_return_val_if_fail (tmpdate != NULL, 0); days = utl_date_get_days_in_month (tmpdate); weekend_days = 0; for (i = 1; i <= days; i++) { g_date_set_day (tmpdate, i); day = g_date_get_weekday (tmpdate); if (day == G_DATE_SATURDAY || day == G_DATE_SUNDAY) { weekend_days++; } } g_date_free (tmpdate); return weekend_days; } /*------------------------------------------------------------------------------*/ guint utl_get_weekend_days_in_month_my (guint month, guint year) { GDate *tmpdate = NULL; guint i, day, days, weekend_days; g_return_val_if_fail (g_date_valid_dmy (1, month, year) == TRUE, 0); tmpdate = g_date_new_dmy (1, month, year); g_return_val_if_fail (tmpdate != NULL, 0); days = utl_date_get_days_in_month (tmpdate); weekend_days = 0; for (i = 1; i <= days; i++) { g_date_set_day (tmpdate, i); day = g_date_get_weekday (tmpdate); if (day == G_DATE_SATURDAY || day == G_DATE_SUNDAY) { weekend_days++; } } g_date_free (tmpdate); return weekend_days; } /*------------------------------------------------------------------------------*/ guint utl_get_days_per_year (guint year) { return (g_date_is_leap_year (year) ? 366 : 365); } /*------------------------------------------------------------------------------*/ void utl_subtract_from_date (guint32 date, gint time, gint days, gint seconds, guint32 *new_date, gint *new_time) { *new_date = date - days; if (time >= 0) { *new_time = time - seconds; if (*new_time < 0) { *new_time = (*new_time) + 24 * 3600; *new_date = (*new_date) - 1; } } else { *new_time = -1; } } /*------------------------------------------------------------------------------*/ /* This routine has been taken from http://www.voidware.com/moon_phase.htm calculates the moon phase (0-7), accurate to 1 segment: 0 = > new moon, 4 => full moon. */ gint utl_calc_moon_phase (const GDate *date) { gdouble jd; gint day, month, year; gint b, c, e; utl_date_get_dmy (date, &day, &month, &year); if (month < 3) { year--; month += 12; } month++; c = 365.25 * year; e = 30.6 * month; jd = c + e + day - 694039.09; /* jd is total days elapsed */ jd /= 29.53; /* divide by the moon cycle (29.53 days) */ b = jd; /* int(jd) -> b, take integer part of jd */ jd -= b; /* subtract integer part to leave fractional part of original jd */ b = jd * 8 + 0.5; /* scale fraction from 0-8 and round by adding 0.5 */ b = b & 7; /* 0 and 8 are the same so turn 8 into 0 */ return b; } /*------------------------------------------------------------------------------*/ gchar* utl_get_moon_phase_name (gint phase) { const gchar *phase_names[] = { N_("New Moon"), N_("Waxing Crescent Moon"), N_("Quarter Moon"), N_("Waxing Gibbous Moon"), N_("Full Moon"), N_("Waning Gibbous Moon"), N_("Last Quarter Moon"), N_("Waning Crescent Moon") }; return (gchar *) gettext (phase_names[phase]); } /*------------------------------------------------------------------------------*/ void utl_name_strcat (gchar *first, gchar *second, gchar *buffer) { gchar tmpbuff[BUFFER_SIZE]; gboolean flag; buffer[0] = '\0'; g_return_if_fail (first != NULL || second != NULL); g_snprintf (tmpbuff, BUFFER_SIZE, "(%s)", _("None")); flag = FALSE; if (first != NULL) { if (strcmp (first, tmpbuff) != 0) { flag = TRUE; g_strlcpy (buffer, first, BUFFER_SIZE); } g_free (first); } if (second != NULL) { if (strcmp (second, tmpbuff) != 0) { if (flag == TRUE) { g_strlcat (buffer, " ", BUFFER_SIZE); g_strlcat (buffer, second, BUFFER_SIZE); } else { g_strlcpy (buffer, second, BUFFER_SIZE); } } g_free (second); } g_return_if_fail (strlen (buffer) > 0); } /*------------------------------------------------------------------------------*/ void utl_xml_get_int (gchar *name, gint *iname, xmlNodePtr node) { xmlChar *key; if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { key = xmlNodeGetContent (node->xmlChildrenNode); if (key != NULL) { *iname = atoi ((gchar *) key); xmlFree (key); } } } /*------------------------------------------------------------------------------*/ void utl_xml_get_uint (gchar *name, guint *uname, xmlNodePtr node) { xmlChar *key; if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { key = xmlNodeGetContent (node->xmlChildrenNode); if (key != NULL) { *uname = (guint) atoi ((gchar *) key); xmlFree (key); } } } /*------------------------------------------------------------------------------*/ void utl_xml_get_char (gchar *name, gchar *cname, xmlNodePtr node) { xmlChar *key; if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { key = xmlNodeGetContent (node->xmlChildrenNode); if (key != NULL) { *cname = key[0]; xmlFree (key); } } } /*------------------------------------------------------------------------------*/ void utl_xml_get_str (gchar *name, gchar **sname, xmlNodePtr node) { xmlChar *key; if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { key = xmlNodeGetContent (node->xmlChildrenNode); if (key != NULL) { *sname = g_strdup ((gchar *) key); xmlFree (key); } } } /*------------------------------------------------------------------------------*/ void utl_xml_get_strn (gchar *name, gchar *sname, gint buffer_size, xmlNodePtr node) { xmlChar *key; if ((xmlStrcmp (node->name, (const xmlChar *) name)) == 0) { key = xmlNodeGetContent (node->xmlChildrenNode); if (key != NULL) { g_strlcpy (sname, (gchar *) key, buffer_size); xmlFree (key); } } } /*------------------------------------------------------------------------------*/ void utl_xml_put_int (gchar *name, gint value, xmlNodePtr node) { gchar buffer[32]; g_snprintf (buffer, 32, "%d", value); xmlNewChild (node, NULL, (const xmlChar *) name, (xmlChar *) buffer); } /*------------------------------------------------------------------------------*/ void utl_xml_put_uint (gchar *name, guint value, xmlNodePtr node) { gchar buffer[32]; g_snprintf (buffer, 32, "%d", value); xmlNewChild (node, NULL, (const xmlChar *) name, (xmlChar *) buffer); } /*------------------------------------------------------------------------------*/ void utl_xml_put_char (gchar *name, gchar character, xmlNodePtr node) { gchar buffer[32]; g_snprintf (buffer, 32, "%c", character); xmlNewTextChild (node, NULL, (const xmlChar *) name, (xmlChar *) buffer); } /*------------------------------------------------------------------------------*/ void utl_xml_put_str (gchar *name, gchar *string, xmlNodePtr node) { xmlNewTextChild (node, NULL, (const xmlChar *) name, (xmlChar *) string); } /*------------------------------------------------------------------------------*/ void utl_xml_put_strn (gchar *name, gchar *string, gint buffer_size, xmlNodePtr node) { gchar buffer[BUFFER_SIZE]; if (buffer_size > BUFFER_SIZE) buffer_size = BUFFER_SIZE; g_snprintf (buffer, buffer_size, "%s", string); xmlNewTextChild (node, NULL, (const xmlChar *) name, (xmlChar *) buffer); } /*------------------------------------------------------------------------------*/ void utl_xml_write_doc(const char *filename, xmlDocPtr doc) { gchar *tmp_filename = g_strconcat(filename, ".tmp", NULL); if (xmlSaveFormatFileEnc(tmp_filename, doc, "utf-8", 1) == -1) { g_warning("Failed to write a file %s", filename); } else if (g_rename(tmp_filename, filename) == -1) { g_warning("Failed to replace the written file %s", filename); } g_free(tmp_filename); } /*------------------------------------------------------------------------------*/ gboolean utl_is_valid_command (gchar *command) { gchar *found_path; found_path = g_find_program_in_path (command); if (found_path != NULL) { g_free (found_path); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void utl_run_command (gchar *command, gboolean sync) { gchar *cmdline[4]; cmdline[0] = "sh"; cmdline[1] = "-c"; cmdline[2] = command; cmdline[3] = 0; if (sync == FALSE) { g_spawn_async (NULL, (gchar **)cmdline, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, NULL, NULL, NULL, NULL); } else { g_spawn_sync (NULL, (gchar **)cmdline, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, NULL, NULL, NULL, NULL, NULL, NULL); } } /*------------------------------------------------------------------------------*/ gboolean utl_run_helper (gchar *parameter, gint helper) { gchar command[PATH_MAX], quoted[PATH_MAX]; gboolean sync = FALSE; g_snprintf(quoted, PATH_MAX, "\"%s\"", parameter); if (helper == EMAIL) { g_snprintf(command, PATH_MAX, config.email_client, quoted); } else if (helper == WWW) { g_snprintf(command, PATH_MAX, config.web_browser, quoted); } else if (helper == SOUND) { g_snprintf(command, PATH_MAX, config.sound_player, quoted); sync = TRUE; } else { return FALSE; } utl_run_command (command, sync); return TRUE; } /*------------------------------------------------------------------------------*/ gint utl_get_link_type (gchar *link) { gint i, n, d; g_return_val_if_fail (link != NULL, UNKNOWN); for (i = n = d = 0; i < strlen (link); i++) { if (link[i] == '@') n++; if (link[i] == '.') d++; } if (!strncasecmp (link, "https://", 8) || !strncasecmp (link, "http://", 7) || !strncasecmp(link, "www", 3)) { return WWW; } else if (n == 1) { return EMAIL; } else if (n == 0 && d >= 1) { return WWW; } else { return UNKNOWN; } } /*------------------------------------------------------------------------------*/ void utl_cairo_draw (cairo_t *cr, gint stroke) { if (stroke) { cairo_set_line_width (cr, stroke); cairo_stroke (cr); } else { cairo_fill (cr); } } /*------------------------------------------------------------------------------*/ void utl_draw_rounded_rectangle (cairo_t *cr, gint x, gint y, gint w, gint h, gint a, gint s) { cairo_move_to (cr, x + a + s, y + s); cairo_line_to (cr, x + w - a - s, y + s); cairo_arc (cr, x + w - a - s, y + a + s, a, 1.5 * M_PI, 2.0 * M_PI); cairo_line_to (cr, x + w - s, y + h - a - s); cairo_arc (cr, x + w - a - s, y + h - a - s, a, 0.0 * M_PI, 0.5 * M_PI); cairo_line_to (cr, x + a + s, y + h - s); cairo_arc (cr, x + a + s, y + h - a - s, a, 0.5 * M_PI, 1.0 * M_PI); cairo_line_to (cr, x + s, y + a + s); cairo_arc (cr, x + a + s, y + a + s, a, 1.0 * M_PI, 1.5 * M_PI); } /*------------------------------------------------------------------------------*/ void utl_draw_left_arrow (cairo_t *cr, gdouble x, gdouble y, gdouble w, gdouble h, gdouble a) { cairo_move_to (cr, x, y); cairo_line_to (cr, x + w * a, y + h * 0.50); cairo_line_to (cr, x + w * a, y + h * 0.25); cairo_line_to (cr, x + w * 1, y + h * 0.25); cairo_line_to (cr, x + w * 1, y - h * 0.25); cairo_line_to (cr, x + w * a, y - h * 0.25); cairo_line_to (cr, x + w * a, y - h * 0.50); cairo_close_path (cr); } /*------------------------------------------------------------------------------*/ gpointer utl_snd_play_thread (gpointer *data) { gchar sound_filename[PATH_MAX]; gint i; g_snprintf (sound_filename, PATH_MAX, "%s%c%s%c%s", SOUNDSDIR, G_DIR_SEPARATOR, "osmo", G_DIR_SEPARATOR, "alarm.wav"); for (i=0; i < (size_t) data; i++) { utl_run_helper (sound_filename, SOUND); } return NULL; } void utl_play_alarm_sound (guint repetitions) { GThread *thread; if (repetitions == 0) return; thread = g_thread_try_new ("osmo", (GThreadFunc) utl_snd_play_thread, (gpointer) ((size_t) repetitions), NULL); if(thread) { g_thread_unref(thread); } } /*------------------------------------------------------------------------------*/ gchar* utl_add_timestamp_to_filename (gchar *filename, gchar *extension) { static gchar filename_buffer[BUFFER_SIZE]; g_snprintf (filename_buffer, BUFFER_SIZE, "%s-%4d%02d%02d%02d%02d.%s", filename, utl_date_get_current_year(), utl_date_get_current_month(), utl_date_get_current_day(), utl_time_get_current_hour(), utl_time_get_current_minute(), extension); return filename_buffer; } /*------------------------------------------------------------------------------*/ gchar * utl_strconcat (gchar *string, ...) { gchar *tmp_holder, *tmp_str; va_list arguments; va_start (arguments, string); while ((tmp_str = va_arg (arguments, gchar *)) != NULL) { tmp_holder = string; string = g_strconcat (tmp_holder, tmp_str, NULL); g_free (tmp_holder); } va_end (arguments); return string; } /*------------------------------------------------------------------------------*/ gint utl_text_strcmp (const gchar *string1, const gchar *string2) { if (string1 == NULL && string2 == NULL) { return 0; } if (string1 == NULL) { return -1; } else if (string2 == NULL) { return 1; } else { return g_utf8_collate(string1, string2); } } /*------------------------------------------------------------------------------*/ static gboolean find_substring(const gchar *haystack, const gchar *needle, gboolean case_sensitive) { gint window_len, text_len, i, diff; gchar *window_start, *window_end, *casefold1, *casefold2; window_len = g_utf8_strlen(needle, -1); if (window_len == 0) { return TRUE; } text_len = g_utf8_strlen(haystack, -1); if (text_len == 0) { return FALSE; } if(case_sensitive == TRUE) { casefold1 = g_strdup(needle); } else { casefold1 = g_utf8_casefold(needle, -1); } for (i = 0; i <= text_len - window_len; i++) { window_start = g_utf8_offset_to_pointer(haystack, i); window_end = g_utf8_offset_to_pointer(haystack, i + window_len); if(case_sensitive == TRUE) { casefold2 = g_strndup(window_start, window_end - window_start); } else { casefold2 = g_utf8_casefold(window_start, window_end - window_start); } diff = g_utf8_collate(casefold1, casefold2); g_free(casefold2); if (!diff) { g_free(casefold1); return TRUE; } } g_free(casefold1); return FALSE; } /*------------------------------------------------------------------------------*/ gboolean utl_text_strcasestr(const gchar *haystack, const gchar *needle) { return find_substring(haystack, needle, FALSE); } /*------------------------------------------------------------------------------*/ gboolean utl_text_strstr(const gchar *haystack, const gchar *needle) { return find_substring(haystack, needle, TRUE); } /*------------------------------------------------------------------------------*/ void utl_free_list (GList *list, GDestroyNotify free_func) { #if GLIB_CHECK_VERSION(2, 28, 0) g_list_free_full(list, free_func); #else GList *l; for (l = list; l; l = l->next) { free_func(l->data); } g_list_free(list); #endif } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBWEBKIT WebKitWebView * utl_create_webkit_web_view(GUI *appGUI) { WebKitSettings *settings; WebKitWebView *view; WebKitUserContentManager *manager; WebKitUserStyleSheet *stylesheet; settings = webkit_settings_new(); manager = webkit_user_content_manager_new(); if (appGUI->stylesheet) { stylesheet = webkit_user_style_sheet_new(appGUI->stylesheet, WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES, WEBKIT_USER_STYLE_LEVEL_USER, NULL, NULL); webkit_user_content_manager_add_style_sheet(manager, stylesheet); } webkit_settings_set_enable_javascript(settings, FALSE); webkit_settings_set_enable_plugins(settings, FALSE); webkit_settings_set_enable_java(settings, FALSE); view = WEBKIT_WEB_VIEW(webkit_web_view_new_with_user_content_manager(manager)); webkit_web_view_set_settings(view, settings); webkit_web_view_set_editable(view, FALSE); return view; } #endif /* HAVE_LIBWEBKIT */ /*------------------------------------------------------------------------------*/ gint /*utl_open_count_url_links (gchar *text, gint *tsize, gboolean url_count) {*/ utl_open_count_url_links (gchar *text, gboolean url_count) { GRegex *regex = NULL; GMatchInfo *match_info = NULL; gchar url_path[PATH_MAX], command[PATH_MAX]; gchar *URL = NULL, *qURL = NULL; gint k = 0, tsize; regex = g_regex_new (REGEX_URL, 0, 0, NULL); g_regex_match (regex, text, 0, &match_info); url_path[0] = '\0'; tsize = strlen(config.web_browser); while (g_match_info_matches (match_info)) { URL = g_match_info_fetch (match_info, 0); qURL = g_shell_quote (URL); if (url_count == FALSE) { if (tsize + strlen(qURL) < PATH_MAX) { tsize += strlen(qURL) + 1 /* space */; strcat (url_path, qURL); strcat (url_path, " "); k++; } } else { tsize += strlen(qURL) + 1 /* space */; k++; } g_free (qURL); g_free (URL); g_match_info_next (match_info, NULL); } if (url_count == FALSE) { g_snprintf(command, PATH_MAX, config.web_browser, url_path); utl_run_command (command, FALSE); } g_match_info_free (match_info); g_regex_unref (regex); return k; } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/calendar_ical.h0000664000175000017500000000416013066543472013131 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_ICAL_H #define _CALENDAR_ICAL_H #include "gui.h" #include "calendar_utils.h" #ifdef HAVE_LIBICAL #define ICAL_NAME "osmo_ical_files" #define ICAL_ENTRIES_FILENAME "ical_files.xml" struct ics_entry { guint32 julian; gint seconds_begin; gint seconds_end; gchar *summary; gchar *description; }; struct ics_file { gchar *filename; GSList *entries_list; }; enum { I_COLUMN_DATE = 0, I_COLUMN_DATE_JULIAN, I_COLUMN_TIME, I_COLUMN_TIME_B_SECONDS, I_COLUMN_TIME_E_SECONDS, I_COLUMN_SUMMARY, I_COLUMN_FONT_WEIGHT, ICAL_EVENTS_NUM_COLUMNS }; enum { IE_COLUMN_DATE = 0, IE_COLUMN_DATE_JULIAN, IE_COLUMN_SUMMARY, IE_COLUMN_DESCRIPTION, ICAL_EXPORT_NUM_COLUMNS }; void calendar_display_ics (GDate *date, gchar **html, GUI *appGUI); void ics_initialize_timezone (void); void ics_check_if_valid (GUI *appGUI); void ics_calendar_refresh (GUI *appGUI); gboolean ics_check_event (guint32 julian, GUI *appGUI); void ical_events_browser (GUI *appGUI); void ical_export (GUI *appGUI); void read_ical_entries (GUI *appGUI); void write_ical_entries (GUI *appGUI); #endif /* HAVE_LIBICAL */ #endif /* _CALENDAR_ICAL_H */ osmo-0.4.2/src/contacts.c0000664000175000017500000014773213161167412012206 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "about.h" #include "backup.h" #include "contacts.h" #include "i18n.h" #include "contacts_items.h" #include "utils.h" #include "utils_date.h" #include "utils_gui.h" #include "options_prefs.h" #include "preferences_gui.h" #include "stock_icons.h" #include "contacts_birthdays.h" #include "contacts_import.h" #include "contacts_export.h" #include "calendar_utils.h" #ifdef CONTACTS_ENABLED /*============================================================================*/ static void show_preferences_window_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; appGUI->opt->window = opt_create_preferences_window (appGUI); gtk_widget_show (appGUI->opt->window); gint page = gtk_notebook_page_num (GTK_NOTEBOOK (appGUI->opt->notebook), appGUI->opt->contacts); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->opt->notebook), page); } /*------------------------------------------------------------------------------*/ void set_export_active (GUI *appGUI) { GtkTreeIter iter; guint n; gboolean state; n = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->cnt->contacts_filter), &iter, NULL, n++)); state = (n == 1) ? FALSE : TRUE; gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->export_toolbar_button), state); } /*------------------------------------------------------------------------------*/ gboolean find_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ void contacts_panel_close_desc_cb (GtkWidget *widget, gpointer data) { GtkPaned *paned; gint max_position; GUI *appGUI = (GUI *)data; paned = GTK_PANED (appGUI->cnt->contacts_paned); g_object_get(paned, "max-position", &max_position, NULL); gtk_paned_set_position(paned, max_position); } /*------------------------------------------------------------------------------*/ gboolean contacts_list_filter_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { const gchar *text; gchar *value = NULL; gint i; guint32 date; gboolean result; GUI *appGUI = (GUI *)data; text = gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contacts_find_entry)); if (text == NULL) { return TRUE; } if (!g_utf8_strlen(text, -1)) { return TRUE; } if (config.find_mode == CONTACTS_FF_ALL_FIELDS) { result = FALSE; for (i = 0; i < CONTACTS_NUM_COLUMNS && !result; i++) { if (i != COLUMN_PHOTO && i != COLUMN_ID) { if (i == COLUMN_BIRTH_DAY_DATE || i == COLUMN_NAME_DAY_DATE) { gtk_tree_model_get(model, iter, i, &date, -1); if (date == 0) { value = NULL; } else { if (i == COLUMN_BIRTH_DAY_DATE) { value = g_strdup((const gchar *) julian_to_str(date, DATE_FULL, config.override_locale_settings)); } else { value = g_strdup((const gchar *) julian_to_str(date, DATE_NAME_DAY, config.override_locale_settings)); } } } else { gtk_tree_model_get(model, iter, i, &value, -1); } if (value != NULL) { result = utl_text_strcasestr(value, text); g_free(value); } } } } else { if (config.find_mode == CONTACTS_FF_FIRST_NAME) { gtk_tree_model_get(model, iter, COLUMN_FIRST_NAME, &value, -1); } else if (config.find_mode == CONTACTS_FF_LAST_NAME) { gtk_tree_model_get(model, iter, COLUMN_LAST_NAME, &value, -1); } else if (config.find_mode == CONTACTS_FF_TAGS) { gtk_tree_model_get(model, iter, COLUMN_TAGS, &value, -1); } if (value == NULL) { result = FALSE; } else { result = utl_text_strcasestr(value, text); } g_free(value); } return result; } /*------------------------------------------------------------------------------*/ void contacts_select_first_position_in_list (GUI *appGUI) { GtkTreeIter iter; GtkTreePath *path; /* set cursor at first position */ if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter) == TRUE) { path = gtk_tree_model_get_path (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), path, NULL, FALSE); gtk_tree_path_free (path); } } } /*------------------------------------------------------------------------------*/ void contacts_item_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gint selection_size; gboolean address_available = FALSE, additional_info = FALSE; guint32 date; gchar *fname, *sname, *lname, *html, *text; gchar tmpbuf[BUFFER_SIZE], htmpbuf[BUFFER_SIZE]; gint i; selection_size = gtk_tree_selection_count_selected_rows(selection); if (selection_size > 1) { gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->edit_toolbar_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->delete_toolbar_button), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->map_location_toolbar_button), FALSE); #ifdef HAVE_LIBWEBKIT webkit_web_view_load_html(appGUI->cnt->html_webkitview, "", "file://"); #endif /* LIBWEBKIT */ } else if (selection_size == 1) { gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->edit_toolbar_button), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->delete_toolbar_button), TRUE); address_available = check_address(HOME_ADDRESS, appGUI); if (address_available == FALSE) { address_available = check_address(WORK_ADDRESS, appGUI); } gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->map_location_toolbar_button), address_available); /****************************************************************/ html = g_strdup_printf( "\n\n\n" "\n\n\n\n", config.contact_item_font_size, config.contact_name_font_size, config.contact_link_color, config.contact_tag_color, config.photo_width); /****************************************************************/ iter = utl_gui_get_first_selection_iter(selection, &model); gtk_tree_model_get(model, &iter, COLUMN_FIRST_NAME, &fname, COLUMN_SECOND_NAME, &sname, COLUMN_LAST_NAME, &lname, COLUMN_PHOTO, &text, -1); if (!fname) fname = g_strdup(""); if (!sname) sname = g_strdup(""); if (!lname) lname = g_strdup(""); g_snprintf(htmpbuf, BUFFER_SIZE, "

%s %s %s

\n", fname, sname, lname); html = utl_strconcat(html, htmpbuf, NULL); g_free(fname); g_free(sname); g_free(lname); /* insert photo */ if (text != NULL) { #ifdef HAVE_LIBWEBKIT g_snprintf(htmpbuf, BUFFER_SIZE, "\"\"", text); #endif /* HAVE_LIBWEBKIT */ html = utl_strconcat(html, htmpbuf, NULL); g_free(text); } g_snprintf(htmpbuf, BUFFER_SIZE, "\n"); html = utl_strconcat(html, htmpbuf, NULL); for (i = 0; i < CONTACTS_NUM_COLUMNS; i++) { if ((i == COLUMN_ID) || (i == COLUMN_PHOTO) || (i == COLUMN_FIRST_NAME) || (i == COLUMN_SECOND_NAME) || (i == COLUMN_LAST_NAME) || (i == COLUMN_GROUP)) continue; if (i == COLUMN_BIRTH_DAY_DATE || i == COLUMN_NAME_DAY_DATE) { gtk_tree_model_get(model, &iter, i, &date, -1); if (date == 0) { text = NULL; } else { if (i == COLUMN_BIRTH_DAY_DATE) { text = g_strdup((const gchar *) julian_to_str(date, DATE_FULL, config.override_locale_settings)); } else { text = g_strdup((const gchar *) julian_to_str(date, DATE_NAME_DAY, config.override_locale_settings)); } } } else { gtk_tree_model_get(model, &iter, i, &text, -1); } if (text == NULL || !strlen(text)) continue; g_snprintf(htmpbuf, BUFFER_SIZE, ""); html = utl_strconcat(html, htmpbuf, NULL); if ((i >= COLUMN_HOME_PHONE_2 && i <= COLUMN_HOME_PHONE_4) || (i >= COLUMN_WORK_PHONE_2 && i <= COLUMN_WORK_PHONE_4) || (i >= COLUMN_CELL_PHONE_2 && i <= COLUMN_CELL_PHONE_4) || (i >= COLUMN_EMAIL_2 && i <= COLUMN_EMAIL_4) || (i >= COLUMN_WWW_2 && i <= COLUMN_WWW_4)) { tmpbuf[0] = '\0'; } else { g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(appGUI->cnt->contact_fields_tags_name[2 * i])); } if (i == COLUMN_INFO) { gchar *tmp = utl_text_to_html(text, FALSE, TRUE); if (tmp != NULL) { additional_info = TRUE; gchar *tmp2 = utl_text_replace(tmp, REGEX_URL, "\\0"); g_free(tmp); gchar *tmp3 = utl_text_replace(tmp2, REGEX_EMAIL, "\\0"); g_free(tmp2); g_snprintf(htmpbuf, BUFFER_SIZE, "
%s
\n
%s
\n", tmpbuf, tmp3); html = utl_strconcat(html, htmpbuf, NULL); g_free(tmp3); } } else { g_snprintf(htmpbuf, BUFFER_SIZE, "%s", tmpbuf); html = utl_strconcat(html, htmpbuf, NULL); } if (i == COLUMN_BLOG || (i >= COLUMN_EMAIL_1 && i <= COLUMN_EMAIL_4) || (i >= COLUMN_WWW_1 && i <= COLUMN_WWW_4)) { gchar *protocol; if (i >= COLUMN_EMAIL_1 && i <= COLUMN_EMAIL_4) { protocol = "mailto:"; } else if (!utl_text_match(text, REGEX_URI_PROTO)) { protocol = "http://"; } else { protocol = ""; } g_snprintf(htmpbuf, BUFFER_SIZE, "%s\n", protocol, text, text); html = utl_strconcat(html, htmpbuf, NULL); } else if (i != COLUMN_INFO) { g_snprintf(htmpbuf, BUFFER_SIZE, "%s\n", text); html = utl_strconcat(html, htmpbuf, NULL); } } if (additional_info == TRUE) { g_snprintf(htmpbuf, BUFFER_SIZE, "\n\n"); } else { g_snprintf(htmpbuf, BUFFER_SIZE, "\n\n\n"); } html = utl_strconcat(html, htmpbuf, NULL); #ifdef HAVE_LIBWEBKIT webkit_web_view_load_html(appGUI->cnt->html_webkitview, html, "file://"); #endif /* LIBWEBKIT */ g_free(html); } else { gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->edit_toolbar_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->delete_toolbar_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->map_location_toolbar_button), FALSE); #ifdef HAVE_LIBWEBKIT webkit_web_view_load_html(appGUI->cnt->html_webkitview, "", "file://"); #endif /* LIBWEBKIT */ } set_export_active(appGUI); } /*------------------------------------------------------------------------------*/ gboolean contacts_search_entry_changed_cb (GtkEditable *editable, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter)); set_export_active (appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ void contacts_find_type_selected_cb (GtkComboBox *widget, gpointer user_data) { GtkTreeIter iter; GtkTreePath *path; gint i; GUI *appGUI = (GUI *)user_data; config.find_mode = gtk_combo_box_get_active (widget); if(strlen(gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->contacts_find_entry)))) { gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter)); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->cnt->contacts_filter), &iter, NULL, i++)); path = gtk_tree_path_new_first(); if (path != NULL && i-1) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), path, NULL, FALSE); } gtk_tree_path_free (path); } } /*------------------------------------------------------------------------------*/ gint contacts_column_sort_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gint sort_column, GUI *appGUI) { gchar *last_name_a, *last_name_b; gchar *group_a, *group_b; gchar *first_name_a, *first_name_b; gint diff; if (iter_a == NULL || iter_b == NULL) { return 0; } switch(sort_column) { case COLUMN_GROUP: gtk_tree_model_get(model, iter_a, COLUMN_GROUP, &group_a, -1); gtk_tree_model_get(model, iter_b, COLUMN_GROUP, &group_b, -1); diff = utl_text_strcmp(group_a, group_b); g_free(group_a); g_free(group_b); break; case COLUMN_FIRST_NAME: gtk_tree_model_get(model, iter_a, COLUMN_FIRST_NAME, &first_name_a, -1); gtk_tree_model_get(model, iter_b, COLUMN_FIRST_NAME, &first_name_b, -1); diff = utl_text_strcmp(first_name_a, first_name_b); g_free(first_name_a); g_free(first_name_b); break; case COLUMN_LAST_NAME: gtk_tree_model_get(model, iter_a, COLUMN_LAST_NAME, &last_name_a, -1); gtk_tree_model_get(model, iter_b, COLUMN_LAST_NAME, &last_name_b, -1); diff = utl_text_strcmp(last_name_a, last_name_b); g_free(last_name_a); g_free(last_name_b); break; default: diff = 0; } return diff; } /*------------------------------------------------------------------------------*/ gint contacts_column_sort_by_group_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { return contacts_column_sort_function(model, iter_a, iter_b, COLUMN_GROUP, (GUI *)user_data); } /*------------------------------------------------------------------------------*/ gint contacts_column_sort_by_first_name_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { return contacts_column_sort_function(model, iter_a, iter_b, COLUMN_FIRST_NAME, (GUI *)user_data); } /*------------------------------------------------------------------------------*/ gint contacts_column_sort_by_last_name_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { return contacts_column_sort_function(model, iter_a, iter_b, COLUMN_LAST_NAME, (GUI *)user_data); } /*------------------------------------------------------------------------------*/ void contacts_sort_column_changed_cb (GtkTreeSortable *sortable, gpointer user_data) { GtkSortType sort_order; gtk_tree_sortable_get_sort_column_id(sortable, &config.contacts_sorting_column, &sort_order); config.contacts_sorting_order = sort_order; } /*------------------------------------------------------------------------------*/ static void contacts_add_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; contacts_add_edit_dialog_show (FALSE, appGUI); } /*------------------------------------------------------------------------------*/ static void contacts_edit_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; if (gtk_tree_selection_count_selected_rows (appGUI->cnt->contacts_list_selection) == 1) { contacts_add_edit_dialog_show (TRUE, appGUI); } } /*------------------------------------------------------------------------------*/ static void contacts_remove_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; contacts_remove_dialog_show(appGUI); } /*------------------------------------------------------------------------------*/ static void contacts_birthdays_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; contacts_create_birthdays_window (appGUI); } /*------------------------------------------------------------------------------*/ static void contacts_map_location_cb (GtkToolButton *toolbutton, gpointer data) { gint response = -1; GtkWidget *info_dialog = NULL; GtkWidget *hbox; GtkWidget *home_addr_radiobutton; GtkWidget *work_addr_radiobutton; GSList *hw_radiobutton_group = NULL; GUI *appGUI = (GUI *)data; if (gtk_tree_selection_count_selected_rows (appGUI->cnt->contacts_list_selection) == 1) { if (check_address (HOME_ADDRESS, appGUI) && check_address (WORK_ADDRESS, appGUI)) { GtkWidget *message_area; info_dialog = gtk_message_dialog_new (GTK_WINDOW(appGUI->main_window), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "\n%s:", _("Please select address")); gtk_window_set_title(GTK_WINDOW(info_dialog), _("Information")); gtk_widget_show (info_dialog); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); message_area = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(info_dialog)); gtk_box_pack_start (GTK_BOX(message_area), hbox, FALSE, TRUE, 2); gtk_widget_show (hbox); work_addr_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Work")); gtk_widget_show (work_addr_radiobutton); gtk_box_pack_end (GTK_BOX(hbox), work_addr_radiobutton, FALSE, TRUE, 2); gtk_radio_button_set_group (GTK_RADIO_BUTTON (work_addr_radiobutton), hw_radiobutton_group); hw_radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (work_addr_radiobutton)); home_addr_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Home")); gtk_widget_show (home_addr_radiobutton); gtk_box_pack_end (GTK_BOX(hbox), home_addr_radiobutton, FALSE, TRUE, 2); gtk_radio_button_set_group (GTK_RADIO_BUTTON (home_addr_radiobutton), hw_radiobutton_group); hw_radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (home_addr_radiobutton)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (home_addr_radiobutton), TRUE); response = gtk_dialog_run(GTK_DIALOG(info_dialog)); if (response == GTK_RESPONSE_OK) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (home_addr_radiobutton)) == TRUE) { show_contact_location_on_map (HOME_ADDRESS, appGUI); } else { show_contact_location_on_map (WORK_ADDRESS, appGUI); } } gtk_widget_destroy(info_dialog); } else { if (check_address (HOME_ADDRESS, appGUI)) { show_contact_location_on_map (HOME_ADDRESS, appGUI); } else { show_contact_location_on_map (WORK_ADDRESS, appGUI); } } } } /*------------------------------------------------------------------------------*/ static void contacts_export_items_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; contacts_create_export_window(appGUI); } /*------------------------------------------------------------------------------*/ static void contacts_import_items_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *)data; import_contacts_from_csv_file (appGUI); } /*------------------------------------------------------------------------------*/ gint contacts_list_dbclick_cb(GtkWidget * widget, GdkEventButton * event, gpointer func_data) { GUI *appGUI = (GUI *)func_data; if ((event->type==GDK_2BUTTON_PRESS) && (event->button == 1)) { contacts_edit_item_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void contacts_selection_activate (gboolean active, GUI *appGUI) { if (active == TRUE) { g_signal_connect(G_OBJECT(appGUI->cnt->contacts_list_selection), "changed", G_CALLBACK(contacts_item_selected_cb), appGUI); } else { g_signal_handlers_disconnect_by_func (G_OBJECT (appGUI->cnt->contacts_list_selection), G_CALLBACK (contacts_item_selected_cb), appGUI); } } /*------------------------------------------------------------------------------*/ void store_contact_columns_info (GUI *appGUI) { gint n; config.contacts_column_idx_0 = utl_gui_get_column_position (appGUI->cnt->contacts_columns[COLUMN_GROUP], GTK_TREE_VIEW(appGUI->cnt->contacts_list), MAX_VISIBLE_CONTACT_COLUMNS, appGUI); config.contacts_column_idx_1 = utl_gui_get_column_position (appGUI->cnt->contacts_columns[COLUMN_FIRST_NAME], GTK_TREE_VIEW(appGUI->cnt->contacts_list), MAX_VISIBLE_CONTACT_COLUMNS, appGUI); config.contacts_column_idx_2 = utl_gui_get_column_position (appGUI->cnt->contacts_columns[COLUMN_LAST_NAME], GTK_TREE_VIEW(appGUI->cnt->contacts_list), MAX_VISIBLE_CONTACT_COLUMNS, appGUI); n = gtk_tree_view_column_get_width(gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), 0)); if (n > 1) { config.contacts_column_idx_0_width = n; } n = gtk_tree_view_column_get_width(gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), 1)); if (n > 1) { config.contacts_column_idx_1_width = n; } n = gtk_tree_view_column_get_width(gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), 2)); if (n > 1) { config.contacts_column_idx_2_width = n; } } /*------------------------------------------------------------------------------*/ void set_contacts_columns_width (GUI *appGUI) { GtkTreeViewColumn *col; gint w; w = 2 * utl_gui_get_sw_vscrollbar_width (appGUI->cnt->scrolled_win); col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), COLUMN_GROUP); if (gtk_tree_view_column_get_visible(col) == TRUE && config.contacts_column_idx_0_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.contacts_column_idx_0_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), COLUMN_FIRST_NAME); if (gtk_tree_view_column_get_visible(col) == TRUE && config.contacts_column_idx_1_width > 0) { gtk_tree_view_column_set_fixed_width (col, config.contacts_column_idx_1_width); } col = gtk_tree_view_get_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), COLUMN_LAST_NAME); if (gtk_tree_view_column_get_visible(col) == TRUE && config.contacts_column_idx_2_width > w) { gtk_tree_view_column_set_fixed_width (col, config.contacts_column_idx_2_width - w); } } /*------------------------------------------------------------------------------*/ void cnt_clear_find_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contacts_find_entry)))) { gtk_entry_set_text(GTK_ENTRY(appGUI->cnt->contacts_find_entry), ""); } gtk_widget_grab_focus (appGUI->cnt->contacts_find_entry); } /*------------------------------------------------------------------------------*/ static void create_contact_fields(GUI *appGUI) { static gchar *contact_fields_tags_name[] = { N_("Group"), "group", N_("First name"), "first_name", N_("Last name"), "last_name", N_("Second name"), "second_name", N_("Nickname"), "nickname", N_("Tags"), "tags", N_("Birthday date"), "birthday_date", N_("Name day date"), "name_day_date", /*--------------------------------------------------*/ N_("Home address"), "home_address", N_("Home postcode"), "home_postcode", N_("Home city"), "home_city", N_("Home state"), "home_state", N_("Home country"), "home_country", /*--------------------------------------------------*/ N_("Organization"), "organization", N_("Department"), "department", /*--------------------------------------------------*/ N_("Work address"), "work_address", N_("Work postcode"), "work_postcode", N_("Work city"), "work_city", N_("Work state"), "work_state", N_("Work country"), "work_country", /*--------------------------------------------------*/ N_("Fax"), "work_fax", /*--------------------------------------------------*/ N_("Home phone"), "home_phone_1", N_("Home phone 2"), "home_phone_2", N_("Home phone 3"), "home_phone_3", N_("Home phone 4"), "home_phone_4", N_("Work phone"), "work_phone_1", N_("Work phone 2"), "work_phone_2", N_("Work phone 3"), "work_phone_3", N_("Work phone 4"), "work_phone_4", N_("Cell phone"), "cell_phone_1", N_("Cell phone 2"), "cell_phone_2", N_("Cell phone 3"), "cell_phone_3", N_("Cell phone 4"), "cell_phone_4", N_("E-Mail"), "email_1", N_("E-Mail 2"), "email_2", N_("E-Mail 3"), "email_3", N_("E-Mail 4"), "email_4", N_("WWW"), "www_1", N_("WWW 2"), "www_2", N_("WWW 3"), "www_3", N_("WWW 4"), "www_4", /*--------------------------------------------------*/ N_("IM Gadu-Gadu"), "im_gg", N_("IM Yahoo"), "im_yahoo", N_("IM MSN"), "im_msn", N_("IM ICQ"), "im_icq", N_("IM AOL"), "im_aol", N_("IM Jabber"), "im_jabber", N_("IM Skype"), "im_skype", N_("IM Tlen"), "im_tlen", N_("Blog"), "blog", N_("Photo"), "photo_path", N_("Additional info"), "additional_info", "ID", "id" }; appGUI->cnt->contact_fields_tags_name = contact_fields_tags_name; } /*------------------------------------------------------------------------------*/ void create_contacts_list_store(GUI* appGUI) { GType contact_columns_types[CONTACTS_NUM_COLUMNS]; gint i; for(i=0; i< CONTACTS_NUM_COLUMNS; i++) { if (i == COLUMN_BIRTH_DAY_DATE || i == COLUMN_NAME_DAY_DATE || i == COLUMN_ID) { contact_columns_types[i] = G_TYPE_UINT; } else { contact_columns_types[i] = G_TYPE_STRING; } } appGUI->cnt->contacts_list_store = gtk_list_store_newv(CONTACTS_NUM_COLUMNS, &contact_columns_types[0]); } /*------------------------------------------------------------------------------*/ #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) static void button_create_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_create(appGUI); } static void button_restore_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_restore(appGUI); } #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ void contacts_paned_position_change_cb (GObject *gobject, GParamSpec *pspec, GUI *appGUI) { config.contacts_pane_pos = gtk_paned_get_position (GTK_PANED (appGUI->cnt->contacts_paned)); } /*------------------------------------------------------------------------------*/ void gui_create_contacts(GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *vbox3; GtkWidget *hbox2; GtkWidget *frame; GtkWidget *hseparator; GtkWidget *label; GtkWidget *top_viewport; GtkWidget *bottom_viewport; GtkWidget *close_button; GtkCellRenderer *renderer[CONTACTS_NUM_COLUMNS]; gint i, n; gchar tmpbuf[BUFFER_SIZE]; gint columns_order[MAX_VISIBLE_CONTACT_COLUMNS]; gint co_columns[MAX_VISIBLE_CONTACT_COLUMNS] = { COLUMN_GROUP, COLUMN_FIRST_NAME, COLUMN_LAST_NAME }; create_contact_fields(appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 0); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Contacts")); gui_add_to_notebook (vbox1, tmpbuf, appGUI); appGUI->cnt->vbox = GTK_BOX(vbox1); if (config.hide_contacts == TRUE) { gtk_widget_hide(GTK_WIDGET(appGUI->cnt->vbox)); } /*-------------------------------------------------------------------------------------*/ appGUI->cnt->contacts_toolbar = GTK_TOOLBAR(gtk_toolbar_new()); gtk_box_pack_start(GTK_BOX(vbox1), GTK_WIDGET(appGUI->cnt->contacts_toolbar), FALSE, FALSE, 0); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_ADD, _("New contact"), contacts_add_item_cb), -1); appGUI->cnt->edit_toolbar_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_EDIT, _("Edit contact"), contacts_edit_item_cb); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, appGUI->cnt->edit_toolbar_button, -1); appGUI->cnt->delete_toolbar_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_REMOVE, _("Remove contact"), contacts_remove_item_cb); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, appGUI->cnt->delete_toolbar_button, -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_BIRTHDAYS, _("Show birthdays"), contacts_birthdays_item_cb), -1); appGUI->cnt->map_location_toolbar_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_OPEN_URL, _("Show contact location on the map"), contacts_map_location_cb); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, appGUI->cnt->map_location_toolbar_button, -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_IMPORT, _("Import contacts"), contacts_import_items_cb), -1); appGUI->cnt->export_toolbar_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_CONTACTS_EXPORT, _("Export contacts"), contacts_export_items_cb); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, appGUI->cnt->export_toolbar_button, -1); gui_append_toolbar_spring(appGUI->cnt->contacts_toolbar); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gtk_separator_tool_item_new(), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_BACKUP, _("Backup data"), button_create_backup_cb), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_RESTORE, _("Restore data"), button_restore_backup_cb), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gtk_separator_tool_item_new(), -1); #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREFERENCES, _("Preferences"), show_preferences_window_cb), -1); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_ABOUT, _("About"), gui_show_about_window_cb), -1); appGUI->cnt->quit_toolbar_button = gui_create_toolbar_button(appGUI, "application-exit", _("Quit"), gui_quit_osmo_cb); gtk_toolbar_insert(appGUI->cnt->contacts_toolbar, appGUI->cnt->quit_toolbar_button, -1); gtk_toolbar_set_style (appGUI->cnt->contacts_toolbar, GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(appGUI->cnt->contacts_toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show_all(GTK_WIDGET(appGUI->cnt->contacts_toolbar)); /*-------------------------------------------------------------------------------------*/ gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->edit_toolbar_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->cnt->delete_toolbar_button), FALSE); /******************************************************************************************/ if (!config.gui_layout) { appGUI->cnt->contacts_paned = gtk_paned_new(GTK_ORIENTATION_VERTICAL ); } else { appGUI->cnt->contacts_paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); } gtk_widget_show (appGUI->cnt->contacts_paned); gtk_box_pack_start(GTK_BOX(vbox1), appGUI->cnt->contacts_paned, TRUE, TRUE, 0); top_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (top_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (top_viewport), GTK_SHADOW_NONE); gtk_paned_pack1 (GTK_PANED (appGUI->cnt->contacts_paned), top_viewport, FALSE, TRUE); vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (top_viewport), vbox3); gtk_widget_set_margin_left (vbox3, 8); gtk_widget_set_margin_right (vbox3, 8); gtk_widget_set_margin_bottom (vbox3, 8); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, FALSE, 6); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Search")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_label_set_use_markup (GTK_LABEL(label), TRUE); gtk_box_pack_start (GTK_BOX (vbox3), label, FALSE, FALSE, 0); gtk_widget_set_valign(label, GTK_ALIGN_CENTER); gtk_widget_set_halign(label, GTK_ALIGN_START); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox3), hbox2, FALSE, TRUE, 0); appGUI->cnt->contacts_find_entry = gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY(appGUI->cnt->contacts_find_entry), 128); gtk_widget_show (appGUI->cnt->contacts_find_entry); g_signal_connect (G_OBJECT(appGUI->cnt->contacts_find_entry), "changed", G_CALLBACK(contacts_search_entry_changed_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox2), appGUI->cnt->contacts_find_entry, TRUE, TRUE, 0); appGUI->cnt->contacts_find_clear_button = gtk_button_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cnt->contacts_find_clear_button); gtk_widget_set_can_focus (appGUI->cnt->contacts_find_clear_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->cnt->contacts_find_clear_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cnt->contacts_find_clear_button, _("Clear")); } g_signal_connect (G_OBJECT (appGUI->cnt->contacts_find_clear_button), "clicked", G_CALLBACK (cnt_clear_find_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox2), appGUI->cnt->contacts_find_clear_button, FALSE, FALSE, 0); appGUI->cnt->contacts_find_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cnt->contacts_find_combobox); gtk_combo_box_set_focus_on_click (GTK_COMBO_BOX (appGUI->cnt->contacts_find_combobox), FALSE); gtk_box_pack_start (GTK_BOX (hbox2), appGUI->cnt->contacts_find_combobox, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (appGUI->cnt->contacts_find_combobox), "changed", G_CALLBACK (contacts_find_type_selected_cb), appGUI); g_signal_connect(G_OBJECT(appGUI->cnt->contacts_find_combobox), "focus", G_CALLBACK(find_combo_box_focus_cb), appGUI); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->contacts_find_combobox), NULL, _("First Name")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->contacts_find_combobox), NULL, _("Last Name")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->contacts_find_combobox), NULL, _("Tags")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->contacts_find_combobox), NULL, _("All fields")); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, FALSE, 6); appGUI->cnt->scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->cnt->scrolled_win); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->cnt->scrolled_win, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (appGUI->cnt->scrolled_win), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->cnt->scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); create_contacts_list_store(appGUI); appGUI->cnt->contacts_filter = gtk_tree_model_filter_new(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter), (GtkTreeModelFilterVisibleFunc)contacts_list_filter_cb, appGUI, NULL); appGUI->cnt->contacts_sort = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(appGUI->cnt->contacts_filter)); appGUI->cnt->contacts_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->cnt->contacts_sort)); gtk_widget_show (appGUI->cnt->contacts_list); gtk_widget_set_can_default (appGUI->cnt->contacts_list, TRUE); g_signal_connect(G_OBJECT(appGUI->cnt->contacts_list), "button_press_event", G_CALLBACK(contacts_list_dbclick_cb), appGUI); appGUI->cnt->contacts_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->cnt->contacts_list)); gtk_tree_selection_set_mode (appGUI->cnt->contacts_list_selection, GTK_SELECTION_MULTIPLE); contacts_selection_activate (TRUE, appGUI); /* columns setup */ for (i = COLUMN_GROUP; i < CONTACTS_NUM_COLUMNS; i++) { renderer[i] = gtk_cell_renderer_text_new(); appGUI->cnt->contacts_columns[i] = gtk_tree_view_column_new_with_attributes(gettext(appGUI->cnt->contact_fields_tags_name[i*2]), renderer[i], "text", i, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->cnt->contacts_list), appGUI->cnt->contacts_columns[i]); if(i != COLUMN_FIRST_NAME && i != COLUMN_LAST_NAME && i != COLUMN_GROUP) { gtk_tree_view_column_set_visible (appGUI->cnt->contacts_columns[i], FALSE); } else { if (config.hide_group_column == TRUE && i == COLUMN_GROUP) { gtk_tree_view_column_set_visible (appGUI->cnt->contacts_columns[i], FALSE); } gtk_tree_view_column_set_reorderable (appGUI->cnt->contacts_columns[i], TRUE); gtk_tree_view_column_set_resizable (appGUI->cnt->contacts_columns[i], TRUE); gtk_tree_view_column_set_sizing (appGUI->cnt->contacts_columns[i], GTK_TREE_VIEW_COLUMN_FIXED); } } gtk_container_add (GTK_CONTAINER (appGUI->cnt->scrolled_win), appGUI->cnt->contacts_list); gtk_tree_view_set_enable_search (GTK_TREE_VIEW(appGUI->cnt->contacts_list), FALSE); /* restore columns order */ columns_order[0] = config.contacts_column_idx_0; columns_order[1] = config.contacts_column_idx_1; columns_order[2] = config.contacts_column_idx_2; n = MAX_VISIBLE_CONTACT_COLUMNS-1; while (n >= 0) { for (i = 0; i < MAX_VISIBLE_CONTACT_COLUMNS; i++) { if (n == columns_order[i]) { gtk_tree_view_move_column_after(GTK_TREE_VIEW(appGUI->cnt->contacts_list), appGUI->cnt->contacts_columns[co_columns[i]], NULL); n--; } } } set_contacts_columns_width (appGUI); /* configure sorting */ for (i = 0; i < MAX_VISIBLE_CONTACT_COLUMNS; i++) { gtk_tree_view_column_set_sort_column_id (appGUI->cnt->contacts_columns[co_columns[i]], co_columns[i]); } gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (appGUI->cnt->contacts_sort), COLUMN_GROUP, contacts_column_sort_by_group_function, appGUI, NULL); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (appGUI->cnt->contacts_sort), COLUMN_FIRST_NAME, contacts_column_sort_by_first_name_function, appGUI, NULL); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (appGUI->cnt->contacts_sort), COLUMN_LAST_NAME, contacts_column_sort_by_last_name_function, appGUI, NULL); /* restore sorting */ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (appGUI->cnt->contacts_sort), config.contacts_sorting_column, config.contacts_sorting_order); g_signal_connect (appGUI->cnt->contacts_sort, "sort-column-changed", G_CALLBACK (contacts_sort_column_changed_cb), appGUI); bottom_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (bottom_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (bottom_viewport), GTK_SHADOW_NONE); gtk_paned_pack2 (GTK_PANED (appGUI->cnt->contacts_paned), bottom_viewport, TRUE, TRUE); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 0); gtk_container_add (GTK_CONTAINER (bottom_viewport), vbox2); appGUI->cnt->panel_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cnt->panel_hbox, FALSE, FALSE, 0); gtk_widget_show(appGUI->cnt->panel_hbox); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox2), frame, TRUE, TRUE, 0); gtk_widget_set_margin_left(GTK_WIDGET(frame), 8); gtk_widget_set_margin_right(GTK_WIDGET(frame), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(frame), 8); gtk_frame_set_label_align (GTK_FRAME (frame), 0.98, 0.5); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Contact details")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_frame_set_label_widget (GTK_FRAME (frame), label); if (!config.gui_layout) { close_button = gtk_button_new_from_icon_name ("window-close", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(close_button, FALSE); gtk_button_set_relief (GTK_BUTTON(close_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (close_button, _("Close contact panel")); } gtk_widget_show (close_button); gtk_box_pack_end (GTK_BOX (appGUI->cnt->panel_hbox), close_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (contacts_panel_close_desc_cb), appGUI); } appGUI->cnt->contacts_panel_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->cnt->contacts_panel_scrolledwindow); gtk_container_add (GTK_CONTAINER (frame), appGUI->cnt->contacts_panel_scrolledwindow); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (appGUI->cnt->contacts_panel_scrolledwindow), GTK_SHADOW_NONE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->cnt->contacts_panel_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); #ifdef HAVE_LIBWEBKIT appGUI->cnt->html_webkitview = utl_create_webkit_web_view(appGUI); webkit_settings_set_default_font_size (webkit_web_view_get_settings(appGUI->cnt->html_webkitview), config.contact_item_font_size); g_signal_connect (appGUI->cnt->html_webkitview, "context-menu", G_CALLBACK (utl_webkit_on_menu), appGUI); g_signal_connect (appGUI->cnt->html_webkitview, "decide-policy", G_CALLBACK (utl_webkit_link_clicked), appGUI); gtk_widget_show (GTK_WIDGET(appGUI->cnt->html_webkitview)); gtk_container_add (GTK_CONTAINER (appGUI->cnt->contacts_panel_scrolledwindow), GTK_WIDGET(appGUI->cnt->html_webkitview)); #endif /* LIBWEBKIT */ gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->contacts_find_combobox), config.find_mode); gtk_tree_sortable_sort_column_changed((GtkTreeSortable *)appGUI->cnt->contacts_sort); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter)); g_signal_connect(G_OBJECT(appGUI->cnt->contacts_paned), "notify::position", G_CALLBACK(contacts_paned_position_change_cb), appGUI); gtk_paned_set_position(GTK_PANED(appGUI->cnt->contacts_paned), config.contacts_pane_pos); gtk_widget_grab_focus (appGUI->cnt->contacts_find_entry); } /*------------------------------------------------------------------------------*/ gboolean check_address (gint address_type, GUI *appGUI) { GtkTreeIter iter; GtkTreeModel *model; gchar *text = NULL; gint n = 0; gint c1, c2, c3; if (gtk_tree_selection_count_selected_rows(appGUI->cnt->contacts_list_selection) == 1) { if (address_type == HOME_ADDRESS) { c1 = COLUMN_HOME_ADDRESS; c2 = COLUMN_HOME_CITY; c3 = COLUMN_HOME_COUNTRY; } else { c1 = COLUMN_WORK_ADDRESS; c2 = COLUMN_WORK_CITY; c3 = COLUMN_WORK_COUNTRY; } iter = utl_gui_get_first_selection_iter(appGUI->cnt->contacts_list_selection, &model); gtk_tree_model_get (model, &iter, c1, &text, -1); if (text == NULL) return FALSE; if (strlen(text)) n++; g_free (text); gtk_tree_model_get (model, &iter, c2, &text, -1); if (text == NULL) return FALSE; if (strlen(text)) n++; g_free (text); gtk_tree_model_get (model, &iter, c3, &text, -1); if (text == NULL) return FALSE; if (strlen(text)) n++; g_free (text); } return (n == 3); } /*------------------------------------------------------------------------------*/ void show_contact_location_on_map (gint address_type, GUI *appGUI) { GtkTreeIter iter; GtkTreeModel *model; gboolean pn_flag = FALSE; gint i; gchar *text = NULL, *mapsURL = NULL; gchar maps_url[BUFFER_SIZE]; gint cbegin, cend, cskip1, cskip2; if (gtk_tree_selection_count_selected_rows(appGUI->cnt->contacts_list_selection) == 1) { if (address_type == HOME_ADDRESS) { cbegin = COLUMN_HOME_ADDRESS; cend = COLUMN_HOME_COUNTRY; cskip1 = COLUMN_HOME_POST_CODE; cskip2 = COLUMN_HOME_STATE; } else { cbegin = COLUMN_WORK_ADDRESS; cend = COLUMN_WORK_COUNTRY; cskip1 = COLUMN_WORK_POST_CODE; cskip2 = COLUMN_WORK_STATE; } iter = utl_gui_get_first_selection_iter(appGUI->cnt->contacts_list_selection, &model); i = config.maps_provider % 3; if (i == 0) { g_snprintf(maps_url, BUFFER_SIZE, "%s", GOOGLE_MAPS_QUERY); } else if (i == 1) { g_snprintf(maps_url, BUFFER_SIZE, "%s", BING_MAPS_QUERY); } else { g_snprintf(maps_url, BUFFER_SIZE, "%s", OSM_MAPS_QUERY); } for (i = cbegin; i <= cend; i++) { if (i == cskip1 || i == cskip2) continue; gtk_tree_model_get (model, &iter, i, &text, -1); if (text != NULL) { if (pn_flag) { g_strlcat (maps_url, ",", BUFFER_SIZE); } g_strlcat (maps_url, text, BUFFER_SIZE); pn_flag = TRUE; g_free (text); } } mapsURL = utl_text_to_html(maps_url, TRUE, FALSE); utl_run_helper(mapsURL, WWW); free(mapsURL); } } /*------------------------------------------------------------------------------*/ gboolean queryFilter(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gboolean matches; gchar* value; gchar* matchWith = data; /* we don't want to match the empty string to match everything */ if (!g_utf8_strlen(matchWith, -1)) return FALSE; /* try first name */ value = NULL; gtk_tree_model_get(model, iter, COLUMN_FIRST_NAME, &value, -1); if(value != NULL) { matches = utl_text_strcasestr(value, matchWith); g_free (value); if (matches) return TRUE; } /* and last name */ value = NULL; gtk_tree_model_get(model, iter, COLUMN_LAST_NAME, &value, -1); if(value != NULL) { matches = utl_text_strcasestr(value, matchWith); g_free (value); if (matches) return TRUE; } return FALSE; } gint query(GUI* appGUI, gchar *matchWith) { GtkTreeIter sort_iter; gboolean valid; gchar *text; gint n = 0, col; create_contact_fields(appGUI); create_contacts_list_store(appGUI); read_contacts_entries(appGUI); appGUI->cnt->contacts_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter), queryFilter, /* < this is where the actual filtering takes place */ matchWith, NULL); /* FIXME: for some reason mutt ignores the first line */ printf("\n"); /* here we loop over all matching contacts and print the e-mail adresses */ appGUI->cnt->contacts_sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL(appGUI->cnt->contacts_filter)); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->cnt->contacts_sort), &sort_iter); while (valid) { GtkTreeIter filter_iter, iter; gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->cnt->contacts_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter), &iter, &filter_iter); for (col = COLUMN_EMAIL_1; col <= COLUMN_EMAIL_4; col++) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, col, &text, -1); if (text) { printf("%s\n", text); n++; } } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(appGUI->cnt->contacts_sort), &sort_iter); } return n; /* returns number of found emails */ } /*------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/contacts_items.c0000664000175000017500000015014513161167412013377 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "contacts_items.h" #include "i18n.h" #include "contacts.h" #include "tasks.h" #include "calendar.h" #include "calendar_notes.h" #include "calendar_widget.h" #include "calendar_utils.h" #include "utils.h" #include "utils_date.h" #include "utils_gui.h" #include "options_prefs.h" #include "stock_icons.h" #ifdef CONTACTS_ENABLED /*------------------------------------------------------------------------------*/ void contacts_fill_ids (GUI *appGUI) { GtkTreeIter iter; gint i; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, NULL, i++)) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_ID, i, -1); } } /*------------------------------------------------------------------------------*/ void contacts_add_edit_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_window_get_size (GTK_WINDOW(appGUI->cnt->contacts_add_window), &config.contacts_addedit_win_w, &config.contacts_addedit_win_h); gdk_window_get_root_origin (gtk_widget_get_window(appGUI->cnt->contacts_add_window), &config.contacts_addedit_win_x, &config.contacts_addedit_win_y); gtk_widget_destroy(appGUI->cnt->contacts_add_window); } /*------------------------------------------------------------------------------*/ void contacts_item_entered_cb (GtkWidget *widget, gpointer data) { GtkTextBuffer *text_buffer; GtkTextIter iter_a, iter_b; GtkTreePath *sort_path, *filter_path, *path; GtkTreeIter iter; gint i; gboolean free_str; const gchar *text; GUI *appGUI = (GUI *)data; if (appGUI->cnt->contacts_edit_state == TRUE) { gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), &sort_path, NULL); if (sort_path != NULL) { filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT(appGUI->cnt->contacts_sort), sort_path); if (filter_path != NULL) { path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter), filter_path); if (path != NULL) { gtk_tree_model_get_iter(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, path); gtk_list_store_remove(appGUI->cnt->contacts_list_store, &iter); gtk_tree_path_free(path); } gtk_tree_path_free(filter_path); } gtk_tree_path_free(sort_path); } } gtk_list_store_append(appGUI->cnt->contacts_list_store, &iter); for(i=0; icnt->birthday_date) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, i, appGUI->cnt->birthday_date, -1); } } else if (i == COLUMN_NAME_DAY_DATE) { if (appGUI->cnt->nameday_date) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, i, appGUI->cnt->nameday_date, -1); } } else { if (i == COLUMN_GROUP) { text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(appGUI->cnt->combobox_group)); free_str = TRUE; } else if (i == COLUMN_INFO) { text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->cnt->add_info_textview)); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &iter_a, 0); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &iter_b, -1); text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(text_buffer), &iter_a, &iter_b, TRUE); free_str = TRUE; } else { text = gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->contact_entries[i])); } if (text != NULL) { if (strlen(text)) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, i, text, -1); if (free_str == TRUE) { g_free((gchar *)text); } } } } } } appGUI->cnt->write_flag = TRUE; contacts_add_edit_window_close_cb (NULL, NULL, appGUI); pango_font_description_free(appGUI->cnt->fd_ai_font); path = gtk_tree_model_get_path (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), path, NULL, FALSE); gtk_tree_path_free(path); } gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter)); set_export_active(appGUI); gui_systray_tooltip_update(appGUI); contacts_fill_ids (appGUI); cal_refresh_marks (appGUI); update_aux_calendars (appGUI); if (config.save_data_after_modification) { write_contacts_entries (appGUI); } } /*------------------------------------------------------------------------------*/ void contacts_remove(GtkTreeRowReference *ref, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter, filter_iter, sort_iter; GtkTreeModel *model; model = gtk_tree_row_reference_get_model(ref); path = gtk_tree_row_reference_get_path(ref); if (path != NULL) { if (gtk_tree_model_get_iter(model, &sort_iter, path)) { gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(model), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(model))), &iter, &filter_iter); gtk_list_store_remove(appGUI->cnt->contacts_list_store, &iter); } gtk_tree_path_free(path); } } /*------------------------------------------------------------------------------*/ void contacts_remove_dialog_show (GUI *appGUI) { gint response; gchar tmpbuf[BUFFER_SIZE]; g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("Selected contact will be removed."), _("Are you sure?")); response = utl_gui_create_dialog(GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->main_window)); if (response == GTK_RESPONSE_YES) { contacts_selection_activate (FALSE, appGUI); utl_gui_foreach_selected(appGUI->cnt->contacts_list_selection, GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), (GFunc)contacts_remove, appGUI); contacts_selection_activate (TRUE, appGUI); contacts_select_first_position_in_list(appGUI); g_signal_emit_by_name(G_OBJECT(appGUI->cal->calendar), "day-selected"); set_export_active(appGUI); gui_systray_tooltip_update(appGUI); if (config.save_data_after_modification) { write_contacts_entries (appGUI); } } } /*------------------------------------------------------------------------------*/ void button_contacts_add_edit_window_close_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; contacts_add_edit_window_close_cb (widget, NULL, appGUI); pango_font_description_free(appGUI->cnt->fd_ai_font); } /*------------------------------------------------------------------------------*/ gint contacts_add_edit_key_release_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: contacts_add_edit_window_close_cb (NULL, NULL, appGUI); return TRUE; } if(strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contact_entries[COLUMN_FIRST_NAME]))) || strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contact_entries[COLUMN_LAST_NAME])))) { appGUI->cnt->contacts_accept_state = TRUE; } else { appGUI->cnt->contacts_accept_state = FALSE; } gtk_widget_set_sensitive(appGUI->cnt->contacts_ok_button, appGUI->cnt->contacts_accept_state); return FALSE; } /*------------------------------------------------------------------------------*/ gint show_hide_fields_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { const gchar *text; MESSAGE *msg = (MESSAGE *)data; gint i = (size_t) msg->data; if (event->keyval == GDK_KEY_Return) { text = gtk_entry_get_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[i])); if(strlen(text) && i != COLUMN_HOME_PHONE_4 && i != COLUMN_WORK_PHONE_4 && i != COLUMN_CELL_PHONE_4 && i != COLUMN_EMAIL_4 && i != COLUMN_WWW_4) { gtk_widget_show (msg->appGUI->cnt->contact_entries[i+1]); gtk_widget_grab_focus (msg->appGUI->cnt->contact_entries[i+1]); } return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gboolean group_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ void group_combobox_changed_cb (GtkComboBox *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_widget_grab_focus (appGUI->cnt->contact_entries[COLUMN_FIRST_NAME]); } /*------------------------------------------------------------------------------*/ void select_date_close_cb (GtkWidget *widget, gpointer data) { GUI *appGUI = (GUI *)data; gtk_widget_destroy(appGUI->cnt->select_date_window); } /*------------------------------------------------------------------------------*/ void select_date_selected_cb (GuiCalendar *s_calendar, gpointer user_data) { guint day, month, year; gchar *temp; guint32 julian_day; MESSAGE *msg = (MESSAGE *)user_data; gui_calendar_get_date (s_calendar, &year, &month, &day); gtk_widget_destroy(msg->appGUI->cnt->select_date_window); julian_day = utl_date_dmy_to_julian (day, month + 1, year); if (GPOINTER_TO_INT(msg->data) == COLUMN_BIRTH_DAY_DATE) { temp = julian_to_str (julian_day, DATE_FULL, config.override_locale_settings); gtk_entry_set_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE]), temp); msg->appGUI->cnt->birthday_date = julian_day; } else if (GPOINTER_TO_INT(msg->data) == COLUMN_NAME_DAY_DATE) { temp = julian_to_str (julian_day, DATE_NAME_DAY, config.override_locale_settings); gtk_entry_set_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE]), temp); msg->appGUI->cnt->nameday_date = julian_day; } } /*------------------------------------------------------------------------------*/ void select_date_ok_cb (GtkWidget *widget, gpointer data) { MESSAGE *msg = (MESSAGE *)data; select_date_selected_cb (GUI_CALENDAR (msg->appGUI->cnt->select_date_calendar), msg); } /*------------------------------------------------------------------------------*/ void select_date_nodate_cb (GuiCalendar *s_calendar, gpointer user_data) { MESSAGE *msg = (MESSAGE *)user_data; gtk_widget_destroy(msg->appGUI->cnt->select_date_window); if (GPOINTER_TO_INT(msg->data) == COLUMN_BIRTH_DAY_DATE) { gtk_entry_set_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE]), ""); msg->appGUI->cnt->birthday_date = 0; } else if (GPOINTER_TO_INT(msg->data) == COLUMN_NAME_DAY_DATE) { gtk_entry_set_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE]), ""); msg->appGUI->cnt->nameday_date = 0; } } /*------------------------------------------------------------------------------*/ void next_field_button_clicked_cb (GtkWidget *widget, gpointer user_data) { const gchar *text; MESSAGE *msg = (MESSAGE *)user_data; gint i = (size_t) msg->data; text = gtk_entry_get_text (GTK_ENTRY(msg->appGUI->cnt->contact_entries[i])); if(strlen(text) && i != COLUMN_HOME_PHONE_4 && i != COLUMN_WORK_PHONE_4 && i != COLUMN_CELL_PHONE_4 && i != COLUMN_EMAIL_4 && i != COLUMN_WWW_4) { gtk_widget_hide (msg->appGUI->cnt->next_field_button[i]); gtk_widget_show (msg->appGUI->cnt->contact_entries[i+1]); if (msg->appGUI->cnt->next_field_button[i+1] != NULL) { gtk_widget_show (msg->appGUI->cnt->next_field_button[i+1]); } gtk_widget_grab_focus (msg->appGUI->cnt->contact_entries[i+1]); } } /*------------------------------------------------------------------------------*/ void date_select_cb (GtkWidget *widget, gpointer user_data) { GDate *cdate = NULL; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *nodate_button; GtkWidget *close_button; GtkWidget *ok_button; static MESSAGE msg_selected; MESSAGE *msg = (MESSAGE *)user_data; msg->appGUI->cnt->select_date_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(msg->appGUI->cnt->select_date_window), GTK_WIN_POS_MOUSE); gtk_window_set_modal(GTK_WINDOW(msg->appGUI->cnt->select_date_window), TRUE); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(msg->appGUI->cnt->select_date_window), GTK_WINDOW(msg->appGUI->cnt->contacts_add_window)); } gtk_window_set_decorated(GTK_WINDOW(msg->appGUI->cnt->select_date_window), FALSE); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (msg->appGUI->cnt->select_date_window), vbox1); msg->appGUI->cnt->select_date_calendar = gui_calendar_new(); gui_calendar_set_cursor_type (GUI_CALENDAR(msg->appGUI->cnt->select_date_calendar), CURSOR_BLOCK); gui_set_calendar_defaults(msg->appGUI->cnt->select_date_calendar); gtk_widget_show(msg->appGUI->cnt->select_date_calendar); msg_selected.data = msg->data; msg_selected.appGUI = msg->appGUI; g_signal_connect (G_OBJECT (msg->appGUI->cnt->select_date_calendar), "day_selected_double_click", G_CALLBACK (select_date_selected_cb), &msg_selected); gtk_widget_set_margin_left(msg->appGUI->cnt->select_date_calendar, 4); gtk_widget_set_margin_right(msg->appGUI->cnt->select_date_calendar, 4); gtk_widget_set_margin_top(msg->appGUI->cnt->select_date_calendar, 4); gtk_widget_set_margin_bottom(msg->appGUI->cnt->select_date_calendar, 4); gtk_box_pack_start (GTK_BOX (vbox1), msg->appGUI->cnt->select_date_calendar, TRUE, TRUE, 0); gui_calendar_set_display_options (GUI_CALENDAR (msg->appGUI->cnt->select_date_calendar), (config.display_options & !GUI_CALENDAR_NO_MONTH_CHANGE) | GUI_CALENDAR_SHOW_HEADING | GUI_CALENDAR_SHOW_DAY_NAMES | (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY)); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_widget_set_margin_left(hbox1, 4); gtk_widget_set_margin_right(hbox1, 4); gtk_widget_set_margin_top(hbox1, 4); gtk_widget_set_margin_bottom(hbox1, 4); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); nodate_button = gtk_button_new_with_mnemonic (_("No date")); gtk_widget_show (nodate_button); gtk_box_pack_start (GTK_BOX (hbox1), nodate_button, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (nodate_button), "clicked", G_CALLBACK (select_date_nodate_cb), &msg_selected); ok_button = gtk_button_new_from_icon_name ("gtk-ok", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(ok_button, FALSE); gtk_button_set_relief (GTK_BUTTON(ok_button), GTK_RELIEF_NONE); gtk_widget_show (ok_button); gtk_box_pack_end (GTK_BOX (hbox1), ok_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (ok_button), "clicked", G_CALLBACK (select_date_ok_cb), &msg_selected); close_button = gtk_button_new_from_icon_name("gtk-cancel", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(close_button, FALSE); gtk_button_set_relief (GTK_BUTTON(close_button), GTK_RELIEF_NONE); gtk_widget_show (close_button); gtk_box_pack_end (GTK_BOX (hbox1), close_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (select_date_close_cb), msg->appGUI); gtk_widget_show (msg->appGUI->cnt->select_date_window); if (GPOINTER_TO_INT(msg->data) == COLUMN_BIRTH_DAY_DATE) { if (g_date_valid_julian(msg->appGUI->cnt->birthday_date)) { cdate = g_date_new_julian(msg->appGUI->cnt->birthday_date); } } else if (GPOINTER_TO_INT(msg->data) == COLUMN_NAME_DAY_DATE) { if (g_date_valid_julian(msg->appGUI->cnt->nameday_date)) { cdate = g_date_new_julian(msg->appGUI->cnt->nameday_date); } } if (cdate != NULL) { gui_calendar_select_month(GUI_CALENDAR(msg->appGUI->cnt->select_date_calendar), g_date_get_month(cdate) - 1, g_date_get_year(cdate)); gui_calendar_select_day(GUI_CALENDAR(msg->appGUI->cnt->select_date_calendar), g_date_get_day(cdate)); g_date_free(cdate); } } /*------------------------------------------------------------------------------*/ void photo_file_select_cb (GtkWidget *widget, gpointer user_data) { GtkWidget *dialog; GUI *appGUI = (GUI *)user_data; dialog = utl_gui_create_open_file_dialog(_("Select photo"), GTK_WINDOW (appGUI->cnt->contacts_add_window)); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { gtk_entry_set_text (GTK_ENTRY(appGUI->cnt->contact_entries[COLUMN_PHOTO]), gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); } gtk_widget_destroy(dialog); } /*------------------------------------------------------------------------------*/ void photo_clear_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_entry_set_text (GTK_ENTRY(appGUI->cnt->contact_entries[COLUMN_PHOTO]), ""); } /*------------------------------------------------------------------------------*/ static void show_hide_field_group(gint start_index, gint end_index, GUI *appGUI) { gint i; for (i = start_index; i < end_index; i++) { const gchar *text; gtk_widget_hide(appGUI->cnt->contact_entries[i]); text = gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contact_entries[i])); if (!strlen(text)) break; gtk_widget_show(appGUI->cnt->contact_entries[i]); gtk_widget_hide(appGUI->cnt->next_field_button[i - 1]); } } /*------------------------------------------------------------------------------*/ static void show_hide_multiple_fields(GUI *appGUI) { show_hide_field_group(COLUMN_HOME_PHONE_2, COLUMN_HOME_PHONE_4 + 1, appGUI); show_hide_field_group(COLUMN_WORK_PHONE_2, COLUMN_WORK_PHONE_4 + 1, appGUI); show_hide_field_group(COLUMN_CELL_PHONE_2, COLUMN_CELL_PHONE_4 + 1, appGUI); show_hide_field_group(COLUMN_EMAIL_2, COLUMN_EMAIL_4 + 1, appGUI); show_hide_field_group(COLUMN_WWW_2, COLUMN_WWW_4 + 1, appGUI); } /*------------------------------------------------------------------------------*/ void contacts_add_edit_dialog_show (gboolean contacts_edit_mode, GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *table; GtkWidget *cancel_button; GtkWidget *contacts_add_scrolledwindow; GtkWidget *viewport; GtkWidget *label; GtkWidget *scrolledwindow; GtkWidget *photo_clear_button; GtkTreeIter iter; GtkTreeModel *model; GtkTextIter titer; GtkTextBuffer *text_buffer; gchar *text; gint pos, i; guint32 date; gchar tmpbuf[BUFFER_SIZE]; static MESSAGE msg_date[2]; /* birthday, name day */ static MESSAGE msg_index[CONTACTS_NUM_COLUMNS]; gchar *contact_replace_tags[] = { N_("Address"), N_("Postcode"), N_("City"), N_("State"), N_("Country") }; appGUI->cnt->contacts_add_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->contacts_add_window), 6); if(contacts_edit_mode == TRUE) { gtk_window_set_title (GTK_WINDOW (appGUI->cnt->contacts_add_window), _("Edit contact")); } else { gtk_window_set_title (GTK_WINDOW (appGUI->cnt->contacts_add_window), _("Add contact")); } appGUI->cnt->birthday_date = appGUI->cnt->nameday_date = 0; if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cnt->contacts_add_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_modal(GTK_WINDOW(appGUI->cnt->contacts_add_window), TRUE); gtk_window_set_default_size (GTK_WINDOW(appGUI->cnt->contacts_add_window), config.contacts_addedit_win_w, config.contacts_addedit_win_h); gtk_window_move (GTK_WINDOW (appGUI->cnt->contacts_add_window), config.contacts_addedit_win_x, config.contacts_addedit_win_y); g_signal_connect (G_OBJECT (appGUI->cnt->contacts_add_window), "key_release_event", G_CALLBACK (contacts_add_edit_key_release_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cnt->contacts_add_window), "delete_event", G_CALLBACK(contacts_add_edit_window_close_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cnt->contacts_add_window), vbox1); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0); /*-------------------------------------------------------------------------*/ contacts_add_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (contacts_add_scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox2), contacts_add_scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contacts_add_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport); gtk_container_add (GTK_CONTAINER (contacts_add_scrolledwindow), viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT(viewport), GTK_SHADOW_ETCHED_IN); table = gtk_grid_new (); /* FIXME: don't use hardcoded values */ gtk_widget_show (table); gtk_container_add (GTK_CONTAINER (viewport), table); gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); /*** PERSONAL ***/ pos = 0; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Personal")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Group")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->combobox_group = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cnt->combobox_group); g_signal_connect(G_OBJECT(appGUI->cnt->combobox_group), "focus", G_CALLBACK(group_combo_box_focus_cb), NULL); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->combobox_group, 2, pos, 3, 1); utl_gui_create_category_combobox (GTK_COMBO_BOX(appGUI->cnt->combobox_group), appGUI->opt->contacts_group_store, TRUE); gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->cnt->combobox_group), 0); pos++; for(i=COLUMN_FIRST_NAME; icnt->contact_fields_tags_name[i*2])); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[i] = gtk_entry_new (); if (i == COLUMN_FIRST_NAME) { appGUI->cnt->next_field_button[i] = gtk_button_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->cnt->next_field_button[i]); gtk_widget_set_can_focus(appGUI->cnt->next_field_button[i], false); } gtk_widget_show (appGUI->cnt->contact_entries[i]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 3, 1); pos++; } /* BIRTHDAY DATE */ g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(appGUI->cnt->contact_fields_tags_name[COLUMN_BIRTH_DAY_DATE*2])); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE] = gtk_entry_new (); gtk_widget_set_can_focus(appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE], FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE]), FALSE); gtk_widget_show (appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[COLUMN_BIRTH_DAY_DATE], 2, pos, 2, 1); appGUI->cnt->birth_day_date_button = gtk_button_new_from_icon_name (OSMO_STOCK_BUTTON_SELECT_DATE, GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(appGUI->cnt->birth_day_date_button, FALSE); gtk_widget_show (appGUI->cnt->birth_day_date_button); msg_date[0].data = GINT_TO_POINTER(COLUMN_BIRTH_DAY_DATE); msg_date[0].appGUI = appGUI; g_signal_connect (G_OBJECT (appGUI->cnt->birth_day_date_button), "clicked", G_CALLBACK (date_select_cb), &msg_date[0]); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->birth_day_date_button, 4, pos, 1, 1); pos++; /* NAMEDAY DATE */ g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(appGUI->cnt->contact_fields_tags_name[COLUMN_NAME_DAY_DATE*2])); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE] = gtk_entry_new (); gtk_widget_set_can_focus(appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE], FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE]), FALSE); gtk_widget_show (appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[COLUMN_NAME_DAY_DATE], 2, pos, 2, 1); appGUI->cnt->name_day_date_button = gtk_button_new_from_icon_name (OSMO_STOCK_BUTTON_SELECT_DATE, GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(appGUI->cnt->name_day_date_button, FALSE); gtk_widget_show (appGUI->cnt->name_day_date_button); msg_date[1].data = GINT_TO_POINTER(COLUMN_NAME_DAY_DATE); msg_date[1].appGUI = appGUI; g_signal_connect (G_OBJECT (appGUI->cnt->name_day_date_button), "clicked", G_CALLBACK (date_select_cb), &msg_date[1]); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->name_day_date_button, 4, pos, 1, 1); pos++; /* PHOTO */ g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(appGUI->cnt->contact_fields_tags_name[COLUMN_PHOTO*2])); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[COLUMN_PHOTO] = gtk_entry_new (); gtk_widget_set_can_focus(appGUI->cnt->contact_entries[COLUMN_PHOTO], FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cnt->contact_entries[COLUMN_PHOTO]), FALSE); gtk_widget_show (appGUI->cnt->contact_entries[COLUMN_PHOTO]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[COLUMN_PHOTO], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[COLUMN_PHOTO], 2, pos, 1, 1); appGUI->cnt->photo_browse_button = gtk_button_new_from_icon_name ("folder", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(appGUI->cnt->photo_browse_button, FALSE); gtk_widget_show (appGUI->cnt->photo_browse_button); g_signal_connect (G_OBJECT (appGUI->cnt->photo_browse_button), "clicked", G_CALLBACK (photo_file_select_cb), appGUI); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->photo_browse_button, 3, pos, 1, 1); photo_clear_button = gtk_button_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (photo_clear_button); g_signal_connect (G_OBJECT (photo_clear_button), "clicked", G_CALLBACK (photo_clear_cb), appGUI); gtk_grid_attach (GTK_GRID (table), photo_clear_button, 4, pos, 1, 1); pos++; /*** HOME ***/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (table), hseparator, 0, pos, 5, 1); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Home")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; for(i=COLUMN_HOME_ADDRESS; icnt->contact_entries[i] = gtk_entry_new (); gtk_widget_show (appGUI->cnt->contact_entries[i]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 3, 1); pos++; } /*** WORK ***/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (table), hseparator, 0, pos, 5, 1); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Work")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; for(i=COLUMN_WORK_ORGANIZATION; i= COLUMN_WORK_ADDRESS && i <= COLUMN_WORK_COUNTRY) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(contact_replace_tags[i-COLUMN_WORK_ADDRESS])); } else { g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", gettext(appGUI->cnt->contact_fields_tags_name[i*2])); } label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[i] = gtk_entry_new (); gtk_widget_show (appGUI->cnt->contact_entries[i]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 3, 1); pos++; } /*** PHONES ***/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (table), hseparator, 0, pos, 5, 1); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Phones")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; for(i=COLUMN_HOME_PHONE_1; icnt->contact_fields_tags_name[i*2])); label = gtk_label_new (tmpbuf); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[i] = gtk_entry_new (); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 2, 1); msg_index[i].appGUI = appGUI; msg_index[i].data = GINT_TO_POINTER(i); g_signal_connect (G_OBJECT (appGUI->cnt->contact_entries[i]), "key_press_event", G_CALLBACK (show_hide_fields_key_press_cb), &msg_index[i]); if (i != COLUMN_HOME_PHONE_4 && i != COLUMN_WORK_PHONE_4 && i != COLUMN_CELL_PHONE_4) { appGUI->cnt->next_field_button[i] = gtk_button_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON); gtk_widget_hide (appGUI->cnt->next_field_button[i]); gtk_widget_set_can_focus(appGUI->cnt->next_field_button[i], FALSE); g_signal_connect (G_OBJECT (appGUI->cnt->next_field_button[i]), "clicked", G_CALLBACK (next_field_button_clicked_cb), &msg_index[i]); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->next_field_button[i], 4, pos, 1, 1); } else { appGUI->cnt->next_field_button[i] = NULL; } if(i == COLUMN_HOME_PHONE_1 || i == COLUMN_WORK_PHONE_1 || i == COLUMN_CELL_PHONE_1) { gtk_widget_show (label); gtk_widget_show (appGUI->cnt->contact_entries[i]); gtk_widget_show (appGUI->cnt->next_field_button[i]); } pos++; } /*** INTERNET ***/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (table), hseparator, 0, pos, 5, 1); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Internet")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; for(i=COLUMN_EMAIL_1; icnt->contact_fields_tags_name[i*2])); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_widget_set_margin_left(label, 4); gtk_widget_set_margin_right(label, 4); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 2, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cnt->contact_entries[i] = gtk_entry_new (); gtk_widget_show (appGUI->cnt->contact_entries[i]); msg_index[i].appGUI = appGUI; msg_index[i].data = GINT_TO_POINTER(i); g_signal_connect (G_OBJECT (appGUI->cnt->contact_entries[i]), "key_press_event", G_CALLBACK (show_hide_fields_key_press_cb), &msg_index[i]); if (i == COLUMN_EMAIL_1 || i == COLUMN_EMAIL_2 || i == COLUMN_EMAIL_3 || i == COLUMN_WWW_1 || i == COLUMN_WWW_2 || i == COLUMN_WWW_3) { appGUI->cnt->next_field_button[i] = gtk_button_new_from_icon_name ("go-down", GTK_ICON_SIZE_BUTTON); gtk_widget_hide (appGUI->cnt->next_field_button[i]); gtk_widget_set_can_focus(appGUI->cnt->next_field_button[i], FALSE); g_signal_connect (G_OBJECT (appGUI->cnt->next_field_button[i]), "clicked", G_CALLBACK (next_field_button_clicked_cb), &msg_index[i]); gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 2, 1); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->next_field_button[i], 4, pos, 1, 1); } else if (i == COLUMN_EMAIL_4 || i == COLUMN_WWW_4) { appGUI->cnt->next_field_button[i] = NULL; gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 2, 1); } else { appGUI->cnt->next_field_button[i] = NULL; gtk_widget_set_hexpand(appGUI->cnt->contact_entries[i], TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cnt->contact_entries[i], 2, pos, 3, 1); } if(i == COLUMN_EMAIL_1 || i == COLUMN_WWW_1) { gtk_widget_show (appGUI->cnt->next_field_button[i]); } if((i > COLUMN_EMAIL_1 && i < COLUMN_WWW_1) || (i > COLUMN_WWW_1 && i < COLUMN_IM_GG)) { gtk_widget_hide (label); gtk_widget_hide (appGUI->cnt->contact_entries[i]); } pos++; } /*** Additional info ***/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_grid_attach (GTK_GRID (table), hseparator, 0, pos, 5, 1); pos++; g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Additional info")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, pos, 5, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_widget_set_margin_left (label, 5); gtk_widget_set_margin_right (label, 5); pos++; scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_widget_set_vexpand(scrolledwindow, TRUE); gtk_widget_set_size_request (scrolledwindow, -1, 350); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, pos, 5, 1); appGUI->cnt->add_info_textview = gtk_text_view_new (); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->cnt->add_info_textview); /*gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->cnt->add_info_textview), GTK_WRAP_WORD);*/ gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW(appGUI->cnt->add_info_textview), 4); gtk_text_view_set_left_margin (GTK_TEXT_VIEW(appGUI->cnt->add_info_textview), 4); gtk_text_view_set_right_margin (GTK_TEXT_VIEW(appGUI->cnt->add_info_textview), 4); gtk_widget_show (appGUI->cnt->add_info_textview); /*appGUI->cnt->fd_ai_font = pango_font_description_from_string(config.contact_item_font);*/ appGUI->cnt->fd_ai_font = pango_font_description_from_string("Monospace"); gtk_widget_override_font (GTK_WIDGET(appGUI->cnt->add_info_textview), appGUI->cnt->fd_ai_font); /*-------------------------------------------------------------------------*/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox), 2); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 16); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_contacts_add_edit_window_close_cb), appGUI); appGUI->cnt->contacts_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_show (appGUI->cnt->contacts_ok_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->cnt->contacts_ok_button); g_signal_connect(appGUI->cnt->contacts_ok_button, "clicked", G_CALLBACK(contacts_item_entered_cb), appGUI); appGUI->cnt->contacts_edit_state = contacts_edit_mode; appGUI->cnt->contacts_accept_state = FALSE; if (contacts_edit_mode == TRUE) { appGUI->cnt->contacts_accept_state = TRUE; iter = utl_gui_get_first_selection_iter(appGUI->cnt->contacts_list_selection, &model); for(i=0; i < CONTACTS_NUM_COLUMNS; i++) { if (i != COLUMN_ID) { if (i == COLUMN_BIRTH_DAY_DATE || i == COLUMN_NAME_DAY_DATE) { gtk_tree_model_get (model, &iter, i, &date, -1); if (date == 0) { text = NULL; } else { if (i == COLUMN_BIRTH_DAY_DATE) { appGUI->cnt->birthday_date = date; text = g_strdup((const gchar *)julian_to_str(date, DATE_FULL, config.override_locale_settings)); } else { appGUI->cnt->nameday_date = date; text = g_strdup((const gchar *)julian_to_str(date, DATE_NAME_DAY, config.override_locale_settings)); } } } else { gtk_tree_model_get (model, &iter, i, &text, -1); } if (text != NULL) { if (i == COLUMN_GROUP) { gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->cnt->combobox_group), utl_gui_list_store_get_text_index (appGUI->opt->contacts_group_store, text)); } else if (i == COLUMN_INFO) { text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(appGUI->cnt->add_info_textview)); utl_gui_clear_text_buffer (text_buffer, &titer); gtk_text_buffer_get_iter_at_offset (GTK_TEXT_BUFFER(text_buffer), &titer, 0); gtk_text_buffer_insert (text_buffer, &titer, text, -1); gtk_text_view_set_buffer (GTK_TEXT_VIEW(appGUI->cnt->add_info_textview), text_buffer); } else { gtk_entry_set_text (GTK_ENTRY(appGUI->cnt->contact_entries[i]), text); if (appGUI->cnt->next_field_button[i] != NULL) { gtk_widget_show (appGUI->cnt->next_field_button[i]); } } g_free(text); } } } show_hide_multiple_fields(appGUI); } gtk_widget_set_sensitive(appGUI->cnt->contacts_ok_button, appGUI->cnt->contacts_accept_state); g_signal_connect(G_OBJECT(appGUI->cnt->combobox_group), "changed", G_CALLBACK(group_combobox_changed_cb), appGUI); gtk_widget_show(appGUI->cnt->contacts_add_window); gtk_widget_grab_focus (appGUI->cnt->contact_entries[COLUMN_FIRST_NAME]); } /*------------------------------------------------------------------------------*/ void read_contacts_entries (GUI *appGUI) { xmlDocPtr doc; xmlChar *key; xmlNodePtr node, cnode, main_node; xmlNodePtr group_node; GtkTreeIter iter; gint j; guint32 date; gchar tmpbuf[BUFFER_SIZE]; if (g_file_test (prefs_get_data_filename(CONTACTS_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) return; if((doc = xmlParseFile(prefs_get_data_filename(CONTACTS_ENTRIES_FILENAME, appGUI)))) { if(!(node = xmlDocGetRootElement(doc))) { xmlFreeDoc(doc); return; } if (xmlStrcmp(node->name, (const xmlChar *) CONTACTS_NAME)) { xmlFreeDoc(doc); return; } main_node = node->xmlChildrenNode; while (main_node != NULL) { if(!xmlStrcmp(main_node->name, (xmlChar *) CONTACTS_GROUP_ENTRIES_NAME)) { group_node = main_node->xmlChildrenNode; while (group_node != NULL) { if ((!xmlStrcmp(group_node->name, (const xmlChar *) "name"))) { key = xmlNodeGetContent (group_node->xmlChildrenNode); if (key != NULL) { if GTK_IS_LIST_STORE(appGUI->opt->contacts_group_store) { gtk_list_store_append(appGUI->opt->contacts_group_store, &iter); gtk_list_store_set(appGUI->opt->contacts_group_store, &iter, 0, (gchar *) key, -1); } xmlFree (key); } } group_node = group_node->next; } } /*---------------------------------------------------------------------------------------*/ if(!xmlStrcmp(main_node->name, (xmlChar *) CONTACTS_ENTRIES_NAME)) { /* read note */ node = main_node->xmlChildrenNode; while (node != NULL) { if(!xmlStrcmp(node->name, (xmlChar *) "record")) { cnode = node->xmlChildrenNode; gtk_list_store_append(appGUI->cnt->contacts_list_store, &iter); g_snprintf(tmpbuf, BUFFER_SIZE, "(%s)", _("None")); gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_GROUP, tmpbuf, -1); gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_FIRST_NAME, tmpbuf, -1); gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_LAST_NAME, tmpbuf, -1); while (cnode != NULL) { for (j = COLUMN_GROUP; j < CONTACTS_NUM_COLUMNS; j++) { if (j != COLUMN_ID) { if ((!xmlStrcmp(cnode->name, (const xmlChar *) appGUI->cnt->contact_fields_tags_name[j*2+1]))) { key = xmlNodeGetContent(cnode->xmlChildrenNode); if (key != NULL) { if (j == COLUMN_BIRTH_DAY_DATE || j == COLUMN_NAME_DAY_DATE) { sscanf((gchar *) key, "%d", &date); gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, j, date, -1); } else { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, j, key, -1); } xmlFree(key); } } } } cnode = cnode->next; } } node = node->next; } } /*---------------------------------------------------------------------------------------*/ main_node = main_node->next; } xmlFree(node); xmlFreeDoc(doc); appGUI->cnt->write_flag = TRUE; contacts_fill_ids (appGUI); } else { appGUI->cnt->write_flag = FALSE; /* FIXME: add translation here */ g_snprintf(tmpbuf, BUFFER_SIZE, "Contacts file is malformed. Please edit\n%s\nfile manually to fix its structure and restart the Osmo.", prefs_get_data_filename(CONTACTS_ENTRIES_FILENAME, appGUI)); utl_gui_create_dialog (GTK_MESSAGE_ERROR, tmpbuf, NULL); } } /*------------------------------------------------------------------------------*/ void write_contacts_entries (GUI *appGUI) { gint i, j; xmlDocPtr doc; xmlNodePtr main_node, node, note_node; xmlAttrPtr attr; GtkTreeIter iter; gchar *item; guint32 date; gchar tmpbuf[BUFFER_SIZE]; if (((appGUI->save_status & WRT_CONTACTS) != 0) || appGUI->cnt->write_flag == FALSE) return; appGUI->save_status |= WRT_CONTACTS; doc = xmlNewDoc ((const xmlChar *) "1.0"); attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); main_node = xmlNewNode (NULL, (const xmlChar *) CONTACTS_NAME); xmlDocSetRootElement (doc, main_node); node = xmlNewChild (main_node, NULL, (const xmlChar *) CONTACTS_GROUP_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->contacts_group_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->opt->contacts_group_store), &iter, 0, &item, -1); utl_xml_put_str ("name", item, node); g_free (item); } node = xmlNewChild (main_node, NULL, (const xmlChar *) CONTACTS_ENTRIES_NAME, (xmlChar *) NULL); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, NULL, i++)) { note_node = xmlNewChild (node, NULL, (const xmlChar *) "record", (xmlChar *) NULL); for (j = COLUMN_GROUP; j < CONTACTS_NUM_COLUMNS; j++) { if (j != COLUMN_ID) { if (j == COLUMN_BIRTH_DAY_DATE || j == COLUMN_NAME_DAY_DATE) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, j, &date, -1); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", date); utl_xml_put_str (appGUI->cnt->contact_fields_tags_name[j*2+1], tmpbuf, note_node); } else { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, j, &item, -1); if (item != NULL) { if (strlen(item)) { utl_xml_put_str (appGUI->cnt->contact_fields_tags_name[j*2+1], item, note_node); } } g_free (item); } } } } utl_xml_write_doc (prefs_get_data_filename(CONTACTS_ENTRIES_FILENAME, appGUI), doc); xmlFreeProp (attr); xmlFreeDoc (doc); appGUI->save_status &= ~WRT_CONTACTS; } /*------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/calendar_ical.c0000664000175000017500000020764613110234475013130 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_ical.h" #include "i18n.h" #include "calendar.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "calendar_notes.h" #include "calendar_widget.h" #include "options_prefs.h" #include "calendar_preferences_gui.h" #include "stock_icons.h" #ifdef HAVE_LIBICAL #include #include #include #include /*------------------------------------------------------------------------------*/ void ics_initialize_timezone (void) { gchar *tz_search_paths [] = { "/usr/share/zoneinfo/", "/opt/usr/share/libical/zoneinfo/", "/usr/share/libical/zoneinfo/", "/usr/local/share/libical/zoneinfo/" }; gint i; #define N_SEARCH_PATHS (sizeof (tz_search_paths) / sizeof (tz_search_paths [0])) for (i = 0; i < N_SEARCH_PATHS; i++) { if (!g_access (tz_search_paths[i], F_OK | R_OK)) { set_zone_directory (tz_search_paths[i]); break; } } } /*------------------------------------------------------------------------------*/ gchar* ics_read_stream (gchar *s, size_t size, void *d) { return fgets (s, size, (FILE*)d); } /*------------------------------------------------------------------------------*/ gchar* str_remove_backslash (gchar *text) { static gchar tmpbuf[BUFFER_SIZE]; gint i, j; i = j = 0; while (text[i] != '\0') { if (text[i] == '\\' && text[i+1] != 'n') i++; tmpbuf[j++] = text[i++]; } tmpbuf[j] = '\0'; return tmpbuf; } /*------------------------------------------------------------------------------*/ void add_ics_entry_to_day_info_panel (gchar *name, struct ics_entry *item, gboolean desc_flag, gchar **html, GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; gchar *tmp_str = NULL, *tmp = NULL; if (name != NULL) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n", name); if (html != NULL) { *(html) = utl_strconcat (*(html), "", tmpbuf, "", NULL); } else { gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "bold", NULL); } } if (item->description != NULL) { tmp_str = utl_text_replace (item->description, "\\\\n", "\n"); } if (item->seconds_begin != 0 && item->seconds_end != 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "[ %s, %s - %s ]\n%s", utl_get_julian_day_name (item->julian), utl_time_print_s (item->seconds_begin, TIME_HH_MM, config.override_locale_settings), utl_time_print_s (item->seconds_end, TIME_HH_MM, config.override_locale_settings), str_remove_backslash (item->summary)); } else if (item->seconds_begin != 0 && item->seconds_end == 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "[ %s, %s ]\n%s", utl_get_julian_day_name (item->julian), utl_time_print_s (item->seconds_begin, TIME_HH_MM, config.override_locale_settings), str_remove_backslash (item->summary)); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", str_remove_backslash (item->summary)); } if (html != NULL) { *(html) = utl_strconcat (*(html), tmpbuf, "
", NULL); } else { tmp = utl_strconcat (tmpbuf, "\n", NULL); gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmp, -1); g_free (tmp); } if (item->description != NULL && desc_flag == TRUE) { if (html != NULL) { g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)\n", str_remove_backslash (tmp_str)); *(html) = utl_strconcat (*(html), "", tmpbuf, "
", NULL); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "(%s)\n\n", str_remove_backslash (tmp_str)); gtk_text_buffer_insert_with_tags_by_name (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, tmpbuf, -1, "italic", NULL); } } else { if (html == NULL) { gtk_text_buffer_insert (appGUI->cal->day_desc_text_buffer, &appGUI->cal->day_desc_iter, "\n", -1); } } if (item->description != NULL) { g_free (tmp_str); } } /*------------------------------------------------------------------------------*/ void ics_add_item (struct ics_file *file_entry, icalproperty *dtime_begin, icalproperty *dtime_end, icalproperty *summary, icalproperty *description) { icaltimetype tt; struct ics_entry *item; item = g_malloc (sizeof (struct ics_entry)); tt = icaltime_from_string (icalproperty_get_value_as_string (dtime_begin)); if (tt.day == 29 && tt.month == 2 && !g_date_valid_dmy (tt.day, tt.month, tt.year)) { item->julian = utl_date_dmy_to_julian (tt.day, tt.month, LEAP_YEAR); } else { item->julian = utl_date_dmy_to_julian (tt.day, tt.month, tt.year); } item->seconds_begin = utl_time_hms_to_seconds (tt.hour, tt.minute, tt.second); tt = icaltime_from_string (icalproperty_get_value_as_string (dtime_end)); item->seconds_end = utl_time_hms_to_seconds (tt.hour, tt.minute, tt.second); item->summary = g_strdup (icalproperty_get_value_as_string (summary)); if (description != NULL) { item->description = g_strdup (icalproperty_get_value_as_string (description)); } else { item->description = NULL; } file_entry->entries_list = g_slist_prepend (file_entry->entries_list, item); } /*------------------------------------------------------------------------------*/ gint ics_parse_file (struct ics_file *file_entry, gchar *name, gchar *filename, gboolean desc_flag, gboolean count_only, GUI *appGUI) { FILE *ics_stream; icalparser *ics_parser; icalcomponent *ics_component; icalcomponent *h, *l; icalproperty *tb, *te, *p, *r; gint n = 0; ics_parser = icalparser_new (); g_return_val_if_fail (ics_parser != NULL, n); ics_stream = fopen (filename, "r"); if (ics_stream == NULL) { icalparser_free (ics_parser); return n; } icalparser_set_gen_data (ics_parser, ics_stream); ics_component = icalparser_parse (ics_parser, ics_read_stream); if (ics_component == NULL) { fclose (ics_stream); icalparser_free (ics_parser); return n; } if (icalcomponent_get_first_component (ics_component, ICAL_VEVENT_COMPONENT) != NULL) { for (h = icalcomponent_get_first_component (ics_component, ICAL_VEVENT_COMPONENT); h; h = icalcomponent_get_next_component (ics_component, ICAL_VEVENT_COMPONENT)) { tb = icalcomponent_get_first_property (h, ICAL_DTSTART_PROPERTY); if (tb == NULL) continue; te = icalcomponent_get_first_property (h, ICAL_DTEND_PROPERTY); if (te == NULL) continue; p = icalcomponent_get_first_property (h, ICAL_SUMMARY_PROPERTY); if (p != NULL && count_only == FALSE) { r = icalcomponent_get_first_property (h, ICAL_DESCRIPTION_PROPERTY); ics_add_item (file_entry, tb, te, p, r); } n++; } } else if (icalcomponent_get_first_component (ics_component, ICAL_VCALENDAR_COMPONENT) != NULL) { for (l = icalcomponent_get_first_component (ics_component, ICAL_VCALENDAR_COMPONENT); l; l = icalcomponent_get_next_component (ics_component, ICAL_VCALENDAR_COMPONENT)) { h = icalcomponent_get_first_component (l, ICAL_VEVENT_COMPONENT); tb = icalcomponent_get_first_property (h, ICAL_DTSTART_PROPERTY); if (tb == NULL) continue; te = icalcomponent_get_first_property (h, ICAL_DTEND_PROPERTY); if (te == NULL) continue; p = icalcomponent_get_first_property (h, ICAL_SUMMARY_PROPERTY); if (p != NULL && count_only == FALSE) { r = icalcomponent_get_first_property (h, ICAL_DESCRIPTION_PROPERTY); ics_add_item (file_entry, tb, te, p, r); } n++; } } else if (icalcomponent_get_first_component (ics_component, ICAL_VTODO_COMPONENT) != NULL) { for (l = icalcomponent_get_first_component (ics_component, ICAL_VTODO_COMPONENT); l; l = icalcomponent_get_next_component (ics_component, ICAL_VTODO_COMPONENT)) { tb = icalcomponent_get_first_property (l, ICAL_DTSTART_PROPERTY); if (tb == NULL) continue; te = icalcomponent_get_first_property (l, ICAL_DTEND_PROPERTY); if (te == NULL) continue; p = icalcomponent_get_first_property (l, ICAL_SUMMARY_PROPERTY); if (p != NULL && count_only == FALSE) { r = icalcomponent_get_first_property (l, ICAL_DESCRIPTION_PROPERTY); ics_add_item (file_entry, tb, te, p, r); } n++; } } icalcomponent_free (ics_component); fclose (ics_stream); icalparser_free (ics_parser); return n; } /*------------------------------------------------------------------------------*/ void ics_check_if_valid (GUI *appGUI) { gint i; gchar *ical_filename, *ical_name; GtkTreeIter iter; GdkPixbuf *image; const gchar *icon_name; gboolean status, disable; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_DISABLED, &disable, -1); status = !g_access (ical_filename, F_OK | R_OK); if (status == TRUE) { if (ics_parse_file (NULL, ical_name, ical_filename, FALSE, TRUE, appGUI) == 0) { status = FALSE; } } icon_name = (status == TRUE) ? OSMO_STOCK_LIST_VALID : OSMO_STOCK_LIST_INVALID; image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), icon_name, 16, 0, NULL); gtk_list_store_set(appGUI->opt->calendar_ical_files_store, &iter, ICAL_COLUMN_VALID_ICON, image, ICAL_COLUMN_VALID_FLAG, status, ICAL_COLUMN_STATE, (status && !disable), -1); g_object_unref (image); g_free (ical_name); g_free (ical_filename); } } /*------------------------------------------------------------------------------*/ gboolean ics_check_event (guint32 julian, GUI *appGUI) { GtkTreeIter iter; GSList *node, *node2; struct ics_file *entry; struct ics_entry *item; gboolean valid_ics, year_flag, mark_flag, disabled; gboolean found; gchar *ical_filename; gint i; if (!g_date_valid_julian (julian)) return FALSE; found = FALSE; for (node = appGUI->cal->ics_files_list; node != NULL; node = node->next) { entry = node->data; i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_VALID_FLAG, &valid_ics, ICAL_COLUMN_DISABLED, &disabled, ICAL_COLUMN_MARK, &mark_flag, ICAL_COLUMN_FULL_DATE, &year_flag, -1); if (!strcmp (entry->filename, ical_filename)) { g_free (ical_filename); break; } g_free (ical_filename); } if (entry->entries_list != NULL && valid_ics == TRUE && disabled == FALSE && mark_flag == TRUE && year_flag == TRUE) { for (node2 = entry->entries_list; node2 != NULL; node2 = node2->next) { item = node2->data; if (item->julian == julian) { found = TRUE; break; } } } if (found == TRUE) break; } return found; } /*------------------------------------------------------------------------------*/ gint sFunc (struct ics_entry *a, struct ics_entry *b) { return (a->seconds_begin > b->seconds_begin); } void calendar_display_ics (GDate *date, gchar **html, GUI *appGUI) { GtkTreeIter iter; GSList *node, *node2; GSList *sorted_list; struct ics_file *entry; struct ics_entry *item, *sitem; gboolean valid_ics, desc_flag, year_flag, mark_flag, title_flag, disabled; gchar *ical_name, *ical_filename; gint i, day, month, year; gint jd, jm, jy; utl_date_get_dmy (date, &day, &month, &year); for (node = appGUI->cal->ics_files_list; node != NULL; node = node->next) { entry = node->data; i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_VALID_FLAG, &valid_ics, ICAL_COLUMN_DISABLED, &disabled, ICAL_COLUMN_ENABLE_DESC, &desc_flag, ICAL_COLUMN_MARK, &mark_flag, ICAL_COLUMN_FULL_DATE, &year_flag, -1); if (!strcmp (entry->filename, ical_filename)) { g_free (ical_filename); break; } g_free (ical_name); g_free (ical_filename); } title_flag = FALSE; sorted_list = NULL; if (entry->entries_list != NULL && valid_ics == TRUE && disabled == FALSE) { for (node2 = entry->entries_list; node2 != NULL; node2 = node2->next) { item = node2->data; utl_date_julian_to_dmy (item->julian, &jd, &jm, &jy); if (day == jd && month == jm) { if (year_flag == FALSE || year == jy) { sitem = g_malloc (sizeof (struct ics_entry)); if (sitem != NULL) { sitem->julian = item->julian; sitem->seconds_begin = item->seconds_begin; sitem->seconds_end = item->seconds_end; sitem->summary = item->summary; sitem->description = item->description; sorted_list = g_slist_insert_sorted (sorted_list, sitem, (GCompareFunc)sFunc); } } } } /* add to panel sorted items */ if (sorted_list != NULL) { for (node2 = sorted_list; node2 != NULL; node2 = node2->next) { item = node2->data; if (title_flag == FALSE) { add_ics_entry_to_day_info_panel (ical_name, item, desc_flag, html, appGUI); title_flag = TRUE; } else { add_ics_entry_to_day_info_panel (NULL, item, desc_flag, html, appGUI); } } } g_slist_foreach (sorted_list, (GFunc) g_free, NULL); g_slist_free (sorted_list); } g_free (ical_name); } } /*------------------------------------------------------------------------------*/ void ics_calendar_init (GUI *appGUI) { struct ics_file *ics_file_entry; gchar *ical_name, *ical_filename; GtkTreeIter iter; gint i; gboolean flag, desc_flag, disabled; ics_initialize_timezone (); appGUI->cal->ics_files_list = NULL; i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_VALID_FLAG, &flag, ICAL_COLUMN_DISABLED, &disabled, ICAL_COLUMN_ENABLE_DESC, &desc_flag, -1); if (flag == TRUE && disabled == FALSE) { ics_file_entry = g_malloc(sizeof(struct ics_file)); if (ics_file_entry != NULL) { ics_file_entry->filename = g_strdup(ical_filename); ics_file_entry->entries_list = NULL; ics_parse_file (ics_file_entry, ical_name, ical_filename, desc_flag, FALSE, appGUI); appGUI->cal->ics_files_list = g_slist_append (appGUI->cal->ics_files_list, ics_file_entry); } } g_free (ical_name); g_free (ical_filename); } } /*------------------------------------------------------------------------------*/ void ics_calendar_close (GUI *appGUI) { GSList *node, *node2; struct ics_file *entry; struct ics_entry *item; for (node = appGUI->cal->ics_files_list; node != NULL; node = node->next) { entry = node->data; g_free (entry->filename); if (entry->entries_list != NULL) { for (node2 = entry->entries_list; node2 != NULL; node2 = node2->next) { item = node2->data; g_free (item->summary); g_free (item->description); g_free (item); } g_slist_free (entry->entries_list); entry->entries_list = NULL; } g_free (entry); } g_slist_free (appGUI->cal->ics_files_list); appGUI->cal->ics_files_list = NULL; } /*------------------------------------------------------------------------------*/ void read_ical_entries (GUI *appGUI) { xmlDocPtr doc; xmlChar *key; xmlNodePtr node, entry_node, main_node; gboolean desc_flag = FALSE, mark_flag = FALSE, disabled = FALSE; gchar item_name[BUFFER_SIZE], item_filename[BUFFER_SIZE]; GtkTreeIter iter; if (g_file_test (prefs_get_data_filename(ICAL_ENTRIES_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR) == FALSE) return; if((doc = xmlParseFile(prefs_get_data_filename(ICAL_ENTRIES_FILENAME, appGUI)))) { if(!(node = xmlDocGetRootElement(doc))) { xmlFreeDoc(doc); return; } if (xmlStrcmp(node->name, (const xmlChar *) ICAL_NAME)) { xmlFreeDoc(doc); return; } main_node = node->xmlChildrenNode; while (main_node != NULL) { if(!xmlStrcmp(main_node->name, (xmlChar *) "entry")) { entry_node = main_node->xmlChildrenNode; while (entry_node != NULL) { if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "name"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { strncpy (item_name, (gchar *) key, BUFFER_SIZE-1); xmlFree(key); } } if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "filename"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { strncpy (item_filename, (gchar *) key, BUFFER_SIZE-1); xmlFree(key); } } if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "disabled"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { disabled = atoi((gchar *) key); xmlFree(key); } } if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "description"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { desc_flag = atoi((gchar *) key); xmlFree(key); } } if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "mark"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { mark_flag = atoi((gchar *) key); xmlFree(key); } } if ((!xmlStrcmp(entry_node->name, (const xmlChar *) "use_year"))) { key = xmlNodeListGetString(doc, entry_node->xmlChildrenNode, 1); if (key != NULL) { gtk_list_store_append(appGUI->opt->calendar_ical_files_store, &iter); gtk_list_store_set(appGUI->opt->calendar_ical_files_store, &iter, ICAL_COLUMN_NAME, item_name, ICAL_COLUMN_FILENAME, item_filename, ICAL_COLUMN_ENABLE_DESC, desc_flag, ICAL_COLUMN_MARK, mark_flag, ICAL_COLUMN_DISABLED, disabled, ICAL_COLUMN_STATE, !disabled, ICAL_COLUMN_FULL_DATE, atoi((gchar *) key), -1); xmlFree(key); } } entry_node = entry_node->next; } } main_node = main_node->next; } xmlFreeDoc(doc); } ics_check_if_valid (appGUI); ics_calendar_init (appGUI); } /*------------------------------------------------------------------------------*/ void write_ical_entries (GUI *appGUI) { xmlDocPtr doc; xmlNodePtr main_node, entry_node; xmlAttrPtr attr; GtkTreeIter iter; gint i; gchar *ical_name, *ical_filename; gboolean desc_flag, mark_flag, year_flag, disabled; gchar tmpbuf[BUFFER_SIZE]; doc = xmlNewDoc((const xmlChar *) "1.0"); attr = xmlNewDocProp (doc, (const xmlChar *) "encoding", (const xmlChar *) "utf-8"); main_node = xmlNewNode(NULL, (const xmlChar *) ICAL_NAME); xmlDocSetRootElement(doc, main_node); i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_ENABLE_DESC, &desc_flag, ICAL_COLUMN_MARK, &mark_flag, ICAL_COLUMN_FULL_DATE, &year_flag, ICAL_COLUMN_DISABLED, &disabled, -1); entry_node = xmlNewChild (main_node, NULL, (const xmlChar *) "entry", (xmlChar *) NULL); xmlNewChild (entry_node, NULL, (const xmlChar *) "name", (xmlChar *) ical_name); g_free (ical_name); xmlNewChild (entry_node, NULL, (const xmlChar *) "filename", (xmlChar *) ical_filename); g_free (ical_filename); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", disabled); xmlNewChild (entry_node, NULL, (const xmlChar *) "disabled", (xmlChar *) tmpbuf); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", desc_flag); xmlNewChild (entry_node, NULL, (const xmlChar *) "description", (xmlChar *) tmpbuf); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", mark_flag); xmlNewChild (entry_node, NULL, (const xmlChar *) "mark", (xmlChar *) tmpbuf); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", year_flag); xmlNewChild (entry_node, NULL, (const xmlChar *) "use_year", (xmlChar *) tmpbuf); } utl_xml_write_doc (prefs_get_data_filename(ICAL_ENTRIES_FILENAME, appGUI), doc); xmlFreeProp (attr); xmlFreeDoc (doc); ics_calendar_close (appGUI); } /*------------------------------------------------------------------------------*/ void ics_calendar_refresh (GUI *appGUI) { ics_calendar_close (appGUI); ics_calendar_init (appGUI); cal_set_day_info (appGUI); } /*------------------------------------------------------------------------------*/ void ical_events_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_window_get_size (GTK_WINDOW (appGUI->cal->events_window), &config.ib_window_size_x, &config.ib_window_size_y); gtk_widget_destroy (appGUI->cal->events_window); } /*------------------------------------------------------------------------------*/ void button_ical_events_window_close_cb (GtkButton *button, gpointer user_data) { ical_events_window_close_cb (GTK_WIDGET(button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint ical_events_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: ical_events_window_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void ical_events_list_create (gint calendar, GUI *appGUI) { struct ics_file *entry; struct ics_entry *item; GtkTreeIter iter; GSList *node; gboolean year_flag = FALSE, valid_flag, disabled; guint32 julian; gint j, n, cday, cmonth, cyear; gint jd, jm, jy; gchar tmpbuf[BUFFER_SIZE]; gtk_list_store_clear (GTK_LIST_STORE (appGUI->cal->ical_events_list_store)); utl_date_get_current_dmy (&cday, &cmonth, &cyear); /* get year flag */ j = n = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, NULL, j++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_FULL_DATE, &year_flag, ICAL_COLUMN_VALID_FLAG, &valid_flag, ICAL_COLUMN_DISABLED, &disabled, -1); if (valid_flag == FALSE || disabled == TRUE) continue; if (n == calendar) break; n++; } entry = g_slist_nth_data (appGUI->cal->ics_files_list, calendar); if (entry->entries_list == NULL) return; for (j = 0, node = entry->entries_list; node != NULL; node = node->next, j++) { item = g_slist_nth_data (entry->entries_list, j); gtk_list_store_append (appGUI->cal->ical_events_list_store, &iter); julian = item->julian; utl_date_julian_to_dmy (julian, &jd, &jm, &jy); if (year_flag == TRUE) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s (%s)", julian_to_str (julian, config.date_format, config.override_locale_settings), utl_date_print_j (julian, DATE_DAY_OF_WEEK_NAME, config.override_locale_settings)); gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_DATE, tmpbuf, -1); if (item->seconds_begin != 0 && item->seconds_end !=0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s - %s", utl_time_print_s (item->seconds_begin, TIME_HH_MM, config.override_locale_settings), utl_time_print_s (item->seconds_end, TIME_HH_MM, config.override_locale_settings)); gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_TIME, tmpbuf, -1); } else if (item->seconds_begin != 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", utl_time_print_s (item->seconds_begin, TIME_HH_MM, config.override_locale_settings)); gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_TIME, tmpbuf, -1); } else { gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_TIME, "-", -1); } } else { julian = utl_date_dmy_to_julian (jd, jm, LEAP_YEAR); gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_DATE, julian_to_str (julian, DATE_NAME_DAY, config.override_locale_settings), I_COLUMN_TIME, "-", -1); } gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_DATE_JULIAN, julian, I_COLUMN_TIME_B_SECONDS, item->seconds_begin, I_COLUMN_TIME_E_SECONDS, item->seconds_end, I_COLUMN_SUMMARY, str_remove_backslash (item->summary), I_COLUMN_FONT_WEIGHT, PANGO_WEIGHT_NORMAL, -1); if (jd == cday && jm == cmonth && (year_flag == FALSE || jy == cyear)) gtk_list_store_set (appGUI->cal->ical_events_list_store, &iter, I_COLUMN_FONT_WEIGHT, PANGO_WEIGHT_BOLD, -1); } } /*------------------------------------------------------------------------------*/ void calendar_update_items (gint calendar, GUI *appGUI) { struct ics_file *entry; gchar tmpbuf[BUFFER_SIZE]; gint i; entry = g_slist_nth_data (appGUI->cal->ics_files_list, calendar); g_return_if_fail (entry->entries_list != NULL); i = g_slist_length (entry->entries_list); g_snprintf (tmpbuf, BUFFER_SIZE, "%4d %s", i, ngettext ("event", "events", i)); gtk_label_set_markup (GTK_LABEL (appGUI->cal->n_items_label), tmpbuf); } /*------------------------------------------------------------------------------*/ void calendar_selected_cb (GtkComboBox *widget, gpointer user_data) { gint n; GUI *appGUI = (GUI *)user_data; n = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); calendar_update_items (n, appGUI); ical_events_list_create (n, appGUI); /* sort trigger */ gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable *)appGUI->cal->ical_events_sort, I_COLUMN_DATE_JULIAN, GTK_SORT_ASCENDING); } /*------------------------------------------------------------------------------*/ gint custom_ical_events_sort_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { guint32 julian_a, julian_b, julian_s; gint time_a, time_b, time_s; if(iter_a == NULL || iter_b == NULL) { return 0; } gtk_tree_model_get (model, iter_a, I_COLUMN_DATE_JULIAN, &julian_a, I_COLUMN_TIME_B_SECONDS, &time_a, -1); gtk_tree_model_get (model, iter_b, I_COLUMN_DATE_JULIAN, &julian_b, I_COLUMN_TIME_B_SECONDS, &time_b, -1); julian_s = julian_a - julian_b; time_s = time_a - time_b; if (julian_s == 0 && time_s != 0) return time_s; if (julian_s != 0) return julian_s; return 0; } /*------------------------------------------------------------------------------*/ void ical_events_browser (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *close_button; GtkTreeIter iter; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *scrolledwindow; GtkWidget *table; GtkWidget *label; gchar tmpbuf[BUFFER_SIZE]; gchar *ical_name; gboolean valid, disabled; gint i, k; i = k = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_VALID_FLAG, &valid, ICAL_COLUMN_DISABLED, &disabled, -1); if (valid == TRUE && disabled == FALSE) k++; } if (k < 1) { utl_gui_create_dialog (GTK_MESSAGE_INFO, _("No valid calendars defined"), GTK_WINDOW(appGUI->main_window)); return; } appGUI->cal->events_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->events_window), _("iCalendar events")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->events_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW(appGUI->cal->events_window), config.ib_window_size_x, config.ib_window_size_y); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->events_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->events_window), "delete_event", G_CALLBACK(ical_events_window_close_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->events_window), GTK_WINDOW(appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->events_window), 8); g_signal_connect (G_OBJECT (appGUI->cal->events_window), "key_press_event", G_CALLBACK (ical_events_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->events_window), vbox1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 6); table = gtk_grid_new (); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox1), table, FALSE, TRUE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 8); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Calendar")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->cal->ical_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cal->ical_combobox); gtk_combo_box_set_focus_on_click (GTK_COMBO_BOX (appGUI->cal->ical_combobox), FALSE); gtk_widget_set_can_focus(appGUI->cal->ical_combobox, FALSE); gtk_widget_set_hexpand(appGUI->cal->ical_combobox, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->cal->ical_combobox, 1, 0, 1, 1); g_signal_connect(appGUI->cal->ical_combobox, "changed", G_CALLBACK(calendar_selected_cb), appGUI); k = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, NULL, k++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_VALID_FLAG, &valid, ICAL_COLUMN_DISABLED, &disabled, -1); if (valid == TRUE && disabled == FALSE) { gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cal->ical_combobox), NULL, ical_name); } g_free (ical_name); } appGUI->cal->n_items_label = gtk_label_new (""); gtk_widget_show (appGUI->cal->n_items_label); gtk_widget_set_size_request (appGUI->cal->n_items_label, 100, -1); gtk_grid_attach (GTK_GRID (table), appGUI->cal->n_items_label, 3, 0, 1, 1); gtk_label_set_use_markup (GTK_LABEL (appGUI->cal->n_items_label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 6); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); appGUI->cal->ical_events_list_store = gtk_list_store_new(ICAL_EVENTS_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT); appGUI->cal->ical_events_sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL(appGUI->cal->ical_events_list_store)); appGUI->cal->ical_events_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL(appGUI->cal->ical_events_sort)); gtk_widget_show (appGUI->cal->ical_events_list); gtk_widget_set_can_default (appGUI->cal->ical_events_list, TRUE); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->cal->ical_events_list); /* create columns */ renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Date"), renderer, "text", I_COLUMN_DATE, "weight", I_COLUMN_FONT_WEIGHT, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("Julian", renderer, "text", I_COLUMN_DATE_JULIAN, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); g_signal_emit_by_name(column, "clicked"); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("Time"), renderer, "text", I_COLUMN_TIME, "weight", I_COLUMN_FONT_WEIGHT, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("Begin seconds", renderer, "text", I_COLUMN_TIME_B_SECONDS, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes("End seconds", renderer, "text", I_COLUMN_TIME_E_SECONDS, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); renderer = gtk_cell_renderer_text_new(); g_object_set(G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); column = gtk_tree_view_column_new_with_attributes(_("Summary"), renderer, "text", I_COLUMN_SUMMARY, "weight", I_COLUMN_FONT_WEIGHT, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", I_COLUMN_FONT_WEIGHT, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW(appGUI->cal->ical_events_list), column); gtk_tree_sortable_set_sort_func ((GtkTreeSortable *)appGUI->cal->ical_events_sort, I_COLUMN_DATE_JULIAN, (GtkTreeIterCompareFunc)custom_ical_events_sort_function, NULL, NULL); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); g_signal_connect(close_button, "clicked", G_CALLBACK(button_ical_events_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), close_button); gtk_widget_show(appGUI->cal->events_window); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cal->ical_combobox), 0); gtk_widget_grab_focus (close_button); } /*------------------------------------------------------------------------------*/ void ical_export_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; config.ical_export_pane_pos = gtk_paned_get_position(GTK_PANED(appGUI->cal->ical_export_vpaned)); gtk_widget_destroy (appGUI->cal->ical_export_window); } /*------------------------------------------------------------------------------*/ void button_ical_export_window_close_cb (GtkButton *button, gpointer user_data) { ical_export_window_close_cb (GTK_WIDGET(button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint ical_export_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { switch(event->keyval) { case GDK_KEY_Escape: ical_export_window_close_cb (GTK_WIDGET(widget), NULL, user_data); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void update_notes_marks (GuiCalendar *calendar, GUI *appGUI) { guint32 julian; gint i, days; GDate *date = g_date_new (); gui_calendar_clear_marks (GUI_CALENDAR(calendar), DAY_NOTE_MARK); gui_calendar_get_gdate (GUI_CALENDAR (calendar), date); days = utl_date_get_days_in_month (date); g_date_set_day (date, 1); julian = g_date_get_julian (date); for (i = 0; i < days; i++) if (cal_check_note (julian + i, appGUI) == TRUE) gui_calendar_mark_day (GUI_CALENDAR (calendar), i + 1, DAY_NOTE_MARK); g_date_free (date); } /*------------------------------------------------------------------------------*/ void use_date_period_cb (GtkToggleButton *togglebutton, gpointer user_data) { gboolean state; GUI *appGUI = (GUI *)user_data; state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton)); gtk_widget_set_sensitive (appGUI->cal->export_end_period_calendar, state); if (state == TRUE) { update_notes_marks (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), appGUI); } else { gui_calendar_clear_marks (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), DAY_NOTE_MARK); } } /*------------------------------------------------------------------------------*/ void select_file_cb (GtkWidget *widget, gpointer data) { GtkWidget *dialog; gchar f_filename[PATH_MAX]; GUI *appGUI = (GUI *)data; dialog = utl_gui_create_save_file_dialog(_("Select output file"), GTK_WINDOW(appGUI->cal->ical_export_window)); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { g_strlcpy (f_filename, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)), PATH_MAX-1); if (g_str_has_suffix (f_filename, ".ics") == FALSE && g_str_has_suffix (f_filename, ".ICS") == FALSE) { g_strlcat(f_filename, ".ics", PATH_MAX-1); } gtk_entry_set_text (GTK_ENTRY(appGUI->cal->output_file_entry), f_filename); } gtk_widget_destroy(dialog); } /*------------------------------------------------------------------------------*/ void calendar_begin_end_day_selected_cb (GuiCalendar *calendar, gpointer user_data) { GUI *appGUI = (GUI *) user_data; update_notes_marks (GUI_CALENDAR (calendar), appGUI); } /*------------------------------------------------------------------------------*/ gint get_export_items (GUI *appGUI) { GtkTreeIter iter; gint i; i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->cal->export_events_list_store), &iter, NULL, i++)); return i-1; } /*------------------------------------------------------------------------------*/ void add_export_item_to_list (guint32 julian, GUI *appGUI) { GtkTreeIter iter; gchar *text, *stripped; gint i; gchar tmpbuf[BUFFER_SIZE]; if (cal_check_note (julian, appGUI) == TRUE) { text = cal_get_note (julian, appGUI); stripped = utl_gui_text_strip_tags (text); i = 0; do { tmpbuf[i] = stripped[i]; i++; } while (stripped[i] != '\n' && i < BUFFER_SIZE); tmpbuf[i] = '\0'; gtk_list_store_append (appGUI->cal->export_events_list_store, &iter); gtk_list_store_set (appGUI->cal->export_events_list_store, &iter, IE_COLUMN_DATE, julian_to_str (julian, DATE_FULL, config.override_locale_settings), IE_COLUMN_DATE_JULIAN, julian, IE_COLUMN_SUMMARY, tmpbuf, IE_COLUMN_DESCRIPTION, stripped, -1); g_free (stripped); } } /*------------------------------------------------------------------------------*/ void button_add_date_cb (GtkButton *button, GUI *appGUI) { guint32 julian, begin_julian, end_julian; GDate *date = g_date_new (); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->use_date_period_checkbutton)) == FALSE) { gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), date); add_export_item_to_list (g_date_get_julian (date), appGUI); } else { gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), date); begin_julian = g_date_get_julian (date); gui_calendar_get_gdate (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), date); end_julian = g_date_get_julian (date); if (begin_julian > end_julian) { julian = begin_julian; begin_julian = end_julian; end_julian = julian; } for (julian = begin_julian; julian <= end_julian; julian++) { add_export_item_to_list (julian, appGUI); } } g_date_free (date); } /*------------------------------------------------------------------------------*/ void summary_edited_cb (GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model; GUI *appGUI = (GUI *)user_data; if (g_ascii_strcasecmp (new_text, "") != 0) { model = gtk_tree_view_get_model (GTK_TREE_VIEW(appGUI->cal->export_events_list_treeview)); if (gtk_tree_model_get_iter_from_string (model, &iter, path)) { gtk_list_store_set(appGUI->cal->export_events_list_store, &iter, IE_COLUMN_SUMMARY, new_text, -1); } } } /*------------------------------------------------------------------------------*/ void button_remove_date_cb (GtkButton *button, gpointer user_data) { GtkTreeIter iter; GtkTreePath *path; GUI *appGUI = (GUI *)user_data; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->cal->export_events_list_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->cal->export_events_list_store), &iter, path); gtk_list_store_remove (appGUI->cal->export_events_list_store, &iter); } } /*------------------------------------------------------------------------------*/ void button_clear_list_cb (GtkButton *button, gpointer user_data) { gint response; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)user_data; if (!get_export_items (appGUI)) return; g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("The list will be cleared and all entries will be lost."), _("Are you sure?")); response = utl_gui_create_dialog (GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->cal->ical_export_window)); if (response == GTK_RESPONSE_YES) { gtk_list_store_clear (appGUI->cal->export_events_list_store); } } /*------------------------------------------------------------------------------*/ void export_list_item_selected (GtkTreeSelection *selection, gpointer user_data) { GtkTreeIter iter; GtkTextIter titer; GtkTreeModel *model; GtkTextBuffer *text_buffer; gchar *text; GUI *appGUI = (GUI *)user_data; text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(appGUI->cal->export_day_note_textview)); utl_gui_clear_text_buffer (text_buffer, &titer); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, IE_COLUMN_DESCRIPTION, &text, -1); gtk_text_buffer_insert (text_buffer, &titer, text, -1); g_free (text); } } /*------------------------------------------------------------------------------*/ void ical_export_cb (GtkButton *button, gpointer user_data) { GtkTreeIter iter; gchar *filename; gint i; guint32 julian_day; gint day, month, year; gchar *summary, *description; icalcomponent *event, *calendar; icalproperty *prop; icalset *ics_file; struct icaltimetype atime; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)user_data; filename = g_strdup (gtk_entry_get_text(GTK_ENTRY(appGUI->cal->output_file_entry))); if (get_export_items(appGUI) == 0 || strlen(filename) == 0) { g_free (filename); return; } if (utl_gui_check_overwrite_file (filename, appGUI->cal->ical_export_window, appGUI) != 0) { return; } else { g_unlink (filename); } ics_file = icalset_new_file (filename); if (ics_file == NULL) { ical_export_window_close_cb (NULL, NULL, user_data); g_free (filename); return; } i = 0; calendar = icalcomponent_new (ICAL_VCALENDAR_COMPONENT); prop = icalproperty_new_prodid ("//Clay//NONSGML Osmo PIM//EN"); icalcomponent_add_property (calendar, prop); prop = icalproperty_new_version (VERSION); icalcomponent_add_property (calendar, prop); while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->cal->export_events_list_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cal->export_events_list_store), &iter, IE_COLUMN_DATE_JULIAN, &julian_day, IE_COLUMN_SUMMARY, &summary, IE_COLUMN_DESCRIPTION, &description, -1); event = icalcomponent_new (ICAL_VEVENT_COMPONENT); utl_date_julian_to_dmy (julian_day, &day, &month, &year); atime.day = day; atime.month = month; atime.year = year; atime.is_date = 1; g_snprintf (tmpbuf, BUFFER_SIZE, "id%d%d%d%d@clayo.org", year, month, day, i); prop = icalproperty_new_uid (tmpbuf); icalcomponent_add_property (event, prop); icalproperty_free (prop); prop = icalproperty_new_summary (summary); icalcomponent_add_property (event, prop); icalproperty_free (prop); prop = icalproperty_new_description (description); icalcomponent_add_property (event, prop); icalproperty_free (prop); prop = icalproperty_new_dtstart (atime); icalcomponent_add_property (event, prop); icalproperty_free (prop); prop = icalproperty_new_dtend (atime); icalcomponent_add_property (event, prop); icalproperty_free (prop); icalcomponent_add_component (calendar, event); icalcomponent_free (event); g_free (summary); g_free (description); } icalset_add_component (ics_file, calendar); icalfileset_commit (ics_file); icalcomponent_free (calendar); g_free (filename); if (i >= 2) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s %d %s.\n", _("Done!"), i-1, ngettext ("event exported", "events exported", i-1)); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW(appGUI->cal->ical_export_window)); } ical_export_window_close_cb (NULL, NULL, user_data); } /*------------------------------------------------------------------------------*/ void ical_export (GUI *appGUI) { GtkWidget *vbox1, *vbox2; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *export_button; GtkWidget *cancel_button; GtkWidget *hbox1, *hbox2, *hbox3, *hbox4; GtkWidget *frame; GtkWidget *browse_dir_button; GtkWidget *label; GtkWidget *add_item_button; GtkWidget *remove_item_button; GtkWidget *clear_list_button; GtkWidget *el_scrolledwindow; GtkWidget *dn_scrolledwindow; GtkTreeViewColumn *column; GtkCellRenderer *renderer; gchar tmpbuf[BUFFER_SIZE]; appGUI->cal->ical_export_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->ical_export_window), _("iCalendar export")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->ical_export_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW(appGUI->cal->ical_export_window), 600, 650); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->ical_export_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->ical_export_window), "delete_event", G_CALLBACK(ical_export_window_close_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->ical_export_window), GTK_WINDOW(appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->ical_export_window), 8); g_signal_connect (G_OBJECT (appGUI->cal->ical_export_window), "key_press_event", G_CALLBACK (ical_export_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->ical_export_window), vbox1); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Day Selector")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_widget_show (vbox2); gtk_widget_set_margin_left(vbox2, 12); gtk_container_add (GTK_CONTAINER (frame), vbox2); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0); appGUI->cal->export_begin_period_calendar = gui_calendar_new (); gtk_widget_show (appGUI->cal->export_begin_period_calendar); gui_calendar_set_cursor_type (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), CURSOR_BLOCK); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), config.selection_color, config.selector_alpha, SELECTOR_COLOR); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), config.today_marker_type, TODAY_MARKER); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), (config.display_options & !GUI_CALENDAR_NO_MONTH_CHANGE) | GUI_CALENDAR_SHOW_HEADING | GUI_CALENDAR_SHOW_DAY_NAMES | (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY)); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->export_begin_period_calendar, TRUE, TRUE, 0); update_notes_marks (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->export_begin_period_calendar), "day-selected", G_CALLBACK (calendar_begin_end_day_selected_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->export_begin_period_calendar), "day-selected-double-click", G_CALLBACK (button_add_date_cb), appGUI); appGUI->cal->export_end_period_calendar = gui_calendar_new (); gtk_widget_show (appGUI->cal->export_end_period_calendar); gui_calendar_set_cursor_type (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), CURSOR_BLOCK); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->export_begin_period_calendar), config.selection_color, config.selector_alpha, SELECTOR_COLOR); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), config.today_marker_type, TODAY_MARKER); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->export_end_period_calendar), (config.display_options & !GUI_CALENDAR_NO_MONTH_CHANGE) | GUI_CALENDAR_SHOW_HEADING | GUI_CALENDAR_SHOW_DAY_NAMES | (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY)); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->export_end_period_calendar, TRUE, TRUE, 0); gtk_widget_set_sensitive (appGUI->cal->export_end_period_calendar, FALSE); g_signal_connect (G_OBJECT (appGUI->cal->export_end_period_calendar), "day-selected", G_CALLBACK (calendar_begin_end_day_selected_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->export_end_period_calendar), "day-selected-double-click", G_CALLBACK (button_add_date_cb), appGUI); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0); appGUI->cal->use_date_period_checkbutton = gtk_check_button_new_with_mnemonic (_("Use date period")); gtk_widget_show (appGUI->cal->use_date_period_checkbutton); gtk_widget_set_can_focus (appGUI->cal->use_date_period_checkbutton, FALSE); g_signal_connect (G_OBJECT (appGUI->cal->use_date_period_checkbutton), "toggled", G_CALLBACK (use_date_period_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox2), appGUI->cal->use_date_period_checkbutton, FALSE, FALSE, 0); add_item_button = gtk_button_new_with_mnemonic (_("_Add")); gtk_widget_show (add_item_button); gtk_widget_set_can_focus (add_item_button, FALSE); gtk_box_pack_end (GTK_BOX (hbox2), add_item_button, FALSE, FALSE, 0); g_signal_connect(add_item_button, "clicked", G_CALLBACK(button_add_date_cb), appGUI); appGUI->cal->ical_export_vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL ); gtk_widget_show (appGUI->cal->ical_export_vpaned); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->ical_export_vpaned, TRUE, TRUE, 0); gtk_paned_set_position(GTK_PANED(appGUI->cal->ical_export_vpaned), config.ical_export_pane_pos); el_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (el_scrolledwindow); gtk_paned_pack1 (GTK_PANED (appGUI->cal->ical_export_vpaned), el_scrolledwindow, TRUE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (el_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (el_scrolledwindow), GTK_SHADOW_IN); appGUI->cal->export_events_list_store = gtk_list_store_new (ICAL_EXPORT_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING); appGUI->cal->export_events_list_treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(appGUI->cal->export_events_list_store)); gtk_widget_show (appGUI->cal->export_events_list_treeview); gtk_container_add (GTK_CONTAINER (el_scrolledwindow), appGUI->cal->export_events_list_treeview); appGUI->cal->export_events_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->cal->export_events_list_treeview)); g_signal_connect (G_OBJECT(appGUI->cal->export_events_list_selection), "changed", G_CALLBACK(export_list_item_selected), appGUI); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Date"), renderer, "text", IE_COLUMN_DATE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->cal->export_events_list_treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", IE_COLUMN_DATE_JULIAN, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->cal->export_events_list_treeview), column); renderer = gtk_cell_renderer_text_new(); g_object_set (G_OBJECT(renderer), "xpad", 2, NULL); g_object_set (G_OBJECT(renderer), "editable", TRUE, "editable-set", TRUE, NULL); g_object_set (G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (summary_edited_cb), appGUI); column = gtk_tree_view_column_new_with_attributes(_("Summary"), renderer, "text", IE_COLUMN_SUMMARY, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->cal->export_events_list_treeview), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", IE_COLUMN_DESCRIPTION, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->cal->export_events_list_treeview), column); dn_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (dn_scrolledwindow); gtk_paned_pack2 (GTK_PANED (appGUI->cal->ical_export_vpaned), dn_scrolledwindow, TRUE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dn_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (dn_scrolledwindow), GTK_SHADOW_IN); appGUI->cal->export_day_note_textview = gtk_text_view_new (); gtk_widget_show (appGUI->cal->export_day_note_textview); gtk_container_add (GTK_CONTAINER (dn_scrolledwindow), appGUI->cal->export_day_note_textview); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), FALSE); gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), GTK_WRAP_WORD_CHAR); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), FALSE); gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), 4); gtk_text_view_set_pixels_below_lines (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), 4); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), 4); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (appGUI->cal->export_day_note_textview), 4); hbox4 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox4); gtk_box_pack_start (GTK_BOX (vbox2), hbox4, FALSE, TRUE, 0); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_end (GTK_BOX (hbox4), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); clear_list_button = gtk_button_new_with_mnemonic (_("_Clear")); gtk_widget_show (clear_list_button); gtk_widget_set_can_focus (clear_list_button, FALSE); gtk_container_add (GTK_CONTAINER (hbuttonbox), clear_list_button); g_signal_connect(clear_list_button, "clicked", G_CALLBACK(button_clear_list_cb), appGUI); remove_item_button = gtk_button_new_with_mnemonic (_("_Remove")); gtk_widget_show (remove_item_button); gtk_widget_set_can_focus (remove_item_button, FALSE); gtk_container_add (GTK_CONTAINER (hbuttonbox), remove_item_button); g_signal_connect(remove_item_button, "clicked", G_CALLBACK(button_remove_date_cb), appGUI); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Output filename")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox3); gtk_widget_set_margin_left(hbox3, 12); gtk_container_add (GTK_CONTAINER (frame), hbox3); appGUI->cal->output_file_entry = gtk_entry_new (); gtk_widget_show (appGUI->cal->output_file_entry); gtk_box_pack_start (GTK_BOX (hbox3), appGUI->cal->output_file_entry, TRUE, TRUE, 0); gtk_widget_set_can_focus(appGUI->cal->output_file_entry, FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cal->output_file_entry), FALSE); browse_dir_button = gtk_button_new_with_mnemonic (_("_Open")); gtk_widget_show (browse_dir_button); gtk_widget_set_can_focus(browse_dir_button, FALSE); g_signal_connect(browse_dir_button, "clicked", G_CALLBACK(select_file_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox3), browse_dir_button, FALSE, FALSE, 0); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); gtk_widget_set_can_default (cancel_button, TRUE); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_ical_export_window_close_cb), appGUI); export_button = gtk_button_new_with_label (_("Export")); gtk_widget_show (export_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), export_button); gtk_widget_set_can_default (export_button, TRUE); g_signal_connect(export_button, "clicked", G_CALLBACK(ical_export_cb), appGUI); gtk_widget_show(appGUI->cal->ical_export_window); } /*------------------------------------------------------------------------------*/ #endif /* HAVE_LIBICAL */ osmo-0.4.2/src/calendar_fullyear.c0000664000175000017500000006134413066543472014046 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_fullyear.h" #include "i18n.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "options_prefs.h" #include "calendar.h" #include "calendar_notes.h" #include "calendar_ical.h" #include "calendar_widget.h" #include "calendar_utils.h" #include "stock_icons.h" /*------------------------------------------------------------------------*/ void fullyear_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; appGUI->cal->last_selected_year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton)); if (config.fullscreen == FALSE) { gtk_window_get_size (GTK_WINDOW (appGUI->cal->fullyear_window), &config.fy_window_size_x, &config.fy_window_size_y); } gtk_widget_destroy (appGUI->cal->fullyear_window); } /*------------------------------------------------------------------------------*/ void button_fullyear_window_close_cb (GtkButton *button, gpointer user_data) { fullyear_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ void select_date_day_cb (GtkWidget *widget, gpointer user_data) { GDate *date; MESSAGE *msg = (MESSAGE *) user_data; date = g_date_new_julian ((size_t) msg->data); g_return_if_fail (date != NULL); cal_jump_to_date (date, msg->appGUI); g_date_free (date); update_aux_calendars (msg->appGUI); fullyear_window_close_cb (GTK_WIDGET (widget), NULL, msg->appGUI); } /*------------------------------------------------------------------------*/ void display_calendar (guint year, GUI *appGUI) { static MESSAGE selected_date[MAX_MONTHS * FULL_YEAR_COLS]; GDate *cdate; gint calendar_table[MAX_MONTHS * FULL_YEAR_COLS]; guint current_day, current_month, current_year; guint month; gint i, idx, day, first_day, days; gchar tmpbuf[BUFFER_SIZE], tmpbuf2[BUFFER_SIZE]; for (i = 0; i < MAX_MONTHS * FULL_YEAR_COLS; i++) { calendar_table[i] = -1; } cdate = g_date_new (); g_return_if_fail (cdate != NULL); for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { g_date_set_dmy (cdate, 1, month, year); first_day = g_date_get_weekday (cdate); days = g_date_get_days_in_month (month, year); for (i = 1; i <= days; i++) { calendar_table[(month - 1) * FULL_YEAR_COLS + first_day + i - 2] = i; } } g_date_set_time_t (cdate, time (NULL)); current_day = g_date_get_day (cdate); current_month = g_date_get_month (cdate); current_year = g_date_get_year (cdate); for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { for (i = 0; i < FULL_YEAR_COLS; i++) { idx = (month - 1) * FULL_YEAR_COLS + i; g_signal_handlers_disconnect_by_func (G_OBJECT (appGUI->cal->calendar_buttons[idx]), G_CALLBACK (select_date_day_cb), &selected_date[idx]); day = calendar_table[idx]; if (day > 0) { if (day == current_day && month == current_month && year == current_year) { g_snprintf (tmpbuf2, BUFFER_SIZE, "%2d", day); } else { g_snprintf (tmpbuf2, BUFFER_SIZE, "%2d", day); } if (i % 7 + 1 == G_DATE_SATURDAY || i % 7 + 1 == G_DATE_SUNDAY) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", tmpbuf2); } else if (month % 2 == 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", tmpbuf2); } else { g_strlcpy (tmpbuf, tmpbuf2, BUFFER_SIZE); } g_date_set_dmy (cdate, (GDateDay) day, month, (GDateYear) gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton))); selected_date[idx].data = (gpointer) ((size_t)g_date_get_julian (cdate)); selected_date[idx].appGUI = appGUI; g_signal_connect (G_OBJECT (appGUI->cal->calendar_buttons[idx]), "clicked", G_CALLBACK (select_date_day_cb), &selected_date[idx]); GList *btnCh = gtk_container_get_children(GTK_CONTAINER (appGUI->cal->calendar_buttons[idx])); gtk_label_set_markup (GTK_LABEL (btnCh->data), tmpbuf); gtk_widget_show (appGUI->cal->calendar_buttons[idx]); } else { gtk_button_set_label (GTK_BUTTON (appGUI->cal->calendar_buttons[idx]), ""); gtk_widget_hide (GTK_WIDGET (appGUI->cal->calendar_buttons[idx])); } } } g_date_free (cdate); } /*------------------------------------------------------------------------*/ void change_to_current_year_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), utl_date_get_current_year ()); } /*------------------------------------------------------------------------*/ void change_to_next_year_cb (GtkWidget *widget, gpointer user_data) { guint year; GUI *appGUI = (GUI *) user_data; year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton)); year++; gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), year); } /*------------------------------------------------------------------------*/ void change_to_previous_year_cb (GtkWidget *widget, gpointer user_data) { guint year; GUI *appGUI = (GUI *) user_data; year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton)); if (year > JULIAN_GREGORIAN_YEAR) { year--; } gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), year); } /*------------------------------------------------------------------------*/ void change_year_spin_button_cb (GtkSpinButton *spinbutton, gpointer user_data) { guint i, month, year; GUI *appGUI = (GUI *) user_data; year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinbutton)); if (year == utl_date_get_current_year ()) { gtk_widget_set_sensitive (appGUI->cal->cyear_button, FALSE); } else { gtk_widget_set_sensitive (appGUI->cal->cyear_button, TRUE); } display_calendar (year, appGUI); for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { i = month - 1; gui_calendar_select_month (GUI_CALENDAR (appGUI->cal->fy_calendars[i]), month - 1, year); mark_events (appGUI->cal->fy_calendars[i], month - 1, year, appGUI); } } /*------------------------------------------------------------------------*/ void year_info_cb (GtkWidget *widget, gpointer user_data) { guint month, year, w_days; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *) user_data; year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton)); w_days = 0; for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { w_days += utl_get_weekend_days_in_month_my (month, year); } g_snprintf (tmpbuf, BUFFER_SIZE, "%s: %d\n%s: %s\n\n%s: %s\n\n%s: %d\n%s: %d\n%s: %d (%.1f%%)", _("Year"), year, _("Leap year"), g_date_is_leap_year (year) ? _("Yes"):_("No"), _("Chinese year animal"), get_chinese_year_name (year), _("Number of days"), utl_get_days_per_year (year), _("Number of weeks"), utl_weeks_in_year (year), _("Number of weekend days"), w_days, (double) w_days / utl_get_days_per_year (year) * 100.0); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW (appGUI->cal->fullyear_window)); } /*------------------------------------------------------------------------------*/ gint fullyear_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; switch (event->keyval) { case GDK_KEY_Escape: gtk_widget_destroy (appGUI->cal->fullyear_window); return TRUE; case GDK_KEY_F1: g_signal_emit_by_name (G_OBJECT(appGUI->cal->fy_alternative_view_checkbutton), "clicked"); return TRUE; case GDK_KEY_F2: year_info_cb (NULL, appGUI); return TRUE; case GDK_KEY_F3: change_to_current_year_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void alternative_view_cb (GtkToggleButton *togglebutton, gpointer user_data) { GUI *appGUI = (GUI *) user_data; config.fy_alternative_view = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton)); if (config.fy_alternative_view == TRUE) { gtk_widget_hide (appGUI->cal->fycal_table_1); gtk_widget_show (appGUI->cal->fycal_table_2); } else { gtk_widget_hide (appGUI->cal->fycal_table_2); gtk_widget_show (appGUI->cal->fycal_table_1); } } /*------------------------------------------------------------------------------*/ void calendar_dbclick_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; GDate *date = g_date_new (); gui_calendar_get_gdate (GUI_CALENDAR (widget), date); cal_jump_to_date (date, appGUI); update_aux_calendars (appGUI); g_date_free (date); fullyear_window_close_cb (GTK_WIDGET (widget), NULL, appGUI); } /*------------------------------------------------------------------------------*/ void calendar_create_fullyear_window (GUI *appGUI) { GtkWidget *vbox1, *vbox2; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *close_button; GtkWidget *hbox1; GtkWidget *prev_button; GtkWidget *info_button; GtkAdjustment *fy_spinbutton_adj; GtkWidget *next_button; GtkWidget *fycal_scrolledwindow; GtkWidget *fycal_viewport; GtkWidget *vseparator; GtkWidget *label; GtkWidget *fycal_label, *fycal_vbox; gchar tmpbuf[BUFFER_SIZE], buffer[BUFFER_SIZE]; gint i, j, x, y, idx; GDate *cdate; guint month, year; gint rotate = FALSE; cdate = g_date_new (); g_return_if_fail (cdate != NULL); g_date_set_time_t (cdate, time (NULL)); appGUI->cal->fullyear_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->fullyear_window), _("Full-year calendar")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->fullyear_window), GTK_WIN_POS_CENTER_ALWAYS); gtk_window_set_default_size (GTK_WINDOW (appGUI->cal->fullyear_window), config.fy_window_size_x, config.fy_window_size_y); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->fullyear_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->fullyear_window), "delete_event", G_CALLBACK (fullyear_window_close_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->cal->fullyear_window), GTK_WINDOW (appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->fullyear_window), 8); g_signal_connect (G_OBJECT (appGUI->cal->fullyear_window), "key_press_event", G_CALLBACK (fullyear_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->fullyear_window), vbox1); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 4); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Year")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, TRUE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_margin_top (label, 4); gtk_widget_set_margin_bottom (label, 4); fy_spinbutton_adj = gtk_adjustment_new (utl_date_get_current_year (), JULIAN_GREGORIAN_YEAR, 9999, 1, 10, 0); appGUI->cal->fy_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (fy_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->fy_spinbutton); g_signal_connect(appGUI->cal->fy_spinbutton, "value-changed", G_CALLBACK(change_year_spin_button_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->fy_spinbutton, FALSE, FALSE, 8); gtk_widget_set_size_request (appGUI->cal->fy_spinbutton, 80, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), TRUE); gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), GTK_UPDATE_IF_VALID); info_button = gtk_button_new_from_icon_name ("dialog-information", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(info_button, FALSE); gtk_widget_show (info_button); g_signal_connect (info_button, "clicked", G_CALLBACK (year_info_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (info_button, _("Year info")); } gtk_button_set_relief (GTK_BUTTON (info_button), GTK_RELIEF_NONE); gtk_box_pack_start (GTK_BOX (hbox1), info_button, FALSE, FALSE, 2); vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_box_pack_start (GTK_BOX (hbox1), vseparator, FALSE, FALSE, 8); prev_button = gtk_button_new_from_icon_name ("go-previous", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (prev_button, FALSE); gtk_widget_show (prev_button); g_signal_connect (prev_button, "clicked", G_CALLBACK (change_to_previous_year_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (prev_button, _("Previous year")); } gtk_button_set_relief (GTK_BUTTON (prev_button), GTK_RELIEF_NONE); gtk_box_pack_start (GTK_BOX (hbox1), prev_button, FALSE, FALSE, 2); appGUI->cal->cyear_button = gtk_button_new_from_icon_name ("go-home", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (appGUI->cal->cyear_button, FALSE); gtk_widget_show (appGUI->cal->cyear_button); g_signal_connect (appGUI->cal->cyear_button, "clicked", G_CALLBACK (change_to_current_year_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (appGUI->cal->cyear_button, _("Current year")); } gtk_button_set_relief (GTK_BUTTON (appGUI->cal->cyear_button), GTK_RELIEF_NONE); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->cyear_button, FALSE, FALSE, 2); next_button = gtk_button_new_from_icon_name ("go-next", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(next_button, FALSE); gtk_widget_show (next_button); g_signal_connect (next_button, "clicked", G_CALLBACK (change_to_next_year_cb), appGUI); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (next_button, _("Next year")); } gtk_button_set_relief (GTK_BUTTON (next_button), GTK_RELIEF_NONE); gtk_box_pack_start (GTK_BOX (hbox1), next_button, FALSE, FALSE, 2); vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_box_pack_start (GTK_BOX (hbox1), vseparator, FALSE, FALSE, 8); appGUI->cal->fy_alternative_view_checkbutton = gtk_check_button_new_with_mnemonic (_("Alternative view")); gtk_widget_set_can_focus (appGUI->cal->fy_alternative_view_checkbutton, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->fy_alternative_view_checkbutton), config.fy_alternative_view); g_signal_connect (G_OBJECT (appGUI->cal->fy_alternative_view_checkbutton), "toggled", G_CALLBACK (alternative_view_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->fy_alternative_view_checkbutton, FALSE, FALSE, 2); gtk_widget_show (appGUI->cal->fy_alternative_view_checkbutton); fycal_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (fycal_scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), fycal_scrolledwindow, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (fycal_scrolledwindow), 4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (fycal_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); fycal_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (fycal_viewport); gtk_container_add (GTK_CONTAINER (fycal_scrolledwindow), fycal_viewport); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_container_add (GTK_CONTAINER (fycal_viewport), vbox2); /*-------------------------------------------------------------------------------------*/ /* First view */ appGUI->cal->fycal_table_1 = gtk_grid_new (); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->fy_alternative_view_checkbutton)) == FALSE) { gtk_widget_show (appGUI->cal->fycal_table_1); } gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->fycal_table_1, TRUE, TRUE, 0); vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_widget_set_hexpand(vseparator, TRUE); gtk_widget_set_vexpand(vseparator, TRUE); if (config.fy_simple_view == TRUE) { gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), vseparator, 1, 0, 1, 14); } else { gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), vseparator, 1, 0, 1, 16); } hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, 2, 1, 37, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, 0, 1, 1, 1); if (config.fy_simple_view == FALSE) { vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_widget_set_hexpand(vseparator, TRUE); gtk_widget_set_vexpand(vseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), vseparator, FULL_YEAR_COLS + 2, 0, 1, 16); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, 2, MAX_MONTHS + 2, 37, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, 0, MAX_MONTHS + 2, 1, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, FULL_YEAR_COLS + 3, 1, 1, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_widget_set_hexpand(hseparator, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), hseparator, FULL_YEAR_COLS + 3, MAX_MONTHS + 2, 1, 1); } g_date_set_day (cdate, 1); for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { g_date_set_month (cdate, month); g_date_strftime (buffer, BUFFER_SIZE, config.fy_simple_view ? "%b" : "%B", cdate); g_snprintf (tmpbuf, BUFFER_SIZE, (month % 2) ? "%s" : "%s", buffer); label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), label, 0, month + 1, 1, 1); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); gtk_label_set_markup (GTK_LABEL (label), tmpbuf); if (config.fy_simple_view == FALSE) { label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), label, FULL_YEAR_COLS + 3, month + 1, 1, 1); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); gtk_label_set_markup (GTK_LABEL (label), tmpbuf); } } /* start with monday */ g_date_set_dmy (cdate, 1, 1, 2007); for (i = 0; i < FULL_YEAR_COLS; i++) { g_date_set_day (cdate, (i % DAYS_PER_WEEK) + 1); g_date_strftime (buffer, BUFFER_SIZE, "%a", cdate); if (g_utf8_strlen (buffer, -1) > 2) rotate = TRUE; if (i % 7 + 1 == G_DATE_SATURDAY || i % 7 + 1 == G_DATE_SUNDAY) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", buffer); } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", buffer); } label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), label, i + 2, 0, 1, 1); gtk_widget_set_margin_left (label, 4); gtk_widget_set_margin_right (label, 4); if (rotate) gtk_label_set_angle (GTK_LABEL (label), 90); gtk_label_set_markup (GTK_LABEL (label), tmpbuf); if (config.fy_simple_view == FALSE) { label = gtk_label_new (NULL); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), label, i + 2, MAX_MONTHS + 3, 1, 1); gtk_widget_set_margin_left (label, 4); gtk_widget_set_margin_right (label, 4); if (rotate) gtk_label_set_angle (GTK_LABEL (label), 90); gtk_label_set_markup (GTK_LABEL (label), tmpbuf); } } for (month = G_DATE_JANUARY; month <= G_DATE_DECEMBER; month++) { for (j = 0; j < FULL_YEAR_COLS; j++) { i = month - 1; idx = i * FULL_YEAR_COLS + j; appGUI->cal->calendar_buttons[idx] = gtk_button_new_with_label (""); gtk_widget_set_can_focus (appGUI->cal->calendar_buttons[idx], FALSE); gtk_button_set_relief (GTK_BUTTON (appGUI->cal->calendar_buttons[idx]), GTK_RELIEF_NONE); gtk_widget_show (appGUI->cal->calendar_buttons[idx]); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_1), appGUI->cal->calendar_buttons[idx], j+2, i+2, 1, 1); } } display_calendar (utl_date_get_current_year (), appGUI); gtk_widget_set_sensitive (appGUI->cal->cyear_button, FALSE); /*-------------------------------------------------------------------------------------*/ /* Second view */ appGUI->cal->fycal_table_2 = gtk_grid_new (); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->fy_alternative_view_checkbutton)) == TRUE) { gtk_widget_show (appGUI->cal->fycal_table_2); } gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->fycal_table_2, TRUE, TRUE, 0); for (i = y = 0; y < 3; y++) { for (x = 0; x < 4; x++, i++) { fycal_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (fycal_vbox); gtk_widget_set_hexpand(fycal_vbox, TRUE); gtk_grid_attach (GTK_GRID (appGUI->cal->fycal_table_2), fycal_vbox, x, y, 1, 1); fycal_label = gtk_label_new (NULL); gtk_widget_show (fycal_label); gtk_box_pack_start (GTK_BOX (fycal_vbox), fycal_label, FALSE, FALSE, 0); appGUI->cal->fy_calendars[i] = gui_calendar_new (); g_signal_connect (appGUI->cal->fy_calendars[i], "day_selected_double_click", G_CALLBACK (calendar_dbclick_cb), appGUI); gtk_widget_show (appGUI->cal->fy_calendars[i]); gtk_widget_set_can_focus (appGUI->cal->fy_calendars[i], FALSE); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->fy_calendars[i]), (config.display_options & (GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_WEEK_START_MONDAY)) | GUI_CALENDAR_NO_MONTH_CHANGE); gui_calendar_enable_cursor (GUI_CALENDAR (appGUI->cal->fy_calendars[i]), FALSE); gui_set_calendar_defaults(appGUI->cal->fy_calendars[i]); year = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton)); month = i + 1; gui_calendar_select_month (GUI_CALENDAR (appGUI->cal->fy_calendars[i]), month - 1, year); mark_events (appGUI->cal->fy_calendars[i], month - 1, year, appGUI); g_date_set_dmy (cdate, 1, month, year); g_date_strftime (buffer, BUFFER_SIZE, "%B", cdate); gtk_label_set_text (GTK_LABEL (fycal_label), buffer); gtk_box_pack_start (GTK_BOX (fycal_vbox), appGUI->cal->fy_calendars[i], FALSE, FALSE, 0); } } if (appGUI->cal->last_selected_year == -1) { gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), utl_date_get_current_year ()); } else { gtk_spin_button_set_value (GTK_SPIN_BUTTON (appGUI->cal->fy_spinbutton), appGUI->cal->last_selected_year); } /*-------------------------------------------------------------------------------------*/ hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); g_signal_connect (close_button, "clicked", G_CALLBACK (button_fullyear_window_close_cb), appGUI); gtk_container_add (GTK_CONTAINER (hbuttonbox), close_button); gtk_widget_show (appGUI->cal->fullyear_window); } /*------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_export.c0000664000175000017500000012337513161167412013604 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "contacts_export.h" #include "i18n.h" #include "utils.h" #include "utils_date.h" #include "utils_gui.h" #include "contacts.h" #include "calendar_utils.h" #include "stock_icons.h" #include "options_prefs.h" #include "vcf.h" #ifdef CONTACTS_ENABLED static gint export_contacts_to_file(gchar *filename, gboolean header, GUI *appGUI); /*-------------------------------------------------------------------------------------*/ static gboolean is_export_column(gint column) { if(config.export_fields[column] == '+') { return TRUE; } return FALSE; } /*-------------------------------------------------------------------------------------*/ static void export_check (GUI *appGUI) { gint i, k; const gchar *text; if (appGUI->cnt->output_file_entry != NULL && appGUI->cnt->export_button != NULL) { k = 0; for(i=0; i < CONTACTS_NUM_COLUMNS; i++) { if(is_export_column(i)) k++; } text = gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->output_file_entry)); if (text == NULL) { gtk_widget_set_sensitive(appGUI->cnt->export_button, FALSE); } else if (strlen(text) && k) { gtk_widget_set_sensitive(appGUI->cnt->export_button, TRUE); } else { gtk_widget_set_sensitive(appGUI->cnt->export_button, FALSE); } } } /*-------------------------------------------------------------------------------------*/ static void export_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_window_get_size (GTK_WINDOW(appGUI->cnt->export_window), &config.contacts_export_win_w, &config.contacts_export_win_h); gdk_window_get_root_origin (gtk_widget_get_window(appGUI->cnt->export_window), &config.contacts_export_win_x, &config.contacts_export_win_y); gtk_widget_destroy(appGUI->cnt->export_window); appGUI->cnt->output_file_entry = NULL; appGUI->cnt->export_button = NULL; } /*-------------------------------------------------------------------------------------*/ static void export_cb(GtkWidget *widget, gpointer data) { gint n; gboolean header; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; if (strlen(gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->output_file_entry)))) { header = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->cnt->first_row_header_check_button)); n = export_contacts_to_file((gchar *) gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->output_file_entry)), header, appGUI); if (n != -1) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s %d %s.\n", _("Done!"), n, ngettext ("contact exported", "contacts exported", n)); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW(appGUI->cnt->export_window)); export_window_close_cb (widget, NULL, appGUI); } } } /*------------------------------------------------------------------------------*/ static void button_export_window_close_cb (GtkWidget *widget, gpointer data) { GUI *appGUI = (GUI *)data; export_window_close_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ struct contact_export_strategy { void (*begin_file)(GUI * appGUI, export_writer *writer, void *writer_user_data); void (*begin_contact)(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data); void (*handle_contact_value)(gint column, gchar const * value, GtkTreeIter *iter, GUI * appGUI, export_writer *writer, void *writer_user_data); void (*end_contact)(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data); void (*end_file)(GUI * appGUI, export_writer *writer, void *writer_user_data); }; /*------------------------------------------------------------------------------*/ static void xhtml_begin_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { gchar tmpbuf[BUFFER_SIZE]; gint i, a, b; writer(writer_user_data, "\n"); writer(writer_user_data, "\n"); writer(writer_user_data, "\n"); writer(writer_user_data, "\tContact List\n"); writer(writer_user_data, "\t\n"); writer(writer_user_data, "\t\n"); writer(writer_user_data, "\t\n"); writer(writer_user_data, "\n\n"); writer(writer_user_data, "\n\n"); writer(writer_user_data, "

Contact List

\n\n"); writer(writer_user_data, "\n"); writer(writer_user_data, "\n"); for (i = 0; i < CONTACTS_NUM_COLUMNS; i++) { if (is_export_column(i)) { writer(writer_user_data, "\t\n"); } } writer(writer_user_data, "\n\n"); } static void xhtml_begin_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { if (number & 1) { writer(writer_user_data, "\n"); } else { writer(writer_user_data, "\n"); } } static void xhtml_end_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { writer(writer_user_data, "\n\n"); } static void xhtml_handle_contact_value(gint column, gchar const * value, GtkTreeIter *iter, GUI * appGUI, export_writer *writer, void *writer_user_data) { gint a, b; gchar tmpbuf[BUFFER_SIZE]; writer(writer_user_data, "\t\n"); } static void xhtml_end_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { writer(writer_user_data, "
"); if (appGUI->cnt->contact_fields_tags_name[i * 2] != NULL) { for (a = b = 0; a < strlen(appGUI->cnt->contact_fields_tags_name[i * 2]); a++) { if (appGUI->cnt->contact_fields_tags_name[i * 2][a] == ' ') { tmpbuf[b] = '\0'; strcat(tmpbuf, " "); b += 6; } else { tmpbuf[b++] = appGUI->cnt->contact_fields_tags_name[i * 2][a]; } } tmpbuf[b] = '\0'; writer(writer_user_data, "%s", tmpbuf); } writer(writer_user_data, "
"); if (value != NULL) { for (a = b = 0; a < strlen(value); a++) { if (value[a] == ' ') { tmpbuf[b] = '\0'; strcat(tmpbuf, " "); b += 6; } else { tmpbuf[b++] = value[a]; } } tmpbuf[b] = '\0'; switch (column) { case COLUMN_EMAIL_1: case COLUMN_EMAIL_2: case COLUMN_EMAIL_3: case COLUMN_EMAIL_4: writer(writer_user_data, "%s", tmpbuf, tmpbuf); break; case COLUMN_WWW_1: case COLUMN_WWW_2: case COLUMN_WWW_3: case COLUMN_WWW_4: case COLUMN_BLOG: writer(writer_user_data, "%s", tmpbuf, tmpbuf); break; default: writer(writer_user_data, "%s", tmpbuf); } } writer(writer_user_data, "
\n"); writer(writer_user_data, "\n"); writer(writer_user_data, "\n"); } /*------------------------------------------------------------------------------*/ static void csv_begin_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { } static void csv_no_header_begin_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { } static gboolean csv_add_coma; static void csv_header_begin_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { if (number == 0) { gint i; gboolean add_coma = FALSE; for (i = 0; i < CONTACTS_NUM_COLUMNS; i++) { if (is_export_column(i)) { if (add_coma) { writer(writer_user_data, ","); } add_coma = TRUE; writer(writer_user_data, "%s", appGUI->cnt->contact_fields_tags_name[i * 2]); } } writer(writer_user_data, "\r\n"); } csv_add_coma = FALSE; } static void csv_end_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { writer(writer_user_data, "\r\n"); } static void csv_handle_contact_value(gint column, gchar const * value, GtkTreeIter *iter, GUI * appGUI, export_writer *writer, void *writer_user_data) { if (csv_add_coma) { writer(writer_user_data, ","); } csv_add_coma = TRUE; if (value != NULL) { gint i; gboolean must_quote, leading_space, trailing_space; gsize len; len = strlen(value); leading_space = TRUE; trailing_space = FALSE; for (i = 0, must_quote = FALSE; i < len; i++) { if (value[i] == '"' || value[i] == ',' || value[i] == '\n') { must_quote = TRUE; break; } else if (value[i] == ' ' || value[i] == '\t') { trailing_space = TRUE; } else { trailing_space = FALSE; if (i == 0) { leading_space = FALSE; } else if (leading_space) { must_quote = TRUE; break; } } } if (!must_quote) { /* do not trim whitespaces, RFC 4180 */ must_quote = (leading_space || trailing_space) ? TRUE : FALSE; } if (must_quote) { gchar *buffer = g_new(gchar, len * 2 + 1); gint j; for (i = 0, j = 0; i < len; i++) { if (value[i] == '"') { buffer[j++] = '"'; } else if (value[i] == '\n') { buffer[j++] = '\r'; } buffer[j++] = value[i]; } buffer[j] = '\0'; writer(writer_user_data, "\"%s\"", buffer); g_free(buffer); } else { writer(writer_user_data, "%s", value); } } } static void csv_end_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { } /*------------------------------------------------------------------------------*/ static vcf_writer *vcf; static struct { export_writer *writer; void *data; } vcf_writer_data; static void vcf_write_cb(gchar const *buffer, gsize buffer_size, void *user_data) { export_writer *writer = vcf_writer_data.writer; void *data = vcf_writer_data.data; gchar *tmp = g_strndup(buffer, buffer_size); /* NULL terminated for writer */ writer(data, tmp); g_free(tmp); } static void vcf_begin_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { vcf_writer_data.writer = writer; vcf_writer_data.data = writer_user_data; vcf = vcf_create_writer(vcf_write_cb, NULL); } static gboolean vcf_write_required_properties; static gboolean vcf_write_home_address; static gboolean vcf_write_work_address; static gboolean vcf_write_org; static void vcf_begin_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { vcf_write_begin(vcf); vcf_write_required_properties = TRUE; vcf_write_home_address = TRUE; vcf_write_work_address = TRUE; vcf_write_org = TRUE; } static void vcf_export_address(gchar const* type, gint address_column, gint city_column, gint state_column, gint post_code_column, gint country_column, GtkTreeIter *iter, GUI * appGUI) { gchar *address, *city, *state, *post_code, *country; gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), iter, address_column, &address, city_column, &city, state_column, &state, post_code_column, &post_code, country_column, &country, -1); vcf_write_ADR(vcf, type, is_export_column(address_column) ? address : NULL, is_export_column(city_column) ? city : NULL, is_export_column(state_column) ? state : NULL, is_export_column(post_code_column) ? post_code : NULL, is_export_column(country_column) ? country : NULL ); g_free(address); g_free(city); g_free(state); g_free(post_code); g_free(country); } static void vcf_handle_contact_value(gint column, gchar const * value, GtkTreeIter *iter, GUI * appGUI, export_writer *writer, void *writer_user_data) { if (vcf_write_required_properties == TRUE) { gchar *first_name, *last_name, *second_name; gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), iter, COLUMN_FIRST_NAME, &first_name, COLUMN_LAST_NAME, &last_name, COLUMN_SECOND_NAME, &second_name, -1); vcf_write_FN(vcf, first_name, last_name); vcf_write_N(vcf, last_name, first_name, second_name); vcf_write_required_properties = FALSE; g_free(first_name); g_free(last_name); g_free(second_name); vcf_write_required_properties = FALSE; } if (value) { switch (column) { case COLUMN_NICK_NAME: vcf_write_NICKNAME(vcf, value); break; case COLUMN_BIRTH_DAY_DATE: { guint32 julian_day; gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), iter, COLUMN_BIRTH_DAY_DATE, &julian_day, -1); vcf_write_BDAY(vcf, julian_day); break; } case COLUMN_HOME_ADDRESS: case COLUMN_HOME_CITY: case COLUMN_HOME_STATE: case COLUMN_HOME_POST_CODE: case COLUMN_HOME_COUNTRY: if (vcf_write_home_address) { vcf_export_address(VCF_TYPE_HOME, COLUMN_HOME_ADDRESS, COLUMN_HOME_CITY, COLUMN_HOME_STATE, COLUMN_HOME_POST_CODE, COLUMN_HOME_COUNTRY, iter, appGUI); vcf_write_home_address = FALSE; } break; case COLUMN_WORK_ADDRESS: case COLUMN_WORK_CITY: case COLUMN_WORK_STATE: case COLUMN_WORK_POST_CODE: case COLUMN_WORK_COUNTRY: if (vcf_write_work_address) { vcf_export_address(VCF_TYPE_WORK, COLUMN_WORK_ADDRESS, COLUMN_WORK_CITY, COLUMN_WORK_STATE, COLUMN_WORK_POST_CODE, COLUMN_WORK_COUNTRY, iter, appGUI); vcf_write_work_address = FALSE; } break; case COLUMN_WORK_ORGANIZATION: case COLUMN_WORK_DEPARTMENT: if (vcf_write_org) { gchar *organization, *department; gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), iter, COLUMN_WORK_ORGANIZATION, &organization, COLUMN_WORK_DEPARTMENT, &department, -1); vcf_write_ORG(vcf, is_export_column(COLUMN_WORK_ORGANIZATION) ? organization : NULL, is_export_column(COLUMN_WORK_DEPARTMENT) ? department : NULL); g_free(organization); g_free(department); vcf_write_org = FALSE; } break; case COLUMN_WORK_FAX: vcf_write_TEL(vcf, value, 1, VCF_TYPE_TEL_FAX, VCF_TYPE_WORK); break; case COLUMN_WORK_PHONE_1: case COLUMN_WORK_PHONE_2: case COLUMN_WORK_PHONE_3: case COLUMN_WORK_PHONE_4: { gint pref = column - COLUMN_WORK_PHONE_1 + 1; vcf_write_TEL(vcf, value, pref, VCF_TYPE_TEL_VOICE, VCF_TYPE_WORK); break; } case COLUMN_HOME_PHONE_1: case COLUMN_HOME_PHONE_2: case COLUMN_HOME_PHONE_3: case COLUMN_HOME_PHONE_4: { gint pref = column - COLUMN_HOME_PHONE_1 + 1; vcf_write_TEL(vcf, value, pref, VCF_TYPE_TEL_VOICE, VCF_TYPE_HOME); break; } case COLUMN_CELL_PHONE_1: case COLUMN_CELL_PHONE_2: case COLUMN_CELL_PHONE_3: case COLUMN_CELL_PHONE_4: { gint pref = column - COLUMN_CELL_PHONE_1 + 1; vcf_write_TEL(vcf, value, pref, VCF_TYPE_TEL_CELL); break; } case COLUMN_EMAIL_1: case COLUMN_EMAIL_2: case COLUMN_EMAIL_3: case COLUMN_EMAIL_4: { gint pref = column - COLUMN_EMAIL_1 + 1; vcf_write_EMAIL(vcf, value, pref); break; } case COLUMN_WWW_1: case COLUMN_WWW_2: case COLUMN_WWW_3: case COLUMN_WWW_4: { gint pref = column - COLUMN_WWW_1 + 1; vcf_write_URL_pref(vcf, value, pref); break; } case COLUMN_IM_AOL: vcf_write_IMPP(vcf, value, "aol"); break; case COLUMN_IM_GG: vcf_write_IMPP(vcf, value, "gg"); break; case COLUMN_IM_ICQ: vcf_write_IMPP(vcf, value, "icq"); break; case COLUMN_IM_JABBER: vcf_write_IMPP(vcf, value, "xmpp"); break; case COLUMN_IM_MSN: vcf_write_IMPP(vcf, value, "msn"); break; case COLUMN_IM_SKYPE: vcf_write_IMPP(vcf, value, "skype"); break; case COLUMN_IM_TLEN: vcf_write_IMPP(vcf, value, "tlen"); break; case COLUMN_IM_YAHOO: vcf_write_IMPP(vcf, value, "ymsgr"); break; case COLUMN_BLOG: vcf_write_URL(vcf, value); break; case COLUMN_INFO: vcf_write_NOTE(vcf, value); break; default: break; } } } static void vcf_end_contact(gint number, GUI * appGUI, export_writer *writer, void *writer_user_data) { vcf_write_end(vcf); } static void vcf_end_file(GUI * appGUI, export_writer *writer, void *writer_user_data) { vcf_close_writer(vcf); vcf = NULL; vcf_writer_data.writer = NULL; vcf_writer_data.data = NULL; } /*------------------------------------------------------------------------------*/ static void export_to_file(void *user_data, gchar const *format, ...) { FILE *filehandle = user_data; va_list arguments; va_start(arguments, format); vfprintf(filehandle, format, arguments); va_end(arguments); } static struct contact_export_strategy * choose_strategy(gint type, gboolean header) { if (type == EXPORT_TO_XHTML) { struct contact_export_strategy *strategy = g_new0(struct contact_export_strategy, 1); strategy->begin_file = xhtml_begin_file; strategy->begin_contact = xhtml_begin_contact; strategy->handle_contact_value = xhtml_handle_contact_value; strategy->end_contact = xhtml_end_contact; strategy->end_file = xhtml_end_file; return strategy; } else if (type == EXPORT_TO_CSV) { struct contact_export_strategy *strategy = g_new0(struct contact_export_strategy, 1); strategy->begin_file = csv_begin_file; strategy->begin_contact = header ? csv_header_begin_contact : csv_no_header_begin_contact; strategy->handle_contact_value = csv_handle_contact_value; strategy->end_contact = csv_end_contact; strategy->end_file = csv_end_file; return strategy; } else if (type == EXPORT_TO_VCF) { struct contact_export_strategy *strategy = g_new0(struct contact_export_strategy, 1); strategy->begin_file = vcf_begin_file; strategy->begin_contact = vcf_begin_contact; strategy->handle_contact_value = vcf_handle_contact_value; strategy->end_contact = vcf_end_contact; strategy->end_file = vcf_end_file; return strategy; } return NULL; } gint export_contacts(gint type, gboolean header, GUI *appGUI, export_writer *writer, void *writer_user_data) { GtkTreeIter sort_iter; gboolean valid; gint i, exported; gchar *text; guint32 date; struct contact_export_strategy *strategy; exported = 0; strategy = choose_strategy(type, header); if (strategy) { strategy->begin_file(appGUI, writer, writer_user_data); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->cnt->contacts_sort), &sort_iter); while (valid) { GtkTreeIter filter_iter, iter; gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->cnt->contacts_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->cnt->contacts_filter), &iter, &filter_iter); strategy->begin_contact(exported, appGUI, writer, writer_user_data); for (i = 0; i < CONTACTS_NUM_COLUMNS; i++) { if (is_export_column(i)) { if (i == COLUMN_BIRTH_DAY_DATE || i == COLUMN_NAME_DAY_DATE) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, i, &date, -1); if (date == 0) { text = NULL; } else { if (i == COLUMN_BIRTH_DAY_DATE) { text = g_strdup((const gchar *) julian_to_str(date, DATE_DD_MM_YYYY, TRUE)); } else { text = g_strdup((const gchar *) julian_to_str(date, DATE_DD_MM_YYYY, TRUE)); } } } else { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, i, &text, -1); } strategy->handle_contact_value(i, text, &iter, appGUI, writer, writer_user_data); g_free(text); } } strategy->end_contact(exported, appGUI, writer, writer_user_data); exported++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(appGUI->cnt->contacts_sort), &sort_iter); } strategy->end_file(appGUI, writer, writer_user_data); g_free(strategy); return exported; } else { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot create file."), GTK_WINDOW(appGUI->cnt->export_window)); return -1; } } static gint export_contacts_to_file(gchar *filename, gboolean header, GUI *appGUI) { FILE *filehandle; if (utl_gui_check_overwrite_file(filename, appGUI->cnt->export_window, appGUI) != 0) { return -1; } filehandle = g_fopen(filename, "w"); if (filehandle) { gint exported = export_contacts(config.export_format, header, appGUI, export_to_file, filehandle); fclose(filehandle); return exported; } else { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot create file."), GTK_WINDOW(appGUI->cnt->export_window)); return -1; } } /*------------------------------------------------------------------------------*/ static void browse_dir_cb (GtkWidget *widget, gpointer data) { GtkWidget *dialog; gchar f_filename[PATH_MAX]; GUI *appGUI = (GUI *)data; dialog = utl_gui_create_save_file_dialog(_("Select output file"), GTK_WINDOW(appGUI->cnt->export_window)); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { g_strlcpy (f_filename, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)), PATH_MAX-1); if (config.export_format == EXPORT_TO_XHTML) { if (g_str_has_suffix (f_filename, ".html") == FALSE && g_str_has_suffix (f_filename, ".HTML") == FALSE) { g_strlcat(f_filename, ".html", PATH_MAX-1); } } else if(config.export_format == EXPORT_TO_CSV) { if (g_str_has_suffix (f_filename, ".csv") == FALSE && g_str_has_suffix (f_filename, ".CSV") == FALSE) { g_strlcat(f_filename, ".csv", PATH_MAX-1); } } else if(config.export_format == EXPORT_TO_VCF) { if (g_str_has_suffix (f_filename, ".vcf") == FALSE && g_str_has_suffix (f_filename, ".VCF") == FALSE && g_str_has_suffix (f_filename, ".vcard") == FALSE && g_str_has_suffix (f_filename, ".VCARD") == FALSE) { g_strlcat(f_filename, ".vcf", PATH_MAX-1); } } gtk_entry_set_text (GTK_ENTRY(appGUI->cnt->output_file_entry), f_filename); } export_check(appGUI); gtk_widget_destroy(dialog); } /*------------------------------------------------------------------------------*/ static gint export_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: export_window_close_cb (widget, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ static void export_field_selected_cb (GtkToggleButton *button, gpointer user_data) { gint i; MESSAGE *msg = (MESSAGE *)user_data; i = (size_t) msg->data; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)) == TRUE) { config.export_fields[i] = '+'; } else { config.export_fields[i] = '-'; } export_check(msg->appGUI); } /*------------------------------------------------------------------------------*/ static void format_changed_cb(GtkToggleButton *button, gpointer user_data) { gint format = GPOINTER_TO_INT(user_data); if (gtk_toggle_button_get_active(button)) { config.export_format = format; } } /*------------------------------------------------------------------------------*/ static void select_action_cb (GtkWidget *widget, gpointer user_data) { gint i; gboolean state; MESSAGE *msg = (MESSAGE *)user_data; for(i=0; i < CONTACTS_NUM_COLUMNS; i++) { if (i != COLUMN_PHOTO && i != COLUMN_ID) { switch((size_t) msg->data) { case SELECT_ALL: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(msg->appGUI->cnt->check_buttons[i]), TRUE); break; case SELECT_NONE: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(msg->appGUI->cnt->check_buttons[i]), FALSE); break; case SELECT_INVERT: state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(msg->appGUI->cnt->check_buttons[i])); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(msg->appGUI->cnt->check_buttons[i]), !state); break; default: break; }; } } } /*--------------------------------------------------------------------*/ static GSList * create_format_radiobutton(gchar * const label, gint format, GtkBox *parent, GSList *group) { GtkWidget* radiobutton; radiobutton = gtk_radio_button_new_with_mnemonic(NULL, label); gtk_widget_show(radiobutton); g_signal_connect(G_OBJECT(radiobutton), "toggled", G_CALLBACK(format_changed_cb), GINT_TO_POINTER(format)); gtk_widget_set_can_focus(radiobutton, FALSE); gtk_box_pack_start(GTK_BOX(parent), radiobutton, FALSE, FALSE, 0); gtk_radio_button_set_group(GTK_RADIO_BUTTON(radiobutton), group); if (config.export_format == format) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radiobutton), TRUE); } return gtk_radio_button_get_group(GTK_RADIO_BUTTON(radiobutton)); } /*--------------------------------------------------------------------*/ void contacts_create_export_window(GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *vbox2; GtkWidget *hbox2; GtkWidget *vbox3; GtkWidget *frame; GtkWidget *vbox4; GtkWidget *vbox5; GSList *format_radiobutton_group = NULL; GtkWidget *label; GtkWidget *vseparator; GtkWidget *scrolledwindow; GtkWidget *viewport; GtkWidget *fields_table; GtkWidget *hbox3; GtkWidget *browse_dir_button; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *hbuttonbox_s; GtkWidget *cancel_button; GtkWidget *select_all_button; GtkWidget *select_none_button; GtkWidget *invert_selection_button; gint i; gchar tmpbuf[BUFFER_SIZE]; static MESSAGE msg_export_field[CONTACTS_NUM_COLUMNS]; static MESSAGE msg_select[3]; /* select all, select none, select invert */ appGUI->cnt->export_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cnt->export_window), _("Export contacts")); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->export_window), 6); gtk_window_move (GTK_WINDOW (appGUI->cnt->export_window), config.contacts_export_win_x, config.contacts_export_win_y); gtk_window_set_default_size (GTK_WINDOW(appGUI->cnt->export_window), config.contacts_export_win_w, config.contacts_export_win_h); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cnt->export_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_modal(GTK_WINDOW(appGUI->cnt->export_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cnt->export_window), "key_press_event", G_CALLBACK (export_key_press_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cnt->export_window), "delete_event", G_CALLBACK(export_window_close_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cnt->export_window), vbox1); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox1), vbox2, TRUE, TRUE, 0); hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0); vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox3); gtk_box_pack_start (GTK_BOX (hbox2), vbox3, FALSE, TRUE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox3), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox4 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox4); gtk_widget_set_margin_left(vbox4, 12); gtk_container_add (GTK_CONTAINER (frame), vbox4); gtk_container_set_border_width (GTK_CONTAINER (vbox4), 8); format_radiobutton_group = create_format_radiobutton("CSV", EXPORT_TO_CSV, GTK_BOX(vbox4), format_radiobutton_group); format_radiobutton_group = create_format_radiobutton("XHTML", EXPORT_TO_XHTML, GTK_BOX(vbox4), format_radiobutton_group); format_radiobutton_group = create_format_radiobutton("VCF", EXPORT_TO_VCF, GTK_BOX(vbox4), format_radiobutton_group); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Output format")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox3), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox4 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox4); gtk_widget_set_margin_left(vbox4, 12); gtk_container_add (GTK_CONTAINER (frame), vbox4); gtk_container_set_border_width (GTK_CONTAINER (vbox4), 8); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Options")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Add header")); appGUI->cnt->first_row_header_check_button = gtk_check_button_new_with_mnemonic (tmpbuf); gtk_widget_show (appGUI->cnt->first_row_header_check_button); gtk_box_pack_start (GTK_BOX (vbox4), appGUI->cnt->first_row_header_check_button, TRUE, TRUE, 0); gtk_widget_set_can_focus(appGUI->cnt->first_row_header_check_button, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(appGUI->cnt->first_row_header_check_button), TRUE); vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator); gtk_box_pack_start (GTK_BOX (hbox2), vseparator, FALSE, TRUE, 4); vbox5 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox5); gtk_box_pack_start (GTK_BOX (hbox2), vbox5, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox4), 8); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox5), frame, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_widget_set_margin_left(scrolledwindow, 12); gtk_container_add (GTK_CONTAINER (frame), scrolledwindow); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 8); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport); gtk_container_add (GTK_CONTAINER (scrolledwindow), viewport); fields_table = gtk_grid_new (); gtk_widget_show (fields_table); gtk_container_add (GTK_CONTAINER (viewport), fields_table); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Fields to export")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox5), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbuttonbox_s = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox_s); gtk_box_pack_start (GTK_BOX (vbox5), hbuttonbox_s, FALSE, TRUE, 0); gtk_box_set_spacing (GTK_BOX (hbuttonbox_s), 4); gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox_s), GTK_BUTTONBOX_END); select_all_button = gtk_button_new_with_label (_("All")); gtk_widget_set_can_focus(select_all_button, FALSE); gtk_widget_show (select_all_button); gtk_container_add (GTK_CONTAINER (hbuttonbox_s), select_all_button); msg_select[0].appGUI = appGUI; msg_select[0].data = (gpointer) SELECT_ALL; g_signal_connect (G_OBJECT (select_all_button), "clicked", G_CALLBACK (select_action_cb), &msg_select[0]); select_none_button = gtk_button_new_with_label (_("None")); gtk_widget_set_can_focus(select_none_button, FALSE); gtk_widget_show (select_none_button); gtk_container_add (GTK_CONTAINER (hbuttonbox_s), select_none_button); msg_select[1].appGUI = appGUI; msg_select[1].data = (gpointer) SELECT_NONE; g_signal_connect (G_OBJECT (select_none_button), "clicked", G_CALLBACK (select_action_cb), &msg_select[1]); invert_selection_button = gtk_button_new_with_label (_("Invert")); gtk_widget_set_can_focus(invert_selection_button, FALSE); gtk_widget_show (select_none_button); gtk_widget_show (invert_selection_button); gtk_container_add (GTK_CONTAINER (hbuttonbox_s), invert_selection_button); msg_select[2].appGUI = appGUI; msg_select[2].data = (gpointer) SELECT_INVERT; g_signal_connect (G_OBJECT (invert_selection_button), "clicked", G_CALLBACK (select_action_cb), &msg_select[2]); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Select fields")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox3); gtk_widget_set_margin_left(hbox3, 12); gtk_container_add (GTK_CONTAINER (frame), hbox3); appGUI->cnt->output_file_entry = gtk_entry_new (); gtk_widget_show (appGUI->cnt->output_file_entry); gtk_box_pack_start (GTK_BOX (hbox3), appGUI->cnt->output_file_entry, TRUE, TRUE, 0); gtk_widget_set_can_focus(appGUI->cnt->output_file_entry, FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cnt->output_file_entry), FALSE); for(i=0; i < CONTACTS_NUM_COLUMNS; i++) { if (i != COLUMN_PHOTO && i != COLUMN_ID) { appGUI->cnt->check_buttons[i] = gtk_check_button_new_with_mnemonic (appGUI->cnt->contact_fields_tags_name[i*2]); gtk_widget_show (appGUI->cnt->check_buttons[i]); msg_export_field[i].appGUI = appGUI; msg_export_field[i].data = (gpointer) ((size_t)i); g_signal_connect (G_OBJECT (appGUI->cnt->check_buttons[i]), "toggled", G_CALLBACK (export_field_selected_cb), &msg_export_field[i]); gtk_widget_set_can_focus(appGUI->cnt->check_buttons[i], FALSE); gtk_widget_set_hexpand(appGUI->cnt->check_buttons[i], TRUE); gtk_widget_set_vexpand(appGUI->cnt->check_buttons[i], TRUE); gtk_grid_attach (GTK_GRID (fields_table), appGUI->cnt->check_buttons[i], 0, i, 1, 1); if(is_export_column(i)) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(appGUI->cnt->check_buttons[i]), TRUE); } } } browse_dir_button = gtk_button_new_with_mnemonic (_("_Open")); gtk_widget_show (browse_dir_button); gtk_widget_set_can_focus(browse_dir_button, FALSE); g_signal_connect(browse_dir_button, "clicked", G_CALLBACK(browse_dir_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox3), browse_dir_button, FALSE, FALSE, 0); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Output filename")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 8); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); gtk_widget_set_can_default (cancel_button, TRUE); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_export_window_close_cb), appGUI); appGUI->cnt->export_button = gtk_button_new_with_mnemonic (_("Export")); gtk_widget_show (appGUI->cnt->export_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->cnt->export_button); gtk_widget_set_can_default (appGUI->cnt->export_button, TRUE); g_signal_connect(appGUI->cnt->export_button, "clicked", G_CALLBACK(export_cb), appGUI); gtk_widget_set_sensitive(appGUI->cnt->export_button, FALSE); gtk_widget_show(appGUI->cnt->export_window); } /*-------------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/calendar_preferences_gui.h0000664000175000017500000000255513066543472015374 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _CALENDAR_PREFERENCES_GUI_H #define _CALENDAR_PREFERENCES_GUI_H #include "gui.h" enum { ICAL_COLUMN_VALID_ICON = 0, ICAL_COLUMN_NAME, ICAL_COLUMN_FILENAME, ICAL_COLUMN_VALID_FLAG, ICAL_COLUMN_ENABLE_DESC, ICAL_COLUMN_FULL_DATE, ICAL_COLUMN_MARK, ICAL_COLUMN_DISABLED, ICAL_COLUMN_STATE, ICAL_NUMBER_OF_COLUMNS /* This must be last item */ }; GtkWidget * cal_create_preferences_page (GtkWidget *notebook, GUI *appGUI); #endif /* _CALENDAR_PREFERENCES_GUI_H */ osmo-0.4.2/src/calendar_utils.h0000664000175000017500000000467313066543472013372 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_UTILS_H #define _CALENDAR_UTILS_H #include "gui.h" #include "utils_time.h" #define JULIAN_GREGORIAN_YEAR 1582 enum { TIME_24 = 0, TIME_12 }; struct tm * get_tm_struct (void); gchar* current_time_to_str (gint time_format, gint override_locale); gchar* time_to_str (TIME *time, gint time_format, gint override_locale); gint get_current_hour (void); gint get_current_minute (void); gint get_current_second (void); gint32 get_absolute_minute (); void sync_cal_date_with_gdate (GUI *appGUI); guint get_day_of_week (guint day, guint month, guint year); gchar* current_date_text (void); gchar* calendar_get_date_name (GDate *cdate); gchar* julian_to_str (guint32 julian_day, gint date_format, gint override_locale); guint32 str_to_julian (gchar *date_str, gint date_format); gint julian_to_year (guint32 julian_day); guint month_name_to_number (gchar *month_str); gchar* get_current_date_distance_str (guint32 julian); gchar* get_date_time_str (guint32 julian, gint seconds); gchar* get_date_time_full_str (guint32 julian, gint seconds); void parse_numeric_date (gchar *date_str, gint *first, gint *second, gint *third); gchar* utl_get_zodiac_name (guint day, guint month); gchar* get_chinese_year_name (guint year); #endif /* _CALENDAR_UTILS_H */ osmo-0.4.2/src/utils_time.h0000664000175000017500000000677513066543472012564 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _UTILS_TIME_H #define _UTILS_TIME_H #include "gui.h" typedef struct { gint hour; gint minute; gint second; } TIME; enum { TIME_HH_MM = 0, /* don't change order */ TIME_HH_MM_AMPM, TIME_HH_MM_SS, TIME_HH_MM_SS_AMPM, TIME_TIMEZONE, /* last entry */ TIME_LOCALE }; TIME* utl_time_new (void); TIME* utl_time_new_hms (gint hour, gint minute, gint second); TIME* utl_time_new_seconds (gint seconds); TIME* utl_time_new_now (void); void utl_time_set_hms (TIME *time, gint hour, gint minute, gint second); void utl_time_set_hour (TIME *time, gint hour); void utl_time_set_minute (TIME *time, gint minute); void utl_time_set_second (TIME *time, gint second); void utl_time_set_seconds (TIME *time, gint seconds); void utl_time_get_hms (const TIME *time, gint *hour, gint *minute, gint *second); gint utl_time_get_hour (const TIME *time); gint utl_time_get_minute (const TIME *time); gint utl_time_get_second (const TIME *time); gint utl_time_get_seconds (const TIME *time); gint utl_time_get_current_hour (void); gint utl_time_get_current_minute (void); gint utl_time_get_current_seconds (void); gint utl_time_add (TIME *time1, TIME *time2); gint utl_time_add_hours (TIME *time, gint hours); gint utl_time_add_minutes (TIME *time, gint minutes); gint utl_time_add_seconds (TIME *time, gint seconds); gint utl_time_subtract (TIME *time1, TIME *time2); gint utl_time_subtract_hours (TIME *time, gint hours); gint utl_time_subtract_minutes (TIME *time, gint minutes); gint utl_time_subtract_seconds (TIME *time, gint seconds); void utl_time_clamp (TIME *time, const TIME *min_time, const TIME *max_time); gint utl_time_compare (const TIME *time1, const TIME *time2); gboolean utl_time_order (TIME *time1, TIME *time2); gint utl_time_seconds_between (const TIME *time1, const TIME *time2); gchar* utl_time_print (const TIME *time, gint time_format, gint override_locale); gchar* utl_time_print_s (gint seconds, gint time_format, gint override_locale); gchar* utl_time_print_default (gint seconds, gboolean with_sec); gchar* utl_time_get_format_str (gint time_format, gint override_locale); gint utl_time_hms_to_seconds (gint hour, gint minute, gint second); gboolean utl_time_valid (const TIME *time); gboolean utl_time_valid_hms (gint hour, gint minute, gint second); gboolean utl_time_valid_hour (gint hour); gboolean utl_time_valid_minute (gint minute); gboolean utl_time_valid_second (gint second); gboolean utl_time_valid_seconds (gint seconds); void utl_time_free (TIME *time); #endif /* _UTILS_TIME_H */ osmo-0.4.2/src/contacts.h0000664000175000017500000000457713066543472012222 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_H #define _CONTACTS_H #include "gui.h" #define CONTACTS_NAME "osmo_contacts" #define CONTACTS_ENTRIES_NAME "contacts_records" #define CONTACTS_GROUP_ENTRIES_NAME "contacts_groups" #define CONTACTS_ENTRIES_FILENAME "contacts_records.xml" #define GOOGLE_MAPS_QUERY "http://maps.google.com/maps?q=" #define BING_MAPS_QUERY "http://www.bing.com/maps/default.aspx?where1=" #define OSM_MAPS_QUERY "http://nominatim.openstreetmap.org/search?q=" /* photo widths */ #define PHOTO_SMALL 80 #define PHOTO_MEDIUM 120 #define PHOTO_LARGE 160 enum { CONTACTS_FF_FIRST_NAME = 0, CONTACTS_FF_LAST_NAME, CONTACTS_FF_TAGS, CONTACTS_FF_ALL_FIELDS }; enum { HOME_ADDRESS = 0, WORK_ADDRESS }; void gui_create_contacts (GUI *appGUI); void set_export_active (GUI *appGUI); void store_contact_columns_info (GUI *appGUI); void set_contacts_columns_width (GUI *appGUI); void contacts_select_first_position_in_list (GUI *appGUI); void insert_photo (gchar *photo_filename, GtkTextIter *iter, GUI *appGUI); gboolean check_address (gint address_type, GUI *appGUI); void show_contact_location_on_map (gint address_type, GUI *appGUI); void contacts_selection_activate (gboolean active, GUI *appGUI); gint query (GUI* appGUI, gchar* matchWith); #endif /* _CONTACTS_H */ osmo-0.4.2/src/stock_icons.h0000664000175000017500000001625713066543472012720 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _STOCK_ICONS_H #define _STOCK_ICONS_H #include "gui.h" #define OSMO_STOCK_BUTTON_ADD "osmo-button-add" #define OSMO_STOCK_BUTTON_CLEAR "osmo-button-clear" #define OSMO_STOCK_BUTTON_CLOSE "osmo-button-close" #define OSMO_STOCK_BUTTON_CANCEL "osmo-button-cancel" #define OSMO_STOCK_BUTTON_JUMPTO "osmo-button-jumpto" #define OSMO_STOCK_BUTTON_CONTACTS_EXPORT "osmo-button-contacts-export" #define OSMO_STOCK_BUTTON_CONTACTS_IMPORT "osmo-button-contacts-import" #define OSMO_STOCK_BUTTON_EDIT "osmo-button-edit" #define OSMO_STOCK_BUTTON_DOWN "osmo-button-down" #define OSMO_STOCK_BUTTON_INFO "osmo-button-info" #define OSMO_STOCK_BUTTON_INSERT_TIMELINE "osmo-button-insert_timeline" #define OSMO_STOCK_BUTTON_NEXT_YEAR "osmo-button-next_year" #define OSMO_STOCK_BUTTON_NO "osmo-button-no" #define OSMO_STOCK_BUTTON_OK "osmo-button-ok" #define OSMO_STOCK_BUTTON_OPEN "osmo-button-open" #define OSMO_STOCK_BUTTON_PREV_YEAR "osmo-button-prev_year" #define OSMO_STOCK_BUTTON_REMOVE "osmo-button-remove" #define OSMO_STOCK_BUTTON_SELECT_COLOR "osmo-button-select_color" #define OSMO_STOCK_BUTTON_SELECT_DATE "osmo-button-select_date" #define OSMO_STOCK_BUTTON_SELECT_FONT "osmo-button-select_font" #define OSMO_STOCK_BUTTON_TODAY "osmo-button-today" #define OSMO_STOCK_BUTTON_YES "osmo-button-yes" #define OSMO_STOCK_SYSTRAY_BIRTHDAY "osmo-systray-birthday" #define OSMO_STOCK_SYSTRAY_NORMAL "osmo-systray-normal" #define OSMO_STOCK_SYSTRAY_NOTE "osmo-systray-note" #define OSMO_STOCK_SYSTRAY_TASK "osmo-systray-task" #define OSMO_STOCK_SYSTRAY_MENU_CALENDAR "osmo-systray-menu-calendar" #define OSMO_STOCK_SYSTRAY_MENU_TASKS "osmo-systray-menu-tasks" #define OSMO_STOCK_SYSTRAY_MENU_CONTACTS "osmo-systray-menu-contacts" #define OSMO_STOCK_SYSTRAY_MENU_NOTES "osmo-systray-menu-notes" #define OSMO_STOCK_BACKUP "osmo-backup" #define OSMO_STOCK_RESTORE "osmo-restore" #define OSMO_STOCK_OPEN_URL "osmo-open-url" #define OSMO_STOCK_ABOUT "osmo-about" #define OSMO_STOCK_CALENDAR "osmo-calendar" #define OSMO_STOCK_CLOSE "osmo-close" #define OSMO_STOCK_CALCULATOR "osmo-calculator" #define OSMO_STOCK_CONTACTS_ADD "osmo-contacts-add" #define OSMO_STOCK_CONTACTS_BIRTHDAYS "osmo-contacts-birthdays" #define OSMO_STOCK_CONTACTS_EDIT "osmo-contacts-edit" #define OSMO_STOCK_CONTACTS_EXPORT "osmo-contacts-export" #define OSMO_STOCK_CONTACTS_IMPORT "osmo-contacts-import" #define OSMO_STOCK_CONTACTS_REMOVE "osmo-contacts-remove" #define OSMO_STOCK_CONTACTS "osmo-contacts" #define OSMO_STOCK_EDIT_NOTE "osmo-edit_note" #define OSMO_STOCK_EDITOR_BOLD "osmo-editor-bold" #define OSMO_STOCK_EDITOR_BOLD_S "osmo-editor-bold-s" #define OSMO_STOCK_EDITOR_CLEAR "osmo-editor-clear" #define OSMO_STOCK_EDITOR_FIND "osmo-editor-find" #define OSMO_STOCK_EDITOR_HIGHLIGHT "osmo-editor-highlight" #define OSMO_STOCK_EDITOR_HIGHLIGHT_S "osmo-editor-highlight-s" #define OSMO_STOCK_EDITOR_INFO "osmo-editor-info" #define OSMO_STOCK_EDITOR_INSERT_DATE_TIME "osmo-editor-insert_date_time" #define OSMO_STOCK_EDITOR_INSERT_SEPARATOR "osmo-editor-insert_separator" #define OSMO_STOCK_EDITOR_ITALIC "osmo-editor-italic" #define OSMO_STOCK_EDITOR_ITALIC_S "osmo-editor-italic-s" #define OSMO_STOCK_EDITOR_SAVE "osmo-editor-save" #define OSMO_STOCK_EDITOR_SPELL_CHECKER "osmo-editor-spell_checker" #define OSMO_STOCK_EDITOR_STRIKETHROUGH "osmo-editor-strikethrough" #define OSMO_STOCK_EDITOR_STRIKETHROUGH_S "osmo-editor-strikethrough-s" #define OSMO_STOCK_EDITOR_UNDERLINE "osmo-editor-underline" #define OSMO_STOCK_EDITOR_UNDERLINE_S "osmo-editor-underline-s" #define OSMO_STOCK_FULLYEAR "osmo-fullyear" #define OSMO_STOCK_HELP "osmo-help" #define OSMO_STOCK_INFO_HELP "osmo-info-help" #define OSMO_STOCK_JUMPTO "osmo-jumpto" #define OSMO_STOCK_LICENSE "osmo-license" #define OSMO_STOCK_LIST_INVALID "osmo-list-invalid" #define OSMO_STOCK_LIST_VALID "osmo-list-valid" #define OSMO_STOCK_NEXT_DAY "osmo-next-day" #define OSMO_STOCK_NEXT_MONTH "osmo-next-month" #define OSMO_STOCK_NEXT_YEAR "osmo-next-year" #define OSMO_STOCK_NOTES_ADD "osmo-notes-add" #define OSMO_STOCK_NOTES_EDIT "osmo-notes-edit" #define OSMO_STOCK_NOTES_REMOVE "osmo-notes-remove" #define OSMO_STOCK_NOTES "osmo-notes" #define OSMO_STOCK_PREFERENCES "osmo-preferences" #define OSMO_STOCK_PREV_DAY "osmo-prev-day" #define OSMO_STOCK_PREV_MONTH "osmo-prev-month" #define OSMO_STOCK_PREV_YEAR "osmo-prev-year" #define OSMO_STOCK_TASKS_ADD "osmo-tasks-add" #define OSMO_STOCK_TASKS_EDIT "osmo-tasks-edit" #define OSMO_STOCK_TASKS_REMOVE "osmo-tasks-remove" #define OSMO_STOCK_TASKS_IMPORT "osmo-tasks-import" #define OSMO_STOCK_TASKS_EXPORT "osmo-tasks-export" #define OSMO_STOCK_TASKS_PREV_DATE "osmo-tasks-prev-date" #define OSMO_STOCK_TASKS_NEXT_DATE "osmo-tasks-next-date" #define OSMO_STOCK_TASKS "osmo-tasks" #define OSMO_STOCK_TODAY "osmo-today" #define OSMO_STOCK_PRINT "osmo-print" #define OSMO_STOCK_TYPE_NORMAL "osmo-type-normal" #define OSMO_STOCK_TYPE_ENCRYPTED "osmo-type-encrypted" #define OSMO_STOCK_TYPE_RECURRENT "osmo-type-recurrent" void osmo_register_theme_icons (); #endif /* _STOCK_ICONS_H */ osmo-0.4.2/src/gui_icon.h0000664000175000017500000004267013066543472012174 00000000000000/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_icon) #endif #ifdef __GNUC__ static const guint8 osmo_icon[] __attribute__ ((__aligned__ (4))) = #else static const guint8 osmo_icon[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (5782) */ "\0\0\26\256" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\224\377\377\377\0\12""668\6""668K;:<\25299;\35399;\34399;\32388:\302" "779\256668\212668+\244\377\377\377\0\17""668398:\25588:\365EEF\361hg" "g\376xwv\377wtu\377rqq\377gfg\377YXX\377HHI\374==\77\366557\325668e6" "68\15\240\377\377\377\0\11""668]779\366ONN\376hff\377~|{\377\205\204" "\202\377zxv\377kih\377\\ZZ\377\202WUV\377\6YWY\377`^_\377dcd\377IHI\366" "668\367668g\235\377\377\377\0\25""668\2""668\21688:\365RPP\377caa\377" "qon\377}{y\377}{z\377qom\377dba\377WUU\377KII\377><=\3771/1\377(&(\377" "535\377\\[\\\377WVW\377::<\366557\220668\1\232\377\377\377\0\17""668" "\4""668\27588:\364KJJ\377ZXW\377fdd\377sqp\377\200~|\377{yw\377nlk\377" "a__\377USS\377HFF\377;9:\377/-.\377\202(&(\377\6)')\377GEG\377`_`\377" "GGH\370557\265668\11\231\377\377\377\0\17""668o657\363CAB\377PNN\377" "\\ZZ\377igf\377vtr\377\202\200~\377xvt\377kih\377^\\\\\377RPP\377ECD" "\377868\377,*+\377\204(&(\377\5""202\377VUU\377HGH\373557\316668\3\227" "\377\377\377\0\20""668\22""657\361978\377FDD\377RPP\377_]]\377lji\377" "ywu\377\202\200~\377usr\377hff\377\\ZY\377OMM\377B@A\377645\377)')\377" "\205(&(\377\4,+,\377SQR\377\77>\77\367668k\227\377\377\377\0\17""557" "\232324\366<:;\377HFG\377USS\377b`_\377oml\377{yx\377\177}{\377rpo\377" "ecc\377YWW\377LJK\377@>\77\377312\377\207(&(\377\4""1.0\377MLL\37777" "9\363668\21\225\377\377\377\0\20""668)557\365201\377\77=>\377KIJ\377" "XVV\377fdc\377trq\377\201\177}\377~|z\377pnl\377ca`\377VTT\377IGH\377" "=;<\3770.0\377\210(&(\377\3>=>\377AAB\373557\232\225\377\377\377\0\20" "668u0/1\372534\377A\77@\377NLL\377\\ZZ\377kih\377kjj\377vuu\377\206\204" "\204\377\200~}\377kih\377TRR\377GEE\377:89\377-+-\377\210(&(\377\4+*" "+\377LKK\377778\367668\"\224\377\377\377\0\20""557\2310/1\377867\377" "DBC\377QOO\377TSS\377>==\377aYJ\377f]L\377A@>\377WVU\377rop\377trs\377" "YXX\377:89\377*(*\377\211(&(\377\3ECD\377@>>\377g]J\212\224\377\377\377" "\0\7""557\276446\377979\377GEF\377PNO\377=<<\377\250\220b\377\202\306" "\250m\377\10\303\245l\377\222\177Z\377HE@\377LJH\377`_`\377jij\377NM" "N\377313\377\205(&(\377\6""101\377656\377+)+\377989\377BAB\377;:9\217" "\224\377\377\377\0\6""557\334668\377<;9\377B@A\377\77>=\377\224\200[" "\377\205\306\250m\377\21\305\247m\377\223\177Z\377FC>\377CA\77\377LJ" "L\377cbb\377WUV\377=;<\377646\377313\377@>\77\377KJJ\377EDD\377HGG\377" "535\377FFF\377557\301\224\377\377\377\0\5""557\361=;5\372\267\236f\377" "g]K\377\202rT\377\202\306\250m\377\4\313\256v\377\321\266\200\377\314" "\260x\377\307\251n\377\202\306\250m\377\17\304\247l\377\220~Y\377MH@" "\377<:;\377JGG\377SRR\377RPQ\377NNN\377FEF\377=::\377ID=\377BAA\377K" "KK\377HGG\377557\352\224\377\377\377\0\11""557\246\\P)\363\333\274u\377" "\317\260q\377\306\250m\377\313\256u\377\337\305\224\377\350\320\245\377" "\352\324\253\377\202\354\327\257\377\21\343\314\237\377\330\276\213\377" "\316\261z\377\311\253q\377\306\251n\377\263\231f\377\201qT\377VOD\377" "DA=\377><;\377RKA\377\244\210V\377\276\231X\377PH<\377BAA\377JIJ\377" "668\373\224\377\377\377\0\34""668\"ua\32\372\340\302y\377\311\253n\377" "\311\253p\377\334\302\220\377\342\311\232\377\345\315\240\377\347\320" "\244\377\351\322\247\377\351\322\250\377\351\321\247\377\347\317\243" "\377\344\314\236\377\342\310\230\377\336\303\222\377\332\276\212\377" "\330\272\204\377\324\265}\377\321\260u\377\315\253n\377\311\246f\377" "\306\241_\377\302\234W\377\266\221O\377GB:\377A@@\377557\350\225\377" "\377\377\0\33}g\31\370\336\301{\377\312\255o\377\324\267\201\377\335" "\301\217\377\340\305\225\377\342\310\231\377\344\313\235\377\345\315" "\240\377\346\315\240\377\345\314\237\377\344\312\234\377\342\310\230" "\377\337\304\223\377\334\300\215\377\331\274\207\377\326\267\200\377" "\323\263y\377\317\256r\377\314\251k\377\310\244d\377\305\237\\\377\301" "\232U\377\277\227P\377\255\212K\377B>1\376557\233\225\377\377\377\0\32" "\201i\34\346\330\274x\377\317\263u\377\330\271\203\377\333\276\212\377" "\335\301\217\377\337\304\223\377\341\306\226\377\342\310\230\377\342" "\310\231\377\341\307\230\377\340\306\225\377\336\303\222\377\334\300" "\215\377\332\275\210\377\327\271\202\377\324\265|\377\321\260v\377\316" "\254o\377\312\247h\377\307\242a\377\303\235Z\377\300\230R\377\277\227" "P\377\264\217F\377\200h\32\346\226\377\377\377\0\26\201j\34\310\314\257" "m\377\326\271{\377\325\266\177\377\330\272\204\377\332\275\210\377\334" "\277\214\377\335\301\217\377\336\302\220\377\336\303\221\377\336\302" "\220\377\335\301\216\377\333\277\213\377\331\274\207\377\327\271\202" "\377\324\265}\377\322\261w\377\317\255q\377\314\251k\377\310\244d\377" "\305\240]\377\302\233V\377\202\277\227P\377\2\253\210\77\377\200i\33" "\310\226\377\377\377\0\10|f\30s\256\224M\371\335\300\202\377\322\262" "y\377\325\266}\377\327\270\202\377\330\273\205\377\331\274\207\377\202" "\332\275\211\377\14\332\275\210\377\331\274\207\377\330\272\204\377\326" "\270\200\377\324\265|\377\322\261w\377\317\256r\377\314\252l\377\311" "\246f\377\306\242`\377\303\235Y\377\300\231S\377\202\277\227P\377\2\226" "y,\367|f\30s\226\377\377\377\0\25xc\25$\207p#\367\337\304\206\377\322" "\261u\377\321\261w\377\323\264{\377\325\266~\377\326\267\200\377\326" "\270\201\377\327\270\201\377\326\270\201\377\326\267\177\377\324\265" "}\377\323\263z\377\321\260v\377\317\255q\377\314\252l\377\312\246g\377" "\307\242a\377\304\236[\377\301\232U\377\202\277\227P\377\3\275\226O\377" "~h\32\366xc\25$\227\377\377\377\0\23\200i\33\263\272\237[\373\333\277" "\203\377\316\255p\377\320\257s\377\321\261v\377\322\262x\377\323\263" "y\377\323\263z\377\323\263y\377\322\262x\377\321\260v\377\317\256s\377" "\316\254o\377\314\251k\377\311\246f\377\307\242a\377\304\237\\\377\302" "\233V\377\203\277\227P\377\2\232{1\371\200h\32\263\230\377\377\377\0" "\7\200f\32\24~h\33\360\324\272|\377\323\264x\377\314\252l\377\316\254" "o\377\316\255q\377\202\317\256r\377\12\317\255q\377\316\255p\377\315" "\253n\377\314\251k\377\312\247h\377\311\245d\377\307\242`\377\304\236" "[\377\302\233V\377\277\227Q\377\202\277\227P\377\3\261\215D\377}g\31" "\360\200f\32\24\230\377\377\377\0\7%2Q)AB;\361\217z3\377\333\301\211" "\377\314\252j\377\312\247g\377\313\250i\377\203\313\250j\377\7\313\247" "i\377\312\246g\377\311\245d\377\307\242a\377\305\240^\377\303\235Z\377" "\301\232U\377\203\277\227P\377\4\276\225O\377\204o$\377[ZP\371\"0OB\215" "\377\377\377\0\33\223}G\273\221|E\360\221|B\271\217zC\370\217{E\251\217" "{B\363\217zB\240\220{B\352\222{B\252\377\377\377\0$.OM\"0P\364'7V\377" "\177rA\377\255\224O\377\331\277\207\377\316\257q\377\307\242a\377\307" "\243b\377\310\243b\377\307\243b\377\307\242a\377\306\241_\377\305\240" "]\377\304\236Z\377\302\233W\377\300\231S\377\202\277\227P\377\10\277" "\227Q\377\276\225O\377\227z0\377\202uB\377,_\367'6T\373#0O\375!1" "O\341\35*G\251\31#:n\16\22\40""8\0\0\0\37\0\0\0\30\0\0\0\22\0\0\0\13" "\0\0\0\5\202\377\377\377\0\4pqn\377\371\371\371\377\350\350\350\377|" "|z\377\202\230\230\226\377\10\231\231\227\377~~|\377\360\360\360\377" "\362\362\362\377\363\363\363\377\364\364\364\377\366\366\366\377\367" "\367\367\377\202\371\371\371\377.\370\370\370\377\366\366\366\377\370" "\370\370\377pqn\377\31#9\241\34(A\271\34+G\321\"/M\361\"1N\361#0N\374" "#1O\373$0O\363#0M\363!-G\327\36'\77\302\30\40""5\255\25\34""0\233\21" "\31(\206\16\22\36p\11\14\21X\0\0\0F\0\0\0>\0\0\0""7\0\0\0""0\0\0\0*\0" "\0\0#\0\0\0\34\0\0\0\25\0\0\0\17\0\0\0\10\0\0\0\1\377\377\377\0pqn\377" "\371\371\371\377\350\350\350\377\351\351\351\377\353\353\353\377\354" "\354\354\377\355\355\355\377\357\357\357\377\360\360\360\377\361\361" "\361\377\363\363\363\377\364\364\364\377\365\365\365\377\367\367\367" "\377\202\370\370\370\377\13\367\367\367\377\366\366\366\377\370\370\370" "\377pqn\377\0\0\0F\0\0\0L\0\0\0Q\0\0\0V\0\0\0[\0\0\0^\0\0\0a\202\0\0" "\0b\21\0\0\0`\0\0\0]\0\0\0Y\0\0\0U\0\0\0O\0\0\0J\0\0\0D\0\0\0>\0\0\0" "8\0\0\0""2\0\0\0+\0\0\0%\0\0\0\37\0\0\0\30\0\0\0\22\0\0\0\13\0\0\0\5" "\202\377\377\377\0\2pqn\377\366\366\366\377\220\370\370\370\377\11\367" "\367\367\377pqn\377\0\0\0""3\0\0\0""8\0\0\0;\0\0\0\77\0\0\0B\0\0\0D\0" "\0\0E\202\0\0\0F\20\0\0\0E\0\0\0C\0\0\0A\0\0\0>\0\0\0:\0\0\0""6\0\0\0" "2\0\0\0-\0\0\0(\0\0\0#\0\0\0\36\0\0\0\30\0\0\0\23\0\0\0\15\0\0\0\7\0" "\0\0\1\203\377\377\377\0\1vwt\240\222pqn\377\7qro\251\0\0\0\34\0\0\0" "\37\0\0\0\"\0\0\0$\0\0\0&\0\0\0(\204\0\0\0)\14\0\0\0'\0\0\0&\0\0\0$\0" "\0\0!\0\0\0\36\0\0\0\33\0\0\0\27\0\0\0\23\0\0\0\17\0\0\0\13\0\0\0\6\0" "\0\0\1\232\377\377\377\0\5\0\0\0\2\0\0\0\5\0\0\0\7\0\0\0\11\0\0\0\12" "\202\0\0\0\14\202\0\0\0\15\7\0\0\0\14\0\0\0\13\0\0\0\12\0\0\0\10\0\0" "\0\6\0\0\0\4\0\0\0\2\274\377\377\377\0"}; osmo-0.4.2/src/utils.h0000664000175000017500000001411613110234475011520 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _UTILS_H #define _UTILS_H #include "gui.h" enum helpers { UNKNOWN = 0, WWW, EMAIL, SOUND }; #define REGEX_URL "(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=\%&:/~\\+#]*[\\w\\-\\@?^=\%&/~\\+#])?" #define REGEX_URI_PROTO "\\b((http|ftp|https):\\/\\/|(mailto|javascript):)" #define REGEX_EMAIL "(\\w[-._\\w]*\\w@\\w[-._\\w]*\\w\\.\\w{2,3})" gchar * utl_text_replace (const gchar *text, const gchar *regex, const gchar *replacement); gboolean utl_text_match (const gchar *text, const gchar *regex); gchar * utl_text_to_html_page (const gchar *text, const gchar *font_family, const gchar *background_color, const gchar *text_color, const gchar *header_html, const gchar *top_html, const gchar *bottom_html); gint utl_text_strcmp (const gchar *string1, const gchar *string2); gboolean utl_text_strcasestr (const gchar *haystack, const gchar *needle); gboolean utl_text_strstr (const gchar *haystack, const gchar *needle); gchar * utl_text_to_html (const gchar *text, gboolean ignoreBR, gboolean ignoreSP); gchar * utl_get_day_name (guint day, gboolean short_name); gchar * utl_get_julian_day_name (guint32 julian); gchar * utl_get_date_name (const GDate *date); gchar * utl_get_date_name_format (const GDate *date, gchar *fmt); guint utl_get_weekend_days_in_month (const GDate *date); guint utl_get_weekend_days_in_month_my (guint month, guint year); guint utl_get_days_per_year (guint year); void utl_subtract_from_date (guint32 date, gint time, gint days, gint seconds, guint32 *new_date, gint *new_time); gint utl_calc_moon_phase (const GDate *date); gchar * utl_get_moon_phase_name (gint phase); void utl_xml_get_int (gchar *name, gint *iname, xmlNodePtr node); void utl_xml_get_uint (gchar *name, guint *uname, xmlNodePtr node); void utl_xml_get_char (gchar *name, gchar *cname, xmlNodePtr node); void utl_xml_get_str (gchar *name, gchar **sname, xmlNodePtr node); void utl_xml_get_strn (gchar *name, gchar *sname, gint buffer_size, xmlNodePtr node); void utl_xml_put_int (gchar *name, gint value, xmlNodePtr node); void utl_xml_put_uint (gchar *name, guint value, xmlNodePtr node); void utl_xml_put_char (gchar *name, gchar character, xmlNodePtr node); void utl_xml_put_str (gchar *name, gchar *string, xmlNodePtr node); void utl_xml_put_strn (gchar *name, gchar *string, gint buffer_size, xmlNodePtr node); void utl_xml_write_doc (const char *filename, xmlDocPtr cur); void utl_name_strcat (gchar *first, gchar *second, gchar *buffer); gboolean utl_run_helper (gchar *parameter, gint helper); void utl_run_command (gchar *command, gboolean sync); gboolean utl_is_valid_command (gchar *command); gint utl_get_link_type (gchar *link); void utl_cairo_draw (cairo_t *cr, gint stroke); void utl_draw_rounded_rectangle (cairo_t *cr, gint x, gint y, gint w, gint h, gint a, gint s); void utl_draw_left_arrow (cairo_t *cr, gdouble x, gdouble y, gdouble w, gdouble h, gdouble a); gchar * utl_inline_to_png_base64 (const guint8 *inline_data); gchar * utl_inline_image_to_html (const guint8 *inline_data); gchar * utl_text_with_tags_to_html (gchar *input_text); void utl_play_alarm_sound (guint repetitions); gchar * utl_add_timestamp_to_filename (gchar *filename, gchar *extension); gchar * utl_strconcat (gchar *string, ...); void utl_free_list (GList *list, GDestroyNotify free_func); #ifdef HAVE_LIBWEBKIT gboolean utl_webkit_on_menu (WebKitWebView *web_view, WebKitContextMenu *context_menu, GdkEvent *event, WebKitHitTestResult *hit_test_result, gpointer user_data); gboolean utl_webkit_link_clicked (WebKitWebView *web_view, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decision_type, gpointer user_data); WebKitWebView *utl_create_webkit_web_view (GUI *appGUI); #endif /* HAVE_LIBWEBKIT */ gint utl_open_count_url_links (gchar *text, gboolean url_count); #endif /* _UTILS_H */ osmo-0.4.2/src/tasks_export.c0000664000175000017500000001446413161167413013112 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "tasks_export.h" #include "i18n.h" #include "utils.h" #include "utils_gui.h" #include "tasks.h" #include "tasks_utils.h" #include "calendar_utils.h" #include "options_prefs.h" #if defined(TASKS_ENABLED) && defined(HAVE_LIBICAL) #include #include #include #include /*-------------------------------------------------------------------------------------*/ gboolean export_tasks_to_file (GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; gint n, ret; gint day, month, year, due_time; guint32 julian_day; gchar *filename, *summary, *date, *priority, *description, *category; GtkWidget *dialog; GtkTreeIter sort_iter; gboolean valid; icalset *ics_file; struct icaltimetype atime; icalcomponent *event, *calendar; icalproperty *prop; if (get_number_of_visible_tasks_with_date (appGUI) == 0) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("No tasks with defined date found."), GTK_WINDOW(appGUI->main_window)); return FALSE; } dialog = utl_gui_create_save_file_dialog (_("Save tasks"), GTK_WINDOW(appGUI->main_window)); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), utl_add_timestamp_to_filename("tasks", "ics")); ret = gtk_dialog_run(GTK_DIALOG(dialog)); if (ret == GTK_RESPONSE_CANCEL || ret == GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(dialog); return FALSE; } filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)); gtk_widget_destroy(dialog); if (utl_gui_check_overwrite_file (filename, appGUI->main_window, appGUI) != 0) { return FALSE; } else { g_unlink (filename); } ics_file = icalset_new_file (filename); if (ics_file == NULL) { g_free (filename); return FALSE; } calendar = icalcomponent_new (ICAL_VCALENDAR_COMPONENT); prop = icalproperty_new_prodid ("//Clay//NONSGML Osmo PIM//EN"); icalcomponent_add_property (calendar, prop); prop = icalproperty_new_version (VERSION); icalcomponent_add_property (calendar, prop); valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); n = 0; while (valid) { GtkTreeIter filter_iter, iter; gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->tsk->tasks_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter), &iter, &filter_iter); gtk_tree_model_get(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_SUMMARY, &summary, TA_COLUMN_DESCRIPTION, &description, TA_COLUMN_CATEGORY, &category, TA_COLUMN_DUE_DATE, &date, TA_COLUMN_DUE_TIME, &due_time, TA_COLUMN_DUE_DATE_JULIAN, &julian_day, TA_COLUMN_PRIORITY, &priority, -1); if (julian_day != 0) { event = icalcomponent_new(ICAL_VEVENT_COMPONENT); utl_date_julian_to_dmy(julian_day, &day, &month, &year); atime.day = day; atime.month = month; atime.year = year; if (due_time == -1) { atime.is_date = TRUE; } else { atime.hour = due_time / 3600; atime.minute = (due_time % 3600) / 60; atime.second = 0; atime.is_date = FALSE; } g_snprintf(tmpbuf, BUFFER_SIZE, "id%d%d%d%d@clayo.org", year, month, day, n); prop = icalproperty_new_uid(tmpbuf); icalcomponent_add_property(event, prop); icalproperty_free(prop); prop = icalproperty_new_priority(tsk_get_priority_index(priority)); icalcomponent_add_property(event, prop); icalproperty_free(prop); if (g_utf8_collate(category, _("None"))) { prop = icalproperty_new_categories(category); icalcomponent_add_property(event, prop); icalproperty_free(prop); } prop = icalproperty_new_summary(summary); icalcomponent_add_property(event, prop); icalproperty_free(prop); prop = icalproperty_new_description(description); icalcomponent_add_property(event, prop); icalproperty_free(prop); prop = icalproperty_new_dtstamp(atime); icalcomponent_add_property(event, prop); icalproperty_free(prop); prop = icalproperty_new_dtstart(atime); icalcomponent_add_property(event, prop); icalproperty_free(prop); prop = icalproperty_new_dtend(atime); icalcomponent_add_property(event, prop); icalproperty_free(prop); icalcomponent_add_component(calendar, event); icalcomponent_free(event); g_free(summary); g_free(description); g_free(category); n++; } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); } icalset_add_component (ics_file, calendar); icalfileset_commit (ics_file); icalcomponent_free (calendar); g_free(filename); g_snprintf(tmpbuf, BUFFER_SIZE, "%d %s", n, _("tasks exported")); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW(appGUI->main_window)); return TRUE; } /*-------------------------------------------------------------------------------------*/ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/notes_preferences_gui.c0000664000175000017500000004516313066543472014750 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "i18n.h" #include "notes.h" #include "notes_preferences_gui.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils_gui.h" #ifdef HAVE_LIBGRINGOTTS #include /* ========================================================================== */ /* FIXME */ gint get_enc_algorithm_value (void) { gint algorithms_table [8] = { GRG_AES, GRG_SERPENT, GRG_TWOFISH, GRG_CAST_256, GRG_SAFERPLUS, GRG_LOKI97, GRG_3DES, GRG_RIJNDAEL_256 }; return algorithms_table[config.notes_enc_algorithm % 8]; } /* ========================================================================== */ gint get_enc_hashing_value (void) { gint hashing_table [2] = { GRG_SHA1, GRG_RIPEMD_160 }; return hashing_table[config.notes_enc_hashing % 2]; } /* ========================================================================== */ gint get_comp_algorithm_value (void) { gint algorithm_table [2] = { GRG_ZLIB, GRG_BZIP }; return algorithm_table[config.notes_comp_algorithm % 2]; } /* ========================================================================== */ gint get_comp_ratio_value (void) { gint ratio_table [4] = { GRG_LVL_NONE, GRG_LVL_FAST, GRG_LVL_GOOD, GRG_LVL_BEST }; return ratio_table[config.notes_comp_ratio % 4]; } /* ========================================================================== */ #endif /* HAVE_LIBGRINGOTTS */ #ifdef NOTES_ENABLED /* ========================================================================== */ static void checkbutton_clicked_cb (GtkToggleButton *togglebutton, gint *option) { *option = gtk_toggle_button_get_active (togglebutton); } /* ========================================================================== */ #ifdef HAVE_LIBGRINGOTTS static void notes_comp_ratio_cb (GtkComboBox *combobox, gint *option) { *option = gtk_combo_box_get_active (combobox) +1; } /* ========================================================================== */ static void combobox_clicked_cb (GtkComboBox *combobox, gint *option) { *option = gtk_combo_box_get_active (combobox); } /* ========================================================================== */ static void create_encryption_section (GtkWidget *encryption_vbox, GUI *appGUI) { GtkWidget *table, *combobox, *label; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (encryption_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 8); label = utl_gui_create_label ("%s:", _("Algorithm")); gtk_widget_set_hexpand(label, TRUE); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); label = utl_gui_create_label ("%s:", _("Hashing")); gtk_widget_set_hexpand(label, TRUE); gtk_grid_attach (GTK_GRID (table), label, 2, 0, 1, 1); combobox = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "AES"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Serpent"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Twofish"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "CAST 256"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Safer+"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Loki 97"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Triple DES"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Rijndael"); gtk_combo_box_set_active (GTK_COMBO_BOX(combobox), config.notes_enc_algorithm); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 1, 0, 1, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (combobox_clicked_cb), &(config.notes_enc_algorithm)); appGUI->opt->notes_enc_algorithm_combobox = combobox; combobox = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "SHA-1"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "RIPEMD-160"); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.notes_enc_hashing); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 3, 0, 1, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (combobox_clicked_cb), &(config.notes_enc_algorithm)); appGUI->opt->notes_enc_hashing_combobox = combobox; label = utl_gui_create_label ("%s:", _("Compression")); gtk_widget_set_hexpand(label, TRUE); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); label = utl_gui_create_label ("%s:", _("Ratio")); gtk_widget_set_hexpand(label, TRUE); gtk_grid_attach (GTK_GRID (table), label, 2, 1, 1, 1); combobox = gtk_combo_box_text_new (); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 1, 1, 1, 1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "ZLib"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "BZip2"); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.notes_comp_algorithm); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (combobox_clicked_cb), &(config.notes_comp_algorithm)); appGUI->opt->notes_comp_algorithm_combobox = combobox; combobox = gtk_combo_box_text_new (); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 3, 1, 1, 1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Fast")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Good")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Best")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.notes_comp_ratio - 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (notes_comp_ratio_cb), &(config.notes_comp_ratio)); appGUI->opt->notes_comp_ratio_combobox = combobox; } #endif /* HAVE_LIBGRINGOTTS */ /* ========================================================================== */ static void notes_visible_columns_changed_cb (GtkToggleButton *widget, GUI *appGUI) { config.nte_visible_type_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->nvc_type_checkbutton)); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_TYPE], config.nte_visible_type_column); config.nte_visible_category_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->nvc_category_checkbutton)); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CATEGORY], config.nte_visible_category_column); config.nte_visible_last_changes_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->nvc_last_changes_checkbutton)); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_LAST_CHANGES_DATE], config.nte_visible_last_changes_column); config.nte_visible_created_column = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->nvc_created_checkbutton)); gtk_tree_view_column_set_visible (appGUI->nte->notes_columns[N_COLUMN_CREATE_DATE], config.nte_visible_created_column); set_note_columns_width (appGUI); } /* ========================================================================== */ static void create_visible_columns_section (GtkWidget *visible_columns_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (visible_columns_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 8); checkbutton = gtk_check_button_new_with_mnemonic (_("Type")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.nte_visible_type_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (notes_visible_columns_changed_cb), appGUI); appGUI->opt->nvc_type_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Category")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.nte_visible_category_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 1, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (notes_visible_columns_changed_cb), appGUI); appGUI->opt->nvc_category_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Last changes")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.nte_visible_last_changes_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (notes_visible_columns_changed_cb), appGUI); appGUI->opt->nvc_last_changes_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Created")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.nte_visible_created_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 3, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (notes_visible_columns_changed_cb), appGUI); appGUI->opt->nvc_created_checkbutton = checkbutton; } /* ========================================================================== */ static void notes_category_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_widget_set_sensitive (appGUI->opt->notes_category_remove_button, TRUE); else gtk_widget_set_sensitive (appGUI->opt->notes_category_remove_button, FALSE); } /* ========================================================================== */ static void notes_category_add_cb (GtkWidget *widget, GUI *appGUI) { GtkListStore *store = appGUI->opt->notes_category_store; GtkTreeIter iter; const gchar *category_name; gchar *item; gint i; category_name = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->notes_category_entry)); if (!strlen (category_name)) return; i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, 0, &item, -1); if (!strcmp (category_name, item)) { g_free (item); return; } g_free (item); } gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (store), &iter, NULL, 0); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, category_name, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->notes_category_entry), ""); gtk_widget_set_sensitive (appGUI->opt->notes_category_add_button, FALSE); utl_gui_create_category_combobox (GTK_COMBO_BOX (appGUI->nte->cf_combobox), store, FALSE); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->nte->cf_combobox), 0); } /* ========================================================================== */ static gint notes_category_entry_key_release_cb (GtkEntry *entry, GdkEventKey *event, GUI *appGUI) { gboolean state = FALSE; if (strlen (gtk_entry_get_text (entry))) state = TRUE; gtk_widget_set_sensitive (appGUI->opt->notes_category_add_button, state); if (event->keyval == GDK_KEY_Return) { if (state) notes_category_add_cb (NULL, appGUI); return TRUE; } return FALSE; } /* ========================================================================== */ static void notes_category_cell_edited_cb (GtkCellRendererText *renderer, gchar *path, gchar *new_text, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (g_ascii_strcasecmp (new_text, "") == 0) return; model = gtk_tree_view_get_model (GTK_TREE_VIEW (appGUI->opt->notes_category_treeview)); if (gtk_tree_model_get_iter_from_string (model, &iter, path)) gtk_list_store_set (appGUI->opt->notes_category_store, &iter, 0, new_text, -1); } /* ========================================================================== */ static void notes_category_remove_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; GtkListStore *store = appGUI->opt->notes_category_store; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->notes_category_treeview), &path, NULL); if (path == NULL) return; gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path); gtk_list_store_remove (store, &iter); gtk_tree_path_free (path); utl_gui_create_category_combobox (GTK_COMBO_BOX (appGUI->nte->cf_combobox), store, FALSE); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->nte->cf_combobox), 0); } /* ========================================================================== */ static void create_categories_section (GtkWidget *categories_vbox, GUI *appGUI) { GtkWidget *table, *entry, *treeview, *scrolledwindow; GtkTreeViewColumn *column; GtkCellRenderer *renderer; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (categories_vbox), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 8); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); entry = gtk_entry_new (); gtk_widget_set_hexpand(entry, TRUE); gtk_grid_attach (GTK_GRID (table), entry, 0, 3, 1, 1); g_signal_connect (G_OBJECT (entry), "key_release_event", G_CALLBACK (notes_category_entry_key_release_cb), appGUI); appGUI->opt->notes_category_entry = entry; scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW (scrolledwindow), 80); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, 0, 3, 3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->opt->notes_category_store)); appGUI->opt->notes_category_treeview = treeview; gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview); gtk_container_set_border_width (GTK_CONTAINER (treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); appGUI->opt->notes_category_select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (appGUI->opt->notes_category_select), "changed", G_CALLBACK (notes_category_selected_cb), appGUI); renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (notes_category_cell_edited_cb), appGUI); column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); appGUI->opt->notes_category_add_button = gtk_button_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), appGUI->opt->notes_category_add_button, 1, 3, 1, 1); gtk_widget_set_sensitive (appGUI->opt->notes_category_add_button, FALSE); g_signal_connect (appGUI->opt->notes_category_add_button, "clicked", G_CALLBACK (notes_category_add_cb), appGUI); appGUI->opt->notes_category_remove_button = gtk_button_new_from_icon_name ("list-remove", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), appGUI->opt->notes_category_remove_button, 2, 3, 1, 1); gtk_widget_set_sensitive (appGUI->opt->notes_category_remove_button, FALSE); g_signal_connect (appGUI->opt->notes_category_remove_button, "clicked", G_CALLBACK (notes_category_remove_cb), appGUI); } /* ========================================================================== */ static void create_options_section (GtkWidget *notes_opt_vbox, GUI *appGUI) { GtkWidget *checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Remember the last selected category")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.remember_category_in_notes); gtk_box_pack_start (GTK_BOX (notes_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.remember_category_in_notes)); appGUI->opt->cn_remember_category_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Use system format for date and time")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.use_system_date_in_notes); gtk_box_pack_start (GTK_BOX (notes_opt_vbox), checkbutton, FALSE, FALSE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.use_system_date_in_notes)); appGUI->opt->cn_use_system_date_checkbutton = checkbutton; } /* ========================================================================== */ GtkWidget * nte_create_preferences_page (GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox_top, *vbox_icon, *vbox, *scrolledwindow; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), BORDER_WIDTH); scrolledwindow = utl_gui_insert_in_scrolled_window (vbox_top, GTK_SHADOW_ETCHED_IN); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 2); vbox_icon = utl_gui_create_icon_with_label (OSMO_STOCK_NOTES, _("Notes")); #ifdef HAVE_LIBGRINGOTTS vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Encryption")); create_encryption_section (vbox, appGUI); #endif /* HAVE_LIBGRINGOTTS */ vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Visible columns")); create_visible_columns_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Categories")); create_categories_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Notes options")); create_options_section (vbox, appGUI); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow, vbox_icon); gtk_widget_show_all (scrolledwindow); return scrolledwindow; } /* ========================================================================== */ #endif /* NOTES_ENABLED */ osmo-0.4.2/src/calendar_moon_a.h0000664000175000017500000007537313066543472013507 00000000000000/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_0) #endif #ifdef __GNUC__ static const guint8 moon_phase_0[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_0[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1156) */ "\0\0\4\234" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\0\0\0\0\7\210\211\213\1\210\211\213\11\210\211\213#\210\211\213" "5\210\211\213F\210\211\2134\210\211\213\23\215\0\0\0\0\10aaeGefh\257" "yz|\341\204\206\206\365\201\201\203\365uvx\335eej\247aaeG\212\0\0\0\0" "\3ppp\20klm\322\210\210\211\376\202\242\243\242\377\7\242\242\242\377" "\241\241\241\377\241\242\241\377\242\242\242\377\207\210\210\376ooq\314" "ppp\20\207\0\0\0\0\5ZZ^Gopr\366\214\215\214\377\212\213\212\377\213\213" "\213\377\203\213\214\213\377\6\215\215\215\377\220\220\220\377\213\213" "\213\377\214\214\214\377rsv\362XX\\G\205\0\0\0\0\3ppp\20fgi\364uuu\377" "\202ttt\377\204uuu\377\1uut\377\202uuu\377\4vwv\377uvu\377kkl\365ppp" "\20\204\0\0\0\0\4]]`\303aaa\377]^]\377^^^\377\202^_^\377\204___\377\6" "^_^\377bbb\377```\377^^^\377`a`\377]]_\313\202\0\0\0\0\12\210\211\213" "\3aaeGGHI\376<<<\377;<;\377;;;\377===\377@@@\377DED\377GHG\377\202HI" "H\377\14EFE\377@A@\377<<<\377:;:\377:::\377GHH\376aaeG\0\0\0\0\210\211" "\213\"TVX\260<<<\377:::\377\203:;:\377\205;;;\377\20<<<\377;<;\377;;" ";\377:;:\377:::\377<<<\377TVY\252\210\211\213\13\210\211\213USUV\340" ";<;\377\77\77\77\377===\377<<<\377;;;\377;<;\377\202<<<\377\2<=<\377" "=>=\377\202===\377\14<<<\377;<;\377;;;\377<<<\377STV\335\210\211\213" ";\210\211\213RSTU\365;;;\377\77\77\77\377=>=\377<=<\377\202<<<\377\202" "<=<\377\1>>=\377\202===\377\16=>=\377\77\77\77\377===\377<<<\377;<;\377" "TVW\362\210\211\213Z\210\211\213>TUV\364>\77>\377@@@\377>>=\377<<<\377" "<=<\377\203===\377\14=>=\377>>>\377\77\77>\377ABA\377CCC\377@@@\377=" "=<\377<<<\377VVX\362\210\211\213]\210\211\213FYYZ\340\204>>>\377\2==" "=\377=>=\377\203>>>\377\5\77\77\77\377AAA\377BCB\377DDD\377BBB\377\202" ">>>\377\7XY[\332\210\211\213B\210\211\213&WW\\\247\77@\77\377<<<\377" "===\377\203>>>\377\2>\77>\377\77\77\77\377\203BBB\377\203DDD\377\7@A" "@\377@@@\377YY]\250\210\211\213,\210\211\213\12aaeGLMO\376\202=>=\377" "\202>>>\377\3\77\77>\377\77\77\77\377@@@\377\202DDD\377\203EEE\377\4" "DDD\377AAA\377JKM\375aaeG\203\0\0\0\0\5__a\310EEE\377\77@\77\377>>>\377" ">\77>\377\203@@@\377\10DDD\377FFF\377GGG\377FFF\377DDD\377BBB\377EEE" "\377YY\\\275\204\0\0\0\0\4ppp\20YZ]\357@@@\377>>>\377\202AAA\377\6@@" "@\377AAA\377EEE\377GFF\377GGG\377FFF\377\202BBB\377\2^^a\357ppp\20\205" "\0\0\0\0\3[[_F]^a\360GHG\377\202BBB\377\2AAA\377BBB\377\202FFF\377\5" "EEE\377DDD\377HHI\377[[_\354[[_F\207\0\0\0\0\4ppp\20bbd\305RRT\375EE" "E\377\204FFF\377\4HHH\377VVY\375\\\\_\274ppp\20\212\0\0\0\0\10aaeGWW" "[\237iim\330ggj\357``c\355__c\320YY^\240aaeG\214\0\0\0\0\10\210\211\213" "\5\210\211\213\20\210\211\213\36\210\211\2134\210\211\213<\210\211\213" ":\210\211\213\25\210\211\213\2\206\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_1) #endif #ifdef __GNUC__ static const guint8 moon_phase_1[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_1[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1198) */ "\0\0\4\306" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10b" "bbFcef\253xz{\337\206\206\207\364\204\206\207\364||\200\323ffj\241bb" "bI\212\377\377\377\0\5ppp\20klm\312\210\211\212\376\240\241\240\377\241" "\242\241\377\202\241\241\241\377\5\245\245\245\377\257\260\257\377\226" "\227\231\374npq\303qqc\22\207\377\377\377\0\3``d@mnp\362\213\214\213" "\377\202\212\212\212\377\203\212\213\212\377\6\213\214\213\377\223\223" "\223\377\230\232\230\377\240\242\241\377wx|\351]]aG\205\377\377\377\0" "\3jjj\14ggh\357uuu\377\202ttt\377\204uuu\377\7tut\377uuu\377|||\377\230" "\232\230\377\224\227\224\377qst\355ppp\20\204\377\377\377\0\2]]a\270" "aaa\377\202]]]\377\202]^]\377\204^^^\377\6]^]\377bbb\377\202\205\202" "\377~\200~\377\203\207\204\377^_`\301\202\377\377\377\0\30\210\211\213" "\3fff=\377\202===\377\14FGF\377lol\377fjf\377psp\377^_b\324\210" "\211\213Z\210\211\213fSTV\361;;;\377\77\77\77\377=>=\377<=<\377\202<" "<<\377\202<=<\377\21>>=\377=>=\377===\377>>>\377FGF\377wzw\377nqm\377" "lol\377hkl\352\210\211\213s\210\211\213OTUW\360>>>\377@A@\377>>=\377" "<<<\377<=<\377\203===\377\15=>=\377>>>\377\77\77>\377ABA\377OOO\377\217" "\221\216\377uxt\377rtr\377kmp\353\210\211\213h\210\211\213YXXZ\331=>" "=\377\203>>>\377\2===\377=>=\377\203>>>\377\23\77\77\77\377AAA\377BC" "B\377[\\[\377\240\241\237\377\177\202\177\377\201\203\201\377cdg\321" "\210\211\213I\210\211\2130XXZ\234\77\77\77\377<<<\377===\377>>>\377>" ">=\377>>>\377>\77>\377\77\77\77\377\203BBB\377\12DDD\377klk\377\252\253" "\252\377\222\224\221\377\210\212\211\377[[_\244\210\211\2132\210\211" "\213\14fff=\377\5>>=\377>>>\377>\77>\377\77\77\77\377@" "@@\377\202DDD\377\202EEE\377\5\215\215\214\377\256\256\256\377\223\225" "\223\377qry\371aaeG\203\377\377\377\0\6\\\\`\277EFE\377\77\77\77\377" ">>>\377>\77>\377@@\77\377\202@@@\377\10DDD\377FFF\377GGG\377JJJ\377\247" "\247\247\377\237\240\237\377\221\223\223\377__b\267\204\377\377\377\0" "\4jjj\14Z[]\354@@@\377>>>\377\202AAA\377\12@@@\377AAA\377EEE\377GGF\377" "GGG\377yyy\377\236\237\236\377\236\237\235\377ww{\352ppp\20\205\377\377" "\377\0\7``d@\\]`\356HHH\377BBB\377BCB\377AAA\377BBB\377\202FFF\377\5" "ZYZ\377\250\251\247\377\240\240\244\377tty\346]]aG\207\377\377\377\0" "\5ppp\20ffg\302TTX\374DDD\377EEE\377\202FFF\377\5ddd\377\255\255\255" "\377\217\217\226\373ddg\271qqc\22\212\377\377\377\0\10bbbFYY[\236kko" "\326iik\360cch\354nns\311^^c\240bbbI\214\377\377\377\0\10\210\211\213" "\5\210\211\213\31\210\211\2137\210\211\213I\210\211\213f\210\211\213" "a\210\211\213\37\210\211\213\3\206\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_2) #endif #ifdef __GNUC__ static const guint8 moon_phase_2[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_2[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1228) */ "\0\0\4\344" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10a" "aeGgik\260||}\341\205\206\206\365\215\216\221\360}~\201\325ffk\244aa" "eG\212\377\377\377\0\3ppp\20mnp\322\213\215\215\376\202\242\243\242\377" "\7\242\242\242\377\251\254\251\377\257\261\257\377\262\264\263\377\225" "\230\231\375qqt\302ppp\20\207\377\377\377\0\5ZZ^Gpqr\366\214\215\214" "\377\212\213\212\377\213\213\213\377\202\213\214\213\377\7\230\232\230" "\377\246\251\246\377\270\272\270\377\234\237\234\377\237\241\240\377" "yz\177\351[[_F\205\377\377\377\0\3ppp\20fhi\364uuu\377\202ttt\377\203" "uuu\377\10\213\215\213\377\212\214\211\377\217\222\217\377\215\220\215" "\377\230\232\230\377\223\226\223\377suv\356ppp\20\204\377\377\377\0\4" "]]`\302```\377]^]\377^^^\377\202^_^\377\202___\377\10}\177|\377|\177" "|\377{~{\377\226\231\226\377\210\213\210\377}\201}\377\203\207\204\377" "aad\302\202\377\377\377\0\30\210\211\213\3aaeGHIK\376<<<\377;<;\377;" ";;\377===\377@@@\377DED\377GHG\377oro\377orn\377mom\377hlh\377aea\377" "]a\\\377Z^Z\377gkk\374aaeG\377\377\377\0\210\211\213%UWY\256===\377:" "::\377\203:;:\377\203;;;\377\22jli\377ili\377nqn\377lpl\377ilh\377dh" "d\377_c_\377qtq\377WY\\\245\210\211\213\20\210\211\213aSUV\337;<;\377" "\77\77\77\377===\377<<<\377;;;\377;<;\377\202<<<\377\20rur\377z|y\377" "y{x\377uxu\377qtq\377lol\377fjf\377psp\377^_b\324\210\211\213Z\210\211" "\213fSUV\364;;;\377\77\77\77\377=>=\377<=<\377\202<<<\377\202<=<\377" "\21|~{\377y{y\377vxu\377{~{\377\207\211\206\377wzw\377nqn\377lol\377" "ikm\352\210\211\213s\210\211\213OUVW\363>\77>\377@@@\377>>=\377<<<\377" "<=<\377\203===\377\14z|z\377\177\201~\377\204\206\203\377\231\232\230" "\377\246\246\245\377\217\220\216\377uxt\377rtr\377lmp\352\210\211\213" "h\210\211\213YZZ\\\337\204>>>\377\2===\377=>=\377\202>>>\377\17\200\201" "\177\377\205\206\204\377\224\225\223\377\240\242\240\377\252\253\252" "\377\237\241\236\377~\201~\377\201\203\201\377ceh\321\210\211\213I\210" "\211\2130XX]\246\77@\77\377<<<\377===\377\203>>>\377\17>\77>\377\77\77" "\77\377\236\236\235\377\237\240\237\377\235\236\234\377\254\255\253\377" "\257\260\257\377\252\253\252\377\222\224\221\377\210\212\212\377[[`\244" "\210\211\2132\210\211\213\14aaeGNNP\375\202=>=\377\202>>>\377\14\77\77" ">\377\77\77\77\377@@@\377\252\252\251\377\252\253\252\377\262\262\261" "\377\266\266\266\377\263\264\263\377\256\256\256\377\224\226\224\377" "pry\371aaeG\203\377\377\377\0\5``b\307FFF\377\77@\77\377>>>\377>\77>" "\377\203@@@\377\10\253\253\252\377\274\274\273\377\302\301\302\377\275" "\275\274\377\254\254\254\377\237\240\237\377\220\221\222\377__c\265\204" "\377\377\377\0\4ppp\20[\\_\357@@@\377>>>\377\202AAA\377\12@@@\377AAA" "\377\264\264\263\377\300\277\277\377\305\304\305\377\271\270\270\377" "\236\237\236\377\236\237\235\377ttx\350ppp\20\205\377\377\377\0\3[[_" "F^_b\357HHH\377\202BBB\377\11AAA\377BBB\377\276\275\275\377\275\274\274" "\377\264\263\264\377\252\252\251\377\235\236\240\377oou\344[[_F\207\377" "\377\377\0\4ppp\20ccf\304SSU\375EEE\377\202FFF\377\6\276\275\275\377" "\277\277\276\377\272\272\271\377\212\212\221\372aad\265ppp\20\212\377" "\377\377\0\10aaeGXX\\\237iim\330ggj\357zz~\343jjp\306ZZ_\236aaeG\214" "\377\377\377\0\10\210\211\213\5\210\211\213\31\210\211\2137\210\211\213" "I\210\211\213f\210\211\213a\210\211\213\37\210\211\213\3\206\377\377" "\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_3) #endif #ifdef __GNUC__ static const guint8 moon_phase_3[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_3[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1295) */ "\0\0\5'" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10a" "aeGhjl\261|}~\340\217\221\221\361\215\216\221\360}~\201\325ffk\244aa" "eG\212\377\377\377\0\14ppp\20mnp\322\213\213\214\376\246\247\246\377" "\257\261\257\377\252\254\252\377\251\254\251\377\257\261\257\377\262" "\264\263\377\225\230\231\375qqt\302ppp\20\207\377\377\377\0\16ZZ^Gpq" "r\366\214\215\214\377\213\214\213\377\224\227\224\377\227\231\227\377" "\230\233\230\377\230\232\230\377\246\251\246\377\270\272\270\377\234" "\237\234\377\237\241\240\377yz\177\351[[_F\205\377\377\377\0\7ppp\20" "ffh\364uuu\377ttt\377{|{\377\212\214\212\377\212\215\212\377\202\213" "\215\213\377\7\212\214\211\377\217\222\217\377\215\220\215\377\230\232" "\230\377\223\226\223\377suv\356ppp\20\204\377\377\377\0\6\\\\_\303``" "`\377]^]\377^^^\377sus\377{~{\377\202|\177|\377\10}\177|\377|\177|\377" "{~{\377\226\231\226\377\210\213\210\377}\201}\377\203\207\204\377aad" "\302\202\377\377\377\0f\210\211\213\3aaeGGHI\376<<<\377;<;\377<=<\377" "bdb\377gjg\377knk\377nqn\377oro\377orn\377mom\377hlh\377aea\377]a\\\377" "Z^Z\377gkk\374aaeG\377\377\377\0\210\211\213%TVX\260<<<\377:::\377:;" ":\377BCB\377ehe\377gjg\377iki\377ili\377jli\377ili\377nqn\377lpl\377" "ilh\377dhd\377_c_\377qtq\377WY\\\245\210\211\213\20\210\211\213aSUV\340" ";<;\377\77\77\77\377===\377LLL\377jlj\377lol\377npn\377oqn\377rur\377" "z|y\377y{x\377uxu\377qtq\377lol\377fjf\377psp\377^_b\324\210\211\213" "Z\210\211\213fTUV\364;;;\377\77\77\77\377=>=\377RSQ\377oqn\377qsq\377" "svs\377tvt\377|~{\377y{y\377vxu\377{~{\377\207\211\206\377wzw\377nqn" "\377lol\377ikm\352\210\211\213s\210\211\213OUUV\363>\77>\377@@@\377>" ">=\377QRP\377tvs\377vyv\377xzx\377z{y\377z|z\377\177\201~\377\204\206" "\203\377\231\232\230\377\246\246\245\377\217\220\216\377uxt\377rtr\377" "lmp\352\210\211\213h\210\211\213YYY[\337\203>>>\377&QRQ\377xzx\377{}" "z\377}\177}\377\177\201\177\377\200\201\177\377\205\206\204\377\224\225" "\223\377\240\242\240\377\252\253\252\377\237\241\236\377~\201~\377\201" "\203\201\377ceh\321\210\211\213I\210\211\2130XX\\\247\77@\77\377<<<\377" "===\377MML\377|~|\377\200\201\177\377\203\204\202\377\207\210\206\377" "\236\236\235\377\237\240\237\377\235\236\234\377\254\255\253\377\257" "\260\257\377\252\253\252\377\222\224\221\377\210\212\212\377[[`\244\210" "\211\2132\210\211\213\14aaeGLMO\376\202=>=\377\16BCB\377~\200~\377\204" "\205\203\377\207\211\207\377\215\216\214\377\252\252\251\377\252\253" "\252\377\262\262\261\377\266\266\266\377\263\264\263\377\256\256\256" "\377\224\226\224\377pry\371aaeG\203\377\377\377\0\20^^`\310EEE\377\77" "@\77\377>>>\377tut\377\213\214\213\377\213\215\213\377\217\220\217\377" "\253\253\252\377\274\274\273\377\302\301\302\377\275\275\274\377\254" "\254\254\377\237\240\237\377\220\221\222\377__c\265\204\377\377\377\0" "\20ppp\20ZZ^\357@@@\377>>>\377iji\377\227\230\226\377\217\220\216\377" "\223\224\223\377\264\264\263\377\300\277\277\377\305\304\305\377\271" "\270\270\377\236\237\236\377\236\237\235\377ttx\350ppp\20\205\377\377" "\377\0\16[[_F\\]`\360GHG\377HIH\377\226\227\225\377\225\225\224\377\236" "\236\236\377\276\275\275\377\275\274\274\377\264\263\264\377\252\252" "\251\377\235\236\240\377oou\344[[_F\207\377\377\377\0\14ppp\20bbd\305" "RRT\375^^^\377\265\265\265\377\272\272\271\377\276\275\275\377\277\277" "\276\377\272\272\271\377\212\212\221\372aad\265ppp\20\212\377\377\377" "\0\10aaeGWW[\237llq\326\177\177\204\350zz~\343jjp\306ZZ_\236aaeG\214" "\377\377\377\0\10\210\211\213\5\210\211\213\31\210\211\2137\210\211\213" "I\210\211\213f\210\211\213a\210\211\213\37\210\211\213\3\206\377\377" "\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_4) #endif #ifdef __GNUC__ static const guint8 moon_phase_4[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_4[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1302) */ "\0\0\5." /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10a" "aeGikm\256\203\203\205\333\221\223\224\360\215\216\221\360}~\201\325" "ffk\244aaeG\212\377\377\377\0\14ppp\20stv\314\234\236\237\375\264\266" "\264\377\260\262\260\377\252\254\252\377\251\254\251\377\257\261\257" "\377\262\264\263\377\225\230\231\375qqt\302ppp\20\207\377\377\377\0\16" "[[_F}\177\202\360\244\246\244\377\224\227\224\377\225\230\225\377\227" "\231\227\377\230\233\230\377\230\232\230\377\246\251\246\377\270\272" "\270\377\234\237\234\377\237\241\240\377yz\177\351[[_F\205\377\377\377" "\0\7ppp\20vwy\355\217\221\217\377\206\211\206\377\205\210\205\377\212" "\214\212\377\212\215\212\377\202\213\215\213\377\7\212\214\211\377\217" "\222\217\377\215\220\215\377\230\232\230\377\223\226\223\377suv\356p" "pp\20\204\377\377\377\0\6ccg\272\203\207\205\377vyv\377w{w\377y|y\377" "{~{\377\202|\177|\377\10}\177|\377|\177|\377{~{\377\226\231\226\377\210" "\213\210\377}\201}\377\203\207\204\377aad\302\202\377\377\377\0\177\210" "\211\213\3aaeGehl\373]`]\377\\_\\\377_b_\377beb\377gjg\377knk\377nqn" "\377oro\377orn\377mom\377hlh\377aea\377]a\\\377Z^Z\377gkk\374aaeG\377" "\377\377\0\210\211\213%WY[\253oro\377^b^\377ehe\377bfb\377ehe\377gjg" "\377iki\377ili\377jli\377ili\377nqn\377lpl\377ilh\377dhd\377_c_\377q" "tq\377WY\\\245\210\211\213\20\210\211\213a]`a\327knk\377\207\210\205" "\377xzw\377oqo\377jlj\377lol\377npn\377oqn\377rur\377z|y\377y{x\377u" "xu\377qtq\377lol\377fjf\377psp\377^_b\324\210\211\213Z\210\211\213fh" "jl\356gjg\377\207\207\206\377{}z\377ruq\377oqn\377qsq\377svs\377tvt\377" "|~{\377y{y\377vxu\377{~{\377\207\211\206\377wzw\377nqn\377lol\377ikm" "\352\210\211\213s\210\211\213Ojkm\354\203\205\203\377\220\222\217\377" "|~{\377pro\377tvs\377vyv\377xzx\377z{y\377z|z\377\177\201~\377\204\206" "\203\377\231\232\230\377\246\246\245\377\217\220\216\377uxt\377rtr\377" "lmp\352\210\211\213h\210\211\213Yeeg\327|\177|\377\200\203\177\377\177" "\200}\377}\177|\377xzx\377{}z\377}\177}\377\177\201\177\377\200\201\177" "\377\205\206\204\377\224\225\223\377\240\242\240\377\252\253\252\377" "\237\241\236\377~\201~\377\201\203\201\377ceh\321\210\211\213I\210\211" "\2130ZZ_\243\200\204\201\377npn\377xzx\377\200\201\177\377|~|\377\20" "\200\201\177\377\203\204\202\377\207\210\206\377\236\236\235\377\237" "\240\237\377\235\236\234\377\254\255\253\377\257\260\257\377\252\253" "\252\377\222\224\221\377\210\212\212\377[[`\244\210\211\2132\210\211" "\213\14aaeGuv{\373\202z|y\377\16|~|\377\177\201\177\377\204\205\203\377" "\207\211\207\377\215\216\214\377\252\252\251\377\252\253\252\377\262" "\262\261\377\266\266\266\377\263\264\263\377\256\256\256\377\224\226" "\224\377pry\371aaeG\203\377\377\377\0\20eeh\301\223\224\223\377\210\213" "\210\377\201\203\201\377\203\205\203\377\213\214\213\377\213\215\213" "\377\217\220\217\377\253\253\252\377\274\274\273\377\302\301\302\377" "\275\275\274\377\254\254\254\377\237\240\237\377\220\221\222\377__c\265" "\204\377\377\377\0\20ppp\20opu\347\220\222\220\377~\200~\377\225\226" "\225\377\227\230\226\377\217\220\216\377\223\224\223\377\264\264\263" "\377\300\277\277\377\305\304\305\377\271\270\270\377\236\237\236\377" "\236\237\235\377ttx\350ppp\20\205\377\377\377\0\16[[_Ftuy\350\235\236" "\235\377\233\234\232\377\240\241\237\377\225\225\224\377\236\236\236" "\377\276\275\275\377\275\274\274\377\264\263\264\377\252\252\251\377" "\235\236\240\377oou\344[[_F\207\377\377\377\0\14ppp\20iil\276\202\202" "\211\371\246\246\250\377\270\270\270\377\272\272\271\377\276\275\275" "\377\277\277\276\377\272\272\271\377\212\212\221\372aad\265ppp\20\212" "\377\377\377\0\10aaeGYY]\235ww|\320\204\204\211\347zz~\343jjp\306ZZ_" "\236aaeG\214\377\377\377\0\10\210\211\213\5\210\211\213\31\210\211\213" "7\210\211\213I\210\211\213f\210\211\213a\210\211\213\37\210\211\213\3" "\206\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_5) #endif #ifdef __GNUC__ static const guint8 moon_phase_5[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_5[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1297) */ "\0\0\5)" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10a" "aeGikm\256\203\203\205\333\221\223\224\360\213\214\216\360vwz\333ffk" "\245aaeG\212\377\377\377\0\14ppp\20stv\314\234\236\237\375\264\266\264" "\377\260\262\260\377\252\254\252\377\251\254\251\377\257\260\257\377" "\244\245\244\377\205\205\206\376kkm\310ppp\20\207\377\377\377\0\16[[" "_F}\177\202\360\244\246\244\377\224\227\224\377\225\230\225\377\227\231" "\227\377\230\233\230\377\230\232\230\377\246\251\246\377\261\262\261" "\377\213\214\213\377\214\214\214\377klo\361[[_F\205\377\377\377\0\7p" "pp\20vwy\355\217\221\217\377\206\211\206\377\205\210\205\377\212\214" "\212\377\212\215\212\377\202\213\215\213\377\7\212\214\211\377\217\222" "\217\377\177\201\177\377vwv\377uvu\377fgh\364ppp\20\204\377\377\377\0" "\6ccg\272\203\207\205\377vyv\377w{w\377y|y\377{~{\377\202|\177|\377\10" "}\177|\377|\177|\377{~{\377\207\211\207\377```\377^^^\377aaa\377\\\\" "_\310\202\377\377\377\0t\210\211\213\3aaeGehl\373]`]\377\\_\\\377_b_" "\377beb\377gjg\377knk\377nqn\377oro\377orn\377mom\377fjf\377===\377:" ";:\377;;;\377HJJ\376aaeG\377\377\377\0\210\211\213%WY[\253oro\377^b^" "\377ehe\377bfb\377ehe\377gjg\377iki\377ili\377jli\377ili\377nqn\377l" "pl\377CDC\377:;:\377:::\377=>=\377VX[\246\210\211\213\20\210\211\213" "a]`a\327knk\377\207\210\205\377xzw\377oqo\377jlj\377lol\377npn\377oq" "n\377rur\377z|y\377y{x\377uxu\377JKJ\377;<;\377;;;\377<<<\377VWY\333" "\210\211\213Z\210\211\213fhjl\356gjg\377\207\207\206\377{}z\377ruq\377" "oqn\377qsq\377svs\377tvt\377|~{\377y{y\377vxu\377{~{\377YZX\377===\377" "<<<\377;<;\377WYZ\361\210\211\213s\210\211\213Ojkm\354\203\205\203\377" "\220\222\217\377|~{\377pro\377tvs\377vyv\377xzx\377z{y\377z|z\377\177" "\201~\377\204\206\203\377\231\232\230\377hhg\377@@@\377==<\377<<<\377" "ZZ\\\361\210\211\213h\210\211\213Yeeg\327|\177|\377\200\203\177\377\177" "\200}\377}\177|\377xzx\377{}z\377}\177}\377\177\201\177\377\200\201\177" "\377\205\206\204\377\224\225\223\377\240\242\240\377```\377BBB\377\202" ">>>\377\31[]`\330\210\211\213I\210\211\2130ZZ_\243\200\204\201\377np" "n\377xzx\377\200\201\177\377|~|\377\200\201\177\377\203\204\202\377\207" "\210\206\377\236\236\235\377\237\240\237\377\235\236\234\377\254\255" "\253\377YYY\377DDD\377@A@\377BCC\377[[`\245\210\211\2132\210\211\213" "\14aaeGuv{\373\202z|y\377\16|~|\377\177\201\177\377\204\205\203\377\207" "\211\207\377\215\216\214\377\252\252\251\377\252\253\252\377\262\262" "\261\377\265\265\265\377KKK\377DDD\377AAA\377NOR\374aaeG\203\377\377" "\377\0\20eeh\301\223\224\223\377\210\213\210\377\201\203\201\377\203" "\205\203\377\213\214\213\377\213\215\213\377\217\220\217\377\253\253" "\252\377\274\274\273\377\302\301\302\377\237\237\236\377DDD\377BBB\377" "FGG\377[[_\272\204\377\377\377\0\14ppp\20opu\347\220\222\220\377~\200" "~\377\225\226\225\377\227\230\226\377\217\220\216\377\223\224\223\377" "\264\264\263\377\300\277\277\377\305\304\305\377zzz\377\202BBB\377\2" "``c\357ppp\20\205\377\377\377\0\16[[_Ftuy\350\235\236\235\377\233\234" "\232\377\240\241\237\377\225\225\224\377\236\236\236\377\276\275\275" "\377\275\274\274\377\246\245\246\377JJI\377IIJ\377\\\\a\354[[_F\207\377" "\377\377\0\14ppp\20iil\276\202\202\211\371\246\246\250\377\270\270\270" "\377\272\272\271\377\276\275\275\377\273\273\272\377ddd\377YY\\\375]" "]`\272ppp\20\212\377\377\377\0\10aaeGYY]\235ww|\320\204\204\211\347v" "vz\344bbg\315ZZ_\237aaeG\214\377\377\377\0\10\210\211\213\5\210\211\213" "\31\210\211\2137\210\211\213I\210\211\213f\210\211\213a\210\211\213\37" "\210\211\213\3\206\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_6) #endif #ifdef __GNUC__ static const guint8 moon_phase_6[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_6[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1274) */ "\0\0\5\22" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211" "\213I\210\211\213f\210\211\213a\210\211\213\37\215\377\377\377\0\10a" "aeGikm\256\203\203\205\333\221\223\224\360kln\365lmo\335ddi\247aaeG\212" "\377\377\377\0\14ppp\20stv\314\234\236\237\375\264\266\264\377\260\262" "\260\377\252\254\252\377GGG\377DED\377FFF\377XYZ\376iik\311ppp\20\207" "\377\377\377\0\16[[_F}\177\202\360\244\246\244\377\224\227\224\377\225" "\230\225\377\227\231\227\377\230\233\230\377DDD\377CDC\377FFF\377BBB" "\377GGG\377`ad\360[[_F\205\377\377\377\0\12ppp\20vwy\355\217\221\217" "\377\206\211\206\377\205\210\205\377\212\214\212\377\212\215\212\377" "\213\215\213\377BBB\377\77@\77\377\202@@@\377\4ABA\377AAA\377]^_\364" "ppp\20\204\377\377\377\0\6ccg\272\203\207\205\377vyv\377w{w\377y|y\377" "{~{\377\202|\177|\377\10@@\77\377>>>\377=>=\377AAA\377\77@\77\377>>>" "\377CCC\377[[^\307\202\377\377\377\0\13\210\211\213\3aaeGehl\373]`]\377" "\\_\\\377_b_\377beb\377gjg\377knk\377nqn\377=>=\377\202<<<\377\2;;;\377" ":::\377\2029:9\377#IKK\376aaeG\377\377\377\0\210\211\213%WY[\253oro\377" "^b^\377ehe\377bfb\377ehe\377gjg\377iki\377ili\377==<\377;;;\377<<<\377" ";<;\377;;;\377:;:\377:::\377>>>\377VX[\246\210\211\213\20\210\211\213" "a]`a\327knk\377\207\210\205\377xzw\377oqo\377jlj\377lol\377npn\377oq" "n\377>>>\377=>=\377\202===\377\21<<<\377;<;\377;;;\377<<<\377UVY\333" "\210\211\213Z\210\211\213fhjl\356gjg\377\207\207\206\377{}z\377ruq\377" "oqn\377qsq\377svs\377tvt\377\77@\77\377\202===\377+=>=\377\77\77\77\377" "===\377<<<\377;<;\377VWX\361\210\211\213s\210\211\213Ojkm\354\203\205" "\203\377\220\222\217\377|~{\377pro\377tvs\377vyv\377xzx\377z{y\377\77" "\77\77\377>>>\377\77\77>\377ABA\377CCC\377@@@\377==<\377<<<\377WWY\361" "\210\211\213h\210\211\213Yeeg\327|\177|\377\200\203\177\377\177\200}" "\377}\177|\377xzx\377{}z\377}\177}\377\177\201\177\377@@@\377\77\77\77" "\377AAA\377BCB\377DDD\377BBB\377\202>>>\377\15Y[]\331\210\211\213I\210" "\211\2130ZZ_\243\200\204\201\377npn\377xzx\377\200\201\177\377|~|\377" "\200\201\177\377\203\204\202\377\207\210\206\377EEE\377\202BBB\377\203" "DDD\377\7@A@\377ABB\377ZZ_\245\210\211\2132\210\211\213\14aaeGuv{\373" "\202z|y\377\7|~|\377\177\201\177\377\204\205\203\377\207\211\207\377" "\215\216\214\377GGG\377DDD\377\203EEE\377\4DDD\377AAA\377KLO\375aaeG" "\203\377\377\377\0\20eeh\301\223\224\223\377\210\213\210\377\201\203" "\201\377\203\205\203\377\213\214\213\377\213\215\213\377\217\220\217" "\377GGG\377FFF\377GGG\377FFF\377DDD\377BBB\377EEE\377ZZ^\274\204\377" "\377\377\0\14ppp\20opu\347\220\222\220\377~\200~\377\225\226\225\377" "\227\230\226\377\217\220\216\377\223\224\223\377HHH\377GFF\377GGG\377" "FFF\377\202BBB\377\2^^a\357ppp\20\205\377\377\377\0\16[[_Ftuy\350\235" "\236\235\377\233\234\232\377\240\241\237\377\225\225\224\377\236\236" "\236\377JJJ\377FFF\377EEE\377DDD\377HHH\377[[_\355[[_F\207\377\377\377" "\0\14ppp\20iil\276\202\202\211\371\246\246\250\377\270\270\270\377\272" "\272\271\377JJJ\377FFF\377HHH\377VVY\375\\\\_\274ppp\20\212\377\377\377" "\0\10aaeGYY]\235ww|\320\204\204\211\347``c\354^^c\320XX]\240aaeG\214" "\377\377\377\0\10\210\211\213\5\210\211\213\31\210\211\2137\210\211\213" "I\210\211\213f\210\211\213a\210\211\213\37\210\211\213\3\206\377\377" "\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (moon_phase_7) #endif #ifdef __GNUC__ static const guint8 moon_phase_7[] __attribute__ ((__aligned__ (4))) = #else static const guint8 moon_phase_7[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1196) */ "\0\0\4\304" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\0\0\0\0\7\210\211\213\1\210\211\213\20\210\211\2132\210\211\213" "I\210\211\213f\210\211\213a\210\211\213\37\215\0\0\0\0\10aaeGikm\256" "\203\203\205\333\206\210\210\364\202\204\205\364vwy\333eej\246aaeG\212" "\0\0\0\0\14ppp\20stv\314\234\236\237\375\262\264\262\377\246\246\246" "\377\242\242\242\377\241\241\241\377\241\242\241\377\241\241\241\377" "\206\207\207\376mmo\306ppp\20\207\0\0\0\0\5[[_F}\177\202\360\244\246" "\244\377\224\227\224\377\215\216\215\377\203\213\214\213\377\6\215\215" "\215\377\220\220\220\377\213\213\213\377\214\214\214\377mnq\360[[_F\205" "\0\0\0\0\5ppp\20vwy\355\217\221\217\377\206\211\206\377|~|\377\204uu" "u\377\1uut\377\202uuu\377\4vwv\377uvu\377gij\363ppp\20\204\0\0\0\0\6" "ccg\272\203\207\205\377vyv\377wzw\377```\377^_^\377\204___\377\6^_^\377" "bbb\377```\377^^^\377abb\377\\\\_\307\202\0\0\0\0\12\210\211\213\3aa" "eGehl\373]`]\377\\_\\\377SUS\377===\377@@@\377DED\377GHG\377\202HIH\377" "\17EFE\377@A@\377<<<\377:;:\377;;;\377JKK\376aaeG\0\0\0\0\210\211\213" "%WY[\253oro\377^b^\377ehe\377IKI\377:;:\377\205;;;\377\20<<<\377;<;\377" ";;;\377:;:\377:::\377>>>\377WY\\\246\210\211\213\20\210\211\213a]`a\327" "knk\377\207\210\205\377xzw\377IJI\377;;;\377;<;\377\202<<<\377\2<=<\377" "=>=\377\202===\377\14<<<\377;<;\377;;;\377<<<\377WWZ\333\210\211\213" "Z\210\211\213fhjl\356gjg\377\207\207\206\377{}z\377EFD\377\202<<<\377" "\202<=<\377\1>>=\377\202===\377\16=>=\377\77\77\77\377===\377<<<\377" ";<;\377WXY\361\210\211\213s\210\211\213Ojkm\354\203\205\203\377\220\222" "\217\377|~{\377EFE\377<=<\377\203===\377\22=>=\377>>>\377\77\77>\377" "ABA\377CCC\377@@@\377==<\377<<<\377YY[\361\210\211\213h\210\211\213Y" "eeg\327|\177|\377\200\203\177\377\177\200}\377OPO\377===\377=>=\377\203" ">>>\377\5\77\77\77\377AAA\377BCB\377DDD\377BBB\377\202>>>\377\10[\\_" "\327\210\211\213I\210\211\2130ZZ_\243\200\204\201\377npn\377xzx\377X" "XW\377\202>>>\377\2>\77>\377\77\77\77\377\203BBB\377\203DDD\377\7@A@" "\377BCC\377ZZ_\245\210\211\2132\210\211\213\14aaeGuv{\373\202z|y\377" "\5hih\377>>>\377\77\77>\377\77\77\77\377@@@\377\202DDD\377\203EEE\377" "\4DDD\377AAA\377NOR\374aaeG\203\0\0\0\0\5eeh\301\223\224\223\377\210" "\213\210\377\177\201\177\377CCC\377\203@@@\377\10DDD\377FFF\377GGG\377" "FFF\377DDD\377BBB\377GGG\377\\\\_\272\204\0\0\0\0\14ppp\20opu\347\220" "\222\220\377~\200~\377klk\377AAA\377@@@\377AAA\377EEE\377GFF\377GGG\377" "FFF\377\202BBB\377\2aad\356ppp\20\205\0\0\0\0\7[[_Ftuy\350\235\236\235" "\377\232\233\231\377WWW\377AAA\377BBB\377\202FFF\377\5EEE\377DDD\377" "JJJ\377\\\\`\354[[_F\207\0\0\0\0\5ppp\20iil\276\202\202\211\371\234\234" "\236\377eee\377\203FFF\377\4JJJ\377ZZ]\375]]`\272ppp\20\212\0\0\0\0\10" "aaeGYY]\235ww|\320kkn\356ccf\353``e\316ZZ_\237aaeG\214\0\0\0\0\10\210" "\211\213\5\210\211\213\31\210\211\2137\210\211\213I\210\211\213f\210" "\211\213a\210\211\213\37\210\211\213\3\206\0\0\0\0"}; osmo-0.4.2/src/calendar_moon_b.h0000664000175000017500000012364413066543472013503 00000000000000guchar moonphase_0_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x03,0x00,0x00,0x00,0xba,0x57,0xed, 0x3f,0x00,0x00,0x01,0xa1,0x50,0x4c,0x54,0x45,0x00,0x00,0x00,0x88,0x89,0x8b,0x88, 0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89, 0x8b,0x70,0x70,0x70,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b, 0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88, 0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89, 0x8b,0x5b,0x5b,0x5f,0x88,0x89,0x8b,0x58,0x58,0x5c,0x5a,0x5a,0x5e,0x61,0x61,0x65, 0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x57,0x57,0x5b,0x59, 0x59,0x5e,0x57,0x57,0x5c,0x65,0x65,0x6a,0x59,0x59,0x5d,0x54,0x56,0x59,0x65,0x66, 0x68,0x54,0x56,0x58,0x5c,0x5c,0x5f,0x59,0x59,0x5c,0x5d,0x5d,0x60,0x62,0x62,0x64, 0x5f,0x5f,0x61,0x5d,0x5d,0x5f,0x6f,0x6f,0x71,0x5f,0x5f,0x63,0x6b,0x6c,0x6d,0x69, 0x69,0x6d,0x58,0x59,0x5b,0x53,0x54,0x56,0x75,0x76,0x78,0x53,0x55,0x56,0x59,0x59, 0x5a,0x79,0x7a,0x7c,0x5b,0x5b,0x5f,0x60,0x60,0x63,0x59,0x5a,0x5d,0x5e,0x5e,0x61, 0x67,0x67,0x6a,0x5d,0x5e,0x61,0x54,0x56,0x57,0x56,0x56,0x58,0x72,0x73,0x76,0x54, 0x55,0x56,0x66,0x67,0x69,0x53,0x54,0x55,0x6b,0x6b,0x6c,0x81,0x81,0x83,0x84,0x86, 0x86,0x6f,0x70,0x72,0x4a,0x4b,0x4d,0x52,0x52,0x54,0x56,0x56,0x59,0x47,0x48,0x48, 0x47,0x48,0x49,0x4c,0x4d,0x4f,0x87,0x88,0x88,0x88,0x88,0x89,0x00,0x00,0x00,0x3a, 0x3a,0x3a,0x3a,0x3b,0x3a,0x3b,0x3b,0x3b,0x3b,0x3c,0x3b,0x3c,0x3c,0x3c,0x3c,0x3d, 0x3c,0x3d,0x3d,0x3c,0x3d,0x3d,0x3d,0x3d,0x3e,0x3d,0x3e,0x3e,0x3d,0x3e,0x3e,0x3e, 0x3e,0x3f,0x3e,0x3f,0x3f,0x3e,0x3f,0x3f,0x3f,0x3f,0x40,0x3f,0x40,0x40,0x40,0x40, 0x41,0x40,0x41,0x41,0x41,0x41,0x42,0x41,0x42,0x42,0x42,0x42,0x43,0x42,0x43,0x43, 0x43,0x44,0x44,0x44,0x44,0x45,0x44,0x45,0x45,0x45,0x45,0x46,0x45,0x46,0x46,0x46, 0x47,0x46,0x46,0x47,0x47,0x47,0x47,0x48,0x47,0x48,0x48,0x48,0x48,0x48,0x49,0x48, 0x49,0x48,0x5d,0x5e,0x5d,0x5e,0x5e,0x5e,0x5e,0x5f,0x5e,0x5f,0x5f,0x5f,0x60,0x60, 0x60,0x60,0x61,0x60,0x61,0x61,0x61,0x62,0x62,0x62,0x74,0x74,0x74,0x75,0x75,0x74, 0x75,0x75,0x75,0x75,0x76,0x75,0x76,0x77,0x76,0x8a,0x8b,0x8a,0x8b,0x8b,0x8b,0x8b, 0x8c,0x8b,0x8c,0x8c,0x8c,0x8c,0x8d,0x8c,0x8d,0x8d,0x8d,0x90,0x90,0x90,0xa1,0xa1, 0xa1,0xa1,0xa2,0xa1,0xa2,0xa2,0xa2,0xa2,0xa3,0xa2,0x3a,0xd7,0x2c,0xc0,0x00,0x00, 0x00,0x51,0x74,0x52,0x4e,0x53,0x00,0x01,0x02,0x03,0x05,0x09,0x0a,0x0b,0x10,0x10, 0x13,0x15,0x1e,0x22,0x23,0x26,0x2c,0x34,0x35,0x3a,0x3b,0x3c,0x3e,0x42,0x46,0x46, 0x47,0x47,0x47,0x52,0x55,0x5a,0x5d,0x9f,0xa0,0xa7,0xa7,0xa8,0xaa,0xaf,0xb0,0xbc, 0xbd,0xc3,0xc5,0xc8,0xcb,0xcc,0xd0,0xd2,0xd8,0xda,0xdd,0xdd,0xe0,0xe0,0xe1,0xec, 0xed,0xef,0xef,0xef,0xf0,0xf2,0xf2,0xf2,0xf4,0xf4,0xf5,0xf5,0xf5,0xf5,0xf6,0xfd, 0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0x7f,0x76,0x49,0xc5,0x00,0x00,0x00,0x01,0x62, 0x4b,0x47,0x44,0x51,0x94,0x69,0x7c,0x2a,0x00,0x00,0x01,0x25,0x49,0x44,0x41,0x54, 0x18,0x19,0x05,0xc1,0xdb,0x2b,0x44,0x51,0x14,0xc0,0xe1,0xdf,0x5a,0x7b,0xcd,0x99, 0xab,0xd1,0xe4,0x49,0x0a,0x51,0xe2,0xc1,0x83,0xeb,0x83,0xf8,0xd7,0x3d,0xca,0xb3, 0x94,0x24,0xa4,0x4e,0x2e,0xd1,0x98,0x5c,0xce,0xd9,0xe7,0x98,0xbd,0x97,0xef,0x33, 0x00,0x10,0xeb,0x5b,0x37,0x36,0x15,0x00,0x18,0x00,0xac,0x0c,0x27,0x8b,0xfe,0xf9, 0x19,0x4b,0x00,0x0c,0xa0,0xb7,0xb3,0x76,0x82,0x67,0x91,0x8b,0xa5,0xdb,0x08,0x18, 0xb0,0xb2,0x7b,0x3a,0xaf,0x05,0x82,0xec,0x1f,0x9e,0xdf,0x3e,0x83,0x41,0x6f,0xfb, 0xa8,0x46,0x81,0x56,0xd0,0x33,0x9b,0x46,0x0c,0x36,0x8f,0x2b,0x11,0x04,0xf0,0x4e, 0x9b,0x0e,0xde,0xae,0xb0,0xb0,0xbc,0x71,0xef,0xde,0xe9,0xf5,0x8a,0x40,0x53,0xff, 0x24,0x5f,0x9d,0x96,0x36,0x18,0xf5,0xe7,0x42,0xfb,0xf7,0x0d,0xa8,0x3b,0x0c,0x06, 0x5d,0x9b,0x8c,0x7d,0xa1,0x4d,0x59,0x04,0x09,0x4e,0x72,0x67,0xbc,0x60,0x3e,0x76, 0x44,0x14,0xc1,0x32,0xd2,0x6f,0x93,0x0f,0x87,0xd6,0xe4,0xbe,0x8a,0x8b,0x82,0x07, 0x2d,0x82,0xd6,0x59,0xc4,0xc2,0xaf,0xff,0x49,0x91,0x44,0x21,0x98,0x8a,0x19,0xdf, 0xb5,0x55,0x1f,0x3b,0x55,0x08,0x01,0xd1,0x02,0x94,0x50,0xf8,0x57,0x63,0x75,0x33, 0x1d,0x01,0x2a,0x1a,0x50,0xc8,0xf2,0x52,0xcf,0xac,0x2d,0x27,0x67,0xd5,0x5c,0x02, 0x60,0x9a,0xe7,0xa9,0xfb,0x54,0x62,0x70,0x37,0xde,0xa2,0x20,0xab,0x0a,0x24,0xae, 0x1e,0xc0,0x20,0xde,0x87,0xbd,0x0a,0x54,0x3d,0xe5,0xd1,0xe5,0x63,0x04,0x03,0x5e, 0x67,0xd3,0xd5,0x75,0x05,0x8a,0xbb,0x87,0xc7,0x08,0x18,0x40,0xbc,0x9e,0xdd,0x4c, 0x86,0xa9,0xfa,0x6a,0x4b,0x00,0x0c,0x00,0x5e,0x3b,0xef,0x1d,0xcb,0xb1,0x06,0x80, 0x7f,0xad,0x95,0x7f,0x26,0xef,0xb9,0x17,0xc9,0x00,0x00,0x00,0x00,0x49,0x45,0x4e, 0x44,0xae,0x42,0x60,0x82 }; guchar moonphase_1_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1e,0x33,0x75,0x46,0x61,0xda,0x00,0x00,0x03,0x6f,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x95,0xcf,0x6b,0x5c,0x55,0x14,0xc7,0x3f,0xe7,0xde, 0x3b,0xef,0x4d,0xde,0xbc,0xf9,0x91,0x49,0xa7,0x19,0xdb,0x64,0xb0,0x11,0x14,0x37, 0xc6,0x45,0xc1,0x1f,0x08,0x76,0x25,0x44,0x11,0x37,0x2e,0xec,0x62,0x0a,0xa1,0xd4, 0x4d,0x56,0x81,0xd2,0xfe,0x0b,0xa6,0x96,0x66,0x95,0x8d,0x98,0x10,0xea,0x46,0xc1, 0x8d,0xdd,0x68,0x5d,0xa4,0x88,0x0b,0x11,0x24,0x22,0x25,0x4d,0x24,0x89,0xa6,0xb1, 0x99,0x64,0xa2,0x8d,0xd3,0xa6,0xc9,0xfc,0x7a,0xf3,0xae,0x8b,0xc9,0x9b,0x26,0xad, 0x23,0xde,0xc7,0xe3,0xc1,0xe5,0xbc,0xcf,0xfb,0x9e,0xf3,0x3d,0xf7,0x3c,0xb1,0xd6, 0xf2,0x6f,0x6b,0xe2,0xca,0x55,0x01,0xd2,0xc0,0x10,0xd0,0x0f,0x0c,0x02,0x4d,0x60, 0xee,0xf2,0xa5,0x8b,0x77,0xe9,0xb2,0xa4,0x1b,0xf0,0xfc,0xf9,0xf3,0x6f,0x89,0x36, 0x17,0x72,0xb9,0xdc,0xe9,0x94,0xef,0xe7,0x42,0xa0,0xb6,0x5f,0xff,0x7d,0x7b,0x7b, 0x7b,0x3e,0x08,0x6a,0x9f,0x4f,0x4f,0x4f,0x7f,0xfd,0xbf,0x80,0xe3,0xe3,0xe3,0x99, 0x66,0xd0,0xfa,0x76,0x70,0x70,0xf0,0x74,0x3e,0x7f,0x5c,0x44,0x04,0x0e,0x42,0x8c, 0x31,0x78,0x09,0x8f,0xcd,0xcd,0xed,0xd6,0xd2,0xaf,0x4b,0x3f,0x68,0x79,0xf8,0xde, 0xb5,0x6b,0x9f,0xee,0x74,0x05,0x8e,0x8e,0x5e,0x38,0x93,0x4c,0xf9,0x37,0x0a,0x85, 0x93,0x49,0x1b,0x1e,0xec,0xcb,0xa1,0x60,0x11,0xe2,0x6e,0x9c,0x98,0x1b,0x23,0x1e, 0xef,0x61,0xf1,0xce,0xf2,0x76,0x69,0x63,0xe3,0xdc,0xf5,0xeb,0x33,0x37,0x9f,0x02, 0x8e,0x8d,0x8d,0xf9,0xad,0x56,0xf8,0x47,0x2a,0x95,0xcc,0x44,0x7b,0x22,0x72,0x44, 0xbd,0xc5,0x22,0x08,0xae,0xeb,0x32,0x50,0x18,0x20,0x68,0x05,0xac,0xae,0xac,0xed, 0xd8,0x56,0xf0,0xdc,0xe4,0xe4,0x64,0x05,0xc0,0x44,0xc1,0xbb,0xbb,0xd5,0x2f,0x8d, 0x21,0xb3,0xb5,0xb5,0x77,0x44,0x99,0xf0,0x34,0x34,0x66,0x62,0x38,0x3d,0x0e,0x41, 0x33,0x20,0x7b,0x2c,0x93,0x5d,0x5e,0x5a,0xf9,0x0a,0x78,0x13,0x40,0x3e,0x9a,0xf8, 0x58,0xff,0xb6,0xba,0xfc,0xda,0xda,0xda,0xfa,0x77,0x7b,0x7b,0xbb,0xca,0x62,0xc1, 0x5a,0x94,0xd2,0x68,0xad,0xd1,0x46,0x63,0x8c,0x41,0x29,0x85,0xb5,0x96,0x30,0x0c, 0x69,0x36,0x9b,0xa4,0x33,0x69,0x92,0x69,0x1f,0x6b,0xc1,0xf7,0x33,0xad,0xc6,0x7e, 0xe3,0x9d,0x99,0x99,0x4f,0x6e,0x1a,0x60,0xa8,0x52,0xd9,0xfd,0xb0,0x5a,0xdd,0x53, 0xd6,0xda,0xb6,0x32,0x11,0x42,0x1b,0x62,0x03,0x4b,0x10,0x04,0xd4,0xa9,0x1f,0xa9, 0xa3,0xc5,0x52,0xaf,0xd5,0xc9,0xf5,0xe7,0x68,0x36,0x1a,0x78,0x3d,0x8e,0xae,0xec, 0x3c,0x38,0x37,0x71,0xe5,0xea,0x8f,0x06,0x78,0xa3,0x15,0x06,0xaf,0x58,0x6b,0x89, 0xc5,0x62,0x84,0x61,0x88,0xb5,0x96,0x08,0x2e,0x8f,0x73,0x27,0x72,0x5c,0x10,0xc2, 0x30,0x24,0xee,0xc6,0x3b,0xca,0x5d,0xc7,0x19,0x06,0xde,0x36,0x40,0x0c,0x24,0xdf, 0x71,0xfb,0xc9,0xda,0x1d,0x3c,0x94,0x48,0xd4,0x3d,0x1d,0xb3,0x12,0x89,0x04,0xaa, 0x2a,0x04,0x41,0x80,0xe7,0x7b,0xc7,0x81,0x67,0x14,0x50,0x16,0x11,0xab,0xb5,0x46, 0xd4,0x01,0xc6,0x3e,0x56,0x14,0x5d,0xf6,0xe0,0x23,0x4a,0x09,0xda,0x68,0x7a,0xe2, 0x3d,0xe4,0xfb,0xfb,0x71,0x5d,0x17,0x27,0xe6,0xa0,0x95,0x11,0x60,0x4f,0x01,0x9e, 0xd1,0xba,0x6c,0xb1,0x84,0xad,0x10,0x10,0x94,0x52,0x6d,0x85,0x11,0x34,0x02,0x8b, 0xa0,0x94,0x46,0x44,0xf0,0x93,0x3e,0xbd,0x99,0x5e,0x3c,0x2f,0x41,0x3a,0x9d,0xa6, 0x56,0xad,0x96,0x80,0xbb,0x0a,0x58,0x04,0xbe,0x57,0xa2,0x3a,0xf5,0x6b,0xa7,0xc5, 0x11,0xa8,0x31,0x06,0xad,0xdb,0x30,0x25,0x8a,0x4c,0x26,0x83,0xe7,0x25,0xe8,0xcb, 0x66,0x71,0xdd,0x38,0xb5,0x6a,0xed,0x36,0x50,0x56,0xc0,0x4a,0x2a,0xe5,0xcf,0xfa, 0xc9,0x74,0x28,0x4a,0x38,0x9a,0x33,0x87,0x94,0x29,0x94,0x52,0x1d,0xe8,0xd0,0xa9, 0x53,0x18,0x6d,0x10,0x51,0x94,0xb7,0x2a,0x0d,0xc7,0x71,0x3e,0xbb,0x7c,0xe9,0xe2, 0x7c,0xe7,0xa4,0x14,0x8b,0xa3,0xb7,0xca,0xdb,0x1b,0x67,0x1a,0xf5,0x46,0xc7,0x61, 0x25,0xd2,0x71,0x25,0xea,0x45,0x11,0x41,0x6b,0x4d,0xb1,0x58,0xa4,0x56,0xaf,0xf1, 0x70,0xf7,0x11,0xf3,0x3f,0xfd,0xfc,0xcd,0xec,0xec,0xf4,0x08,0x80,0x8a,0xfa,0x2b, 0x95,0xf2,0xde,0xcd,0xe5,0xf2,0xf7,0x23,0x07,0xb5,0xd2,0x88,0xa8,0x8e,0xab,0xed, 0xbb,0x1d,0x3b,0x3c,0x3c,0x4c,0xb5,0x56,0xc5,0xda,0x90,0xd2,0xbd,0xad,0x3f,0x7b, 0x7b,0x53,0x67,0x23,0x4e,0x07,0x38,0x35,0x35,0xf5,0xc8,0x89,0xb9,0xef,0x0f,0x0c, 0x3e,0xfb,0xb7,0xe7,0x79,0x6d,0x80,0x92,0x43,0x30,0xc1,0x5a,0xe8,0xcb,0xf6,0x31, 0xfc,0xf2,0x4b,0x28,0x71,0xb8,0xb3,0xb0,0xb2,0x59,0x2a,0x95,0x8a,0xd1,0x39,0xee, 0x3a,0xbe,0xf6,0xf7,0xab,0x37,0x76,0x76,0x1e,0xbc,0x5e,0xa9,0xfc,0xa5,0x23,0x18, 0x40,0xa1,0x50,0x60,0x64,0x64,0x84,0xf5,0xf5,0x72,0xb0,0xb0,0xf0,0xcb,0x5c,0x32, 0x19,0x9c,0xfd,0xcf,0xf1,0xf5,0xe4,0x80,0xad,0x56,0xeb,0x1f,0x64,0xb3,0xc7,0x5e, 0x0d,0xc3,0xe0,0x44,0xa3,0xd1,0x0a,0x12,0x89,0xc4,0x6a,0xa5,0x52,0x59,0x34,0xc6, 0x7e,0xd1,0x6d,0xc0,0x9a,0x6e,0xa3,0xfc,0xf9,0x17,0x5e,0xbc,0x05,0xdc,0x06,0x0a, 0x40,0x36,0xfa,0x05,0x9c,0x38,0x99,0x9f,0x03,0xee,0x75,0x7b,0xef,0x1f,0xa9,0x80, 0x66,0xd1,0xea,0xed,0x9a,0x4d,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42, 0x60,0x82 }; guchar moonphase_2_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1f,0x34,0xf2,0x39,0xc5,0x38,0x00,0x00,0x03,0xb7,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x94,0xcd,0x6b,0x5c,0x55,0x18,0xc6,0x7f,0xe7,0x9c, 0xfb,0x31,0xf7,0xde,0x99,0xcc,0xdc,0x24,0x93,0x5a,0x62,0x26,0x9a,0x85,0x16,0xa9, 0x1f,0xdd,0x29,0xa8,0x2b,0xb1,0xa8,0xe0,0x56,0xa1,0xa5,0xda,0x0a,0x8a,0xcb,0x40, 0x69,0xff,0x05,0x5b,0x0b,0xd9,0x17,0x09,0x91,0x66,0xe3,0xb6,0x0b,0x25,0x45,0xba, 0xd0,0x16,0xd1,0x85,0x9f,0x0b,0xdb,0x5a,0x34,0x25,0x69,0x32,0x53,0x6c,0xe7,0x4e, 0x32,0x99,0xaf,0x73,0xcf,0x39,0x2e,0xf2,0x61,0xa2,0x0d,0xf4,0x6c,0xce,0x07,0xe7, 0x7d,0x78,0xde,0xf7,0x7d,0xde,0x47,0x38,0xe7,0x78,0xd8,0x3a,0x77,0xfe,0x82,0x00, 0xca,0xc0,0x14,0x70,0x00,0x98,0x00,0x34,0x70,0xf5,0xec,0x99,0xd3,0x77,0xd8,0x67, 0x89,0xfd,0x00,0x4f,0x9d,0xfa,0xf0,0x68,0x50,0x08,0x3e,0xae,0x8e,0x0c,0x1f,0x89, 0xe2,0x68,0xb4,0x50,0x48,0x74,0x96,0x65,0x77,0x1b,0xf5,0x7b,0x3f,0x69,0x3d,0xb8, 0x34,0x3b,0x7b,0x71,0xe1,0x91,0x00,0xa7,0xa7,0xa7,0x2b,0xc6,0xf2,0x4d,0x6d,0x72, 0xe2,0xf0,0x81,0xb1,0xaa,0x00,0xc0,0x41,0x18,0x87,0x04,0x7e,0x80,0x52,0x1e,0x4b, 0xcb,0x2b,0xf6,0xf6,0xcd,0x3f,0xae,0x3b,0x97,0xbf,0x3d,0x33,0x33,0x93,0xed,0x8e, 0x97,0xbb,0x2f,0xc7,0x8e,0xbd,0x77,0x14,0x21,0x57,0x26,0x27,0x1f,0x7f,0xd6,0x59, 0x23,0x1a,0xf5,0x06,0x8d,0x46,0x83,0xc6,0xbd,0x06,0xcd,0x07,0x4d,0xba,0xbd,0x2e, 0x41,0xe0,0x13,0x86,0x4a,0x3e,0xf7,0xc2,0xe1,0x57,0xa2,0xb8,0x7c,0xf3,0xf8,0xf1, 0xf7,0x5f,0x7f,0x28,0xc3,0xe9,0xe9,0xe9,0x4a,0xa7,0xd7,0x5f,0x2e,0x97,0x8a,0xc9, 0xf6,0x9b,0x10,0x62,0xe7,0xe3,0xd8,0x63,0x63,0x38,0x67,0xf1,0x83,0x00,0x6b,0x2d, 0x49,0x9c,0xa0,0x73,0xcd,0xe2,0x5f,0x4b,0x4d,0xa3,0x07,0x53,0xdb,0x4c,0xbd,0xed, 0x80,0xfb,0xf7,0xb3,0xcb,0x4a,0x91,0xd4,0x3b,0x6d,0x04,0x02,0xb6,0xb0,0xc4,0xd6, 0xa1,0x10,0x87,0x38,0xc0,0x39,0xc7,0xf8,0xf8,0x38,0x59,0x2b,0x63,0xa3,0xb3,0x41, 0x65,0x78,0x28,0xfd,0xf3,0xd6,0xe2,0x65,0xe0,0x55,0x00,0xf1,0xc9,0xb9,0x4f,0xd5, 0xcd,0x1b,0xb7,0x5e,0x5b,0xad,0xaf,0x7c,0xd5,0x5e,0x6f,0x09,0x87,0x03,0x07,0x52, 0x4a,0x94,0x52,0x78,0xbe,0x87,0x52,0x8a,0x43,0xcf,0x1c,0x02,0x1c,0xd6,0x38,0xb4, 0xd1,0xf4,0xfb,0x7d,0xf2,0x5c,0x63,0x8c,0xa5,0x54,0x4a,0xcd,0xa0,0x33,0x78,0x6b, 0x76,0xf6,0xe2,0x82,0x07,0x4c,0xb5,0x3b,0xed,0x8f,0x36,0xda,0x6b,0xc2,0x5a,0xbb, 0xc3,0xcc,0x58,0x83,0xb5,0x16,0xad,0x35,0x00,0x7a,0x30,0xc0,0x01,0xbe,0xef,0xe3, 0x09,0x0f,0x01,0x68,0xa5,0xd0,0x5a,0x13,0x47,0x81,0xca,0x1e,0xb4,0x4e,0x9c,0x3b, 0x7f,0xe1,0x7b,0x0f,0x78,0xd9,0x5a,0x73,0xc4,0x3a,0x8b,0xef,0xfb,0x58,0x6b,0x71, 0xce,0xe1,0x9c,0x63,0x33,0xf3,0xad,0x94,0xa3,0x88,0x42,0x18,0xe2,0x9c,0x23,0x37, 0x86,0x3c,0xcf,0x51,0x5a,0x23,0xa5,0xc4,0x39,0x47,0x18,0x04,0xcf,0x03,0x6f,0x7a, 0x80,0x0f,0x54,0xd9,0x56,0xcf,0x7f,0x6a,0xb7,0xbd,0xc5,0x51,0x84,0x31,0x16,0x63, 0x0c,0x41,0x10,0x30,0x9c,0xa6,0x64,0xad,0x16,0xb2,0x2b,0xc9,0xf3,0x9c,0xa4,0x98, 0x8c,0x01,0x07,0x3d,0xa0,0x21,0x85,0x70,0xca,0x53,0x08,0x21,0x10,0x0e,0x9c,0x63, 0x0f,0x3b,0x00,0x6b,0x1d,0x41,0xe0,0xe3,0xfb,0x31,0xd5,0xd1,0x2a,0xa5,0x62,0x89, 0x42,0xd8,0x60,0xa5,0xbe,0x82,0xc9,0x2d,0x03,0x6b,0x01,0x36,0x24,0x10,0xfb,0x9e, 0xff,0x37,0x0e,0xac,0xb5,0x80,0x40,0x4a,0xb9,0xd3,0x69,0x21,0x04,0x42,0x08,0x02, 0xdf,0x27,0xf0,0x03,0x2a,0xe5,0x0a,0x61,0xa1,0x80,0xe7,0xfb,0x54,0xd2,0x0a,0x51, 0x14,0x53,0x2e,0x97,0xe9,0xf6,0x7a,0xab,0xc0,0x1d,0x0f,0xf8,0xdd,0x5a,0xf1,0x9d, 0x90,0xe2,0x09,0x93,0x9b,0x1d,0x80,0x1d,0x0d,0x6e,0x31,0xad,0x4d,0xd4,0x10,0x52, 0x62,0xad,0xa1,0x98,0x24,0x28,0xe5,0x91,0xc4,0x45,0x46,0x47,0x46,0xe8,0x74,0xfa, 0xf4,0x3a,0xbd,0xdf,0x80,0x86,0x04,0x6e,0x47,0x51,0xe1,0xf3,0xf2,0x50,0x6a,0x85, 0xfc,0x57,0x7f,0x9b,0xc2,0xde,0x04,0x13,0x42,0x50,0x2c,0x16,0x49,0x92,0x84,0xea, 0x68,0x95,0x38,0x4a,0xf0,0x3c,0x0f,0x4f,0x79,0x48,0xa9,0xa8,0xd7,0x9b,0x83,0x20, 0xf0,0x2f,0x9d,0x3d,0x73,0xfa,0x47,0xef,0xec,0x99,0xd3,0x6d,0x60,0xe1,0xe4,0xc9, 0x0f,0x7e,0xe8,0xf5,0x3a,0x2f,0xf6,0x07,0x7d,0x9c,0xdd,0xea,0xb0,0x90,0xbb,0xc0, 0x05,0x69,0x9a,0x12,0xf8,0x21,0x3a,0x1f,0xd0,0x6c,0x66,0xac,0xb7,0xd7,0xc9,0xb5, 0xa5,0x79,0xff,0xde,0xd7,0x73,0x73,0x9f,0x2d,0xec,0x99,0xe5,0x4a,0x65,0xe8,0x8d, 0xea,0xd8,0xc1,0x6c,0xbb,0x11,0x4a,0xaa,0x9d,0xb4,0x85,0x10,0x44,0x51,0x84,0xa7, 0x36,0x45,0x9e,0xeb,0x9c,0xb5,0xf5,0x35,0x9c,0xb3,0x2c,0x2f,0xad,0x34,0xd2,0xb4, 0x74,0xec,0x7f,0xe6,0x30,0x33,0x33,0x93,0xe1,0x78,0xa7,0x36,0x39,0x95,0xc5,0x71, 0xbc,0xa7,0x96,0x42,0x08,0xe2,0x28,0xc6,0x18,0x43,0xb3,0xd9,0xa4,0xb5,0xd6,0xc2, 0x39,0xc9,0x2f,0x3f,0xdf,0xb8,0xbb,0xba,0xba,0x7a,0x62,0xb7,0xe3,0xec,0x71,0x9b, 0xf9,0xf9,0xb9,0x2b,0xc3,0xe9,0xd0,0x93,0xe3,0xe3,0xb5,0xeb,0x69,0x3a,0x62,0x95, 0x52,0x9b,0x93,0xe1,0x6d,0x8e,0xbc,0x54,0x92,0x20,0xf4,0x59,0x5c,0xac,0xeb,0x6b, 0xdf,0x5e,0xfb,0x52,0x08,0x7d,0x78,0x7e,0x7e,0xee,0xca,0x23,0x1b,0x6c,0xb7,0xdb, 0x7d,0x37,0x4d,0xd3,0x97,0xac,0x35,0x07,0x46,0x46,0x46,0xdb,0x59,0xb6,0xb6,0x94, 0x65,0xcd,0x1b,0x61,0x18,0x7c,0xb1,0x9f,0xc1,0x7a,0xfb,0x59,0xf9,0xd3,0x87,0x9e, 0xba,0x0a,0xfc,0x0a,0xd4,0x80,0x61,0x60,0x62,0xa8,0x5c,0xd2,0xb5,0xc9,0xf1,0xab, 0xc0,0xf2,0x7e,0x71,0xff,0x00,0x58,0x49,0x9c,0x0b,0x3b,0x19,0xee,0x32,0x00,0x00, 0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; guchar moonphase_3_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1f,0x29,0x91,0x3f,0xa9,0xe1,0x00,0x00,0x03,0xe3,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x94,0xcf,0x6f,0x54,0x55,0x14,0xc7,0x3f,0xf7,0xe7, 0xeb,0x7b,0x6f,0x86,0x99,0xe9,0x74,0x98,0xc0,0xb4,0x50,0x59,0x80,0x0b,0x14,0x56, 0xb0,0x51,0x57,0x46,0x8c,0x24,0x6e,0x35,0x81,0x80,0xb2,0x30,0xd1,0x5d,0x13,0x02, 0xff,0x82,0x20,0x49,0xf7,0xc4,0x34,0x4d,0xe8,0xc6,0xad,0x26,0x18,0x58,0xb0,0x50, 0x54,0xd8,0x80,0xe8,0x42,0x40,0x62,0x4b,0x5a,0xda,0xa9,0x21,0x9d,0x37,0x1d,0x66, 0xda,0xce,0x7b,0xef,0x5e,0x17,0xd3,0x12,0x88,0x34,0xe1,0xec,0x6e,0x72,0xcf,0xf7, 0x9e,0xf3,0xbd,0xe7,0x7c,0x84,0xf7,0x9e,0x57,0xc5,0x85,0x8b,0x97,0x04,0x50,0x02, 0xf6,0x01,0x75,0x60,0x0c,0x48,0x81,0x1b,0xe7,0xcf,0x9d,0x7d,0xcc,0x36,0x21,0xb6, 0x13,0x3c,0x73,0xe6,0x8b,0x63,0x41,0x18,0x7c,0x35,0x52,0x1d,0x3e,0x54,0x1d,0xa9, 0x56,0x5c,0x8e,0x4f,0x92,0xe4,0xc9,0x72,0xf3,0xdf,0xbb,0x69,0xda,0xbf,0x32,0x35, 0x75,0xf9,0xda,0x6b,0x09,0x4e,0x4c,0x4c,0x94,0x73,0xc7,0x4f,0x7b,0xc6,0x46,0x0f, 0x36,0x46,0x77,0x8b,0x30,0x0a,0x49,0xd3,0x14,0x8f,0xc7,0x1a,0x8b,0x52,0x9a,0xf9, 0x85,0x45,0xf7,0xe8,0xc1,0xdf,0xbf,0x78,0x9f,0x7d,0x3c,0x39,0x39,0x99,0xbc,0x98, 0x2f,0x5f,0x3c,0x9c,0x38,0x71,0xfa,0x18,0x42,0x2e,0xee,0xdd,0x3b,0xfa,0x16,0xc2, 0x8b,0x95,0x64,0x85,0x66,0xb3,0xc9,0x4a,0x6b,0x85,0xd6,0x4a,0x8b,0xb5,0xf5,0x35, 0xac,0x35,0x04,0x81,0x92,0x6f,0x1f,0x3e,0xf8,0x6e,0x18,0x95,0x1e,0x9c,0x3c,0xf9, 0xd9,0x07,0xaf,0xac,0x70,0x62,0x62,0xa2,0xdc,0xeb,0xad,0x2f,0x94,0x4a,0xc5,0xd8, 0x7b,0x4f,0x30,0x14,0x50,0x2a,0x97,0x40,0x80,0x40,0x00,0xe0,0xbd,0xc3,0x58,0x8b, 0x73,0x8e,0x38,0x8a,0x49,0xb3,0x94,0xb9,0xd9,0xf9,0x56,0x9e,0xf6,0xf7,0x6d,0x55, 0xaa,0xb7,0x94,0x9f,0x3e,0x6d,0xfd,0xa0,0xb5,0x88,0x9b,0xcb,0x5d,0x04,0x82,0x5a, 0xbd,0x06,0xab,0x20,0xc4,0x40,0x4c,0x00,0x1e,0xf0,0xde,0xd3,0x68,0x34,0x48,0xda, 0x09,0xdd,0x5e,0x97,0xf2,0xf0,0x8e,0xca,0x3f,0x0f,0xe7,0xbe,0x07,0xde,0x03,0x10, 0x5f,0x5f,0xf8,0x46,0x3d,0xb8,0xff,0xf0,0xfd,0xc5,0xa5,0x85,0x1f,0xbb,0xcf,0x3a, 0xc2,0xe3,0x11,0x42,0xb0,0xff,0xc0,0x7e,0x8c,0x35,0x68,0xad,0x51,0x4a,0x6d,0x0a, 0x7b,0x5c,0xee,0x49,0xf3,0x94,0x8d,0x8d,0x0d,0xb2,0x2c,0x25,0xcf,0x1d,0xc5,0x62, 0x25,0xef,0xf7,0xfa,0xc7,0xa7,0xa6,0x2e,0x5f,0xd3,0xc0,0xbe,0x4e,0xb7,0xf3,0x65, 0xf7,0x59,0x47,0x38,0xe7,0x40,0x40,0x10,0x04,0x28,0xad,0x00,0x70,0xb9,0xc3,0x39, 0xf7,0xbc,0x42,0x63,0x0c,0x5a,0x68,0x04,0x90,0x2a,0x45,0x9a,0xa6,0x44,0xa1,0x55, 0xc9,0x4a,0xfb,0xd4,0x85,0x8b,0x97,0x6e,0x6b,0xe0,0x1d,0xef,0xdd,0x61,0x8f,0xc7, 0x18,0x83,0x73,0x8e,0x28,0x8c,0x30,0xda,0x20,0x95,0x44,0x0a,0x89,0x10,0xa0,0xb4, 0x66,0x28,0x08,0xf0,0xde,0x93,0xe5,0x39,0x59,0x96,0xa1,0xd2,0x14,0x29,0x25,0xde, 0x7b,0x02,0x6b,0x0f,0x01,0x1f,0x69,0xc0,0x08,0x18,0x61,0x6b,0x7a,0x04,0xd8,0xc0, 0x60,0x8c,0x46,0x4a,0x85,0x54,0x12,0x81,0x60,0x68,0x28,0x20,0xcf,0x1d,0x79,0x9e, 0x63,0xad,0x65,0xb8,0x52,0x21,0x69,0xb7,0x91,0x6b,0x92,0x2c,0xcb,0x88,0x0b,0xf1, 0x4e,0x60,0x97,0x06,0x96,0x05,0x78,0xa5,0x07,0x3e,0x09,0x3f,0x30,0xde,0x18,0x83, 0x54,0x0a,0x29,0x24,0x52,0x08,0x9c,0xf3,0x58,0x6b,0x30,0x26,0xa2,0x36,0x52,0xa3, 0x58,0x28,0x32,0x14,0x2c,0xb3,0xd8,0x5c,0x24,0xcf,0x1c,0x7d,0xe7,0x00,0xba,0x12, 0x88,0xb4,0x36,0x4f,0xf1,0xe0,0x9c,0xdb,0xfc,0x4f,0x81,0xd6,0x06,0xa3,0x35,0xc6, 0x18,0x8c,0xb5,0x58,0x63,0xb0,0xc6,0x52,0x2e,0x95,0x09,0x86,0x86,0xd0,0xc6,0x50, 0xae,0x94,0x09,0xc3,0x88,0x52,0xa9,0xc4,0xda,0xfa,0xfa,0x12,0xf0,0x58,0x03,0x7f, 0x79,0x2f,0x6e,0x09,0x29,0xc6,0xf3,0x2c,0x47,0x08,0x41,0x96,0xa6,0x68,0xad,0xd1, 0x4a,0xa1,0x94,0x42,0x6b,0x4d,0x7d,0x67,0x1d,0x21,0x25,0xce,0xe5,0x14,0xe2,0x18, 0xa5,0x34,0x71,0x54,0x60,0xa4,0x5a,0xa5,0xd7,0xdb,0x60,0xbd,0xb7,0xfe,0x27,0xb0, 0x2c,0x81,0x47,0x61,0x18,0x4e,0x17,0x8b,0x65,0x2f,0xa4,0x00,0x01,0xdd,0x5e,0x0f, 0x29,0xe5,0x40,0xd4,0x18,0xac,0xb5,0x14,0x0a,0x05,0xe2,0x38,0xa6,0x36,0x52,0x23, 0x0a,0xe3,0xcd,0x07,0x07,0x3e,0x37,0x9b,0xad,0xbe,0xb5,0xe6,0xca,0xf9,0x73,0x67, 0xef,0x3c,0xdf,0x94,0xd3,0xa7,0x3f,0xbf,0xb5,0xb4,0xf4,0xe4,0x68,0x3f,0xed,0xe3, 0x9d,0xe7,0xc8,0xd1,0x23,0xd4,0xeb,0x75,0x10,0xa0,0x95,0x66,0xb4,0xd1,0xa0,0x52, 0xa9,0x60,0x4d,0x40,0x9a,0xf5,0x69,0xb5,0x12,0x3a,0xcf,0x3a,0xb4,0xdb,0x1d,0xee, 0xde,0xb9,0x77,0x75,0x7a,0xfa,0xdb,0xe3,0x2f,0xed,0xf2,0xf0,0x70,0xf9,0xc3,0x5a, 0x6d,0x57,0xb2,0xb5,0x66,0xdd,0x6e,0x97,0x42,0x21,0x46,0x6f,0xb6,0x1c,0x86,0x21, 0x5a,0x0d,0x86,0x3c,0x4b,0x33,0x56,0x3b,0xab,0x78,0xef,0x58,0x98,0x5f,0x5c,0xae, 0x54,0x8a,0x27,0xfe,0x07,0x87,0xc9,0xc9,0xc9,0x44,0x08,0xf1,0xc9,0xe8,0xd8,0x78, 0x3b,0x8c,0x42,0x66,0x67,0x67,0xf1,0x7e,0x40,0x98,0x38,0x8a,0x89,0xc2,0x88,0x3c, 0xcf,0x69,0xb5,0x5a,0xb4,0x57,0xdb,0x78,0x2f,0xb9,0xf7,0xfb,0xfd,0x27,0x4b,0x4b, 0x4b,0xa7,0x5e,0x24,0xce,0x4b,0xb4,0x99,0x99,0x99,0xbe,0x3e,0x52,0x2d,0x8f,0x37, 0x76,0x8f,0xfd,0x1a,0x85,0x05,0x77,0xeb,0xb7,0xdb,0x8c,0x8f,0xbf,0xc1,0xe8,0x68, 0x63,0x70,0x59,0x49,0x6c,0x60,0x98,0x9b,0x6b,0xa6,0x37,0x7f,0xbe,0x79,0x55,0x88, 0xf4,0xe0,0xcc,0xcc,0xf4,0xf5,0xd7,0x06,0x6c,0xaf,0xd7,0xfb,0xb4,0x56,0xdb,0x79, 0xb4,0x5a,0xad,0x0e,0xa7,0x69,0x3f,0x4d,0x92,0xd5,0xf9,0x24,0x69,0xdd,0x0f,0x02, 0xfb,0xdd,0x76,0x80,0xd5,0xdb,0xa1,0xfc,0xc0,0x9b,0xfb,0x6f,0x00,0x7f,0x00,0x7b, 0x80,0xe1,0x90,0x60,0x6c,0x47,0xa9,0x98,0xee,0xd9,0xdb,0xb8,0x01,0x2c,0x6c,0x97, 0xf7,0x1f,0x63,0xe1,0xa5,0xde,0x85,0x94,0xfb,0xc2,0x00,0x00,0x00,0x00,0x49,0x45, 0x4e,0x44,0xae,0x42,0x60,0x82 }; guchar moonphase_4_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1f,0x1c,0xc7,0x8c,0x6d,0xc2,0x00,0x00,0x03,0xe5,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x94,0xc9,0x6b,0x5d,0x55,0x1c,0xc7,0x3f,0x67,0xba, 0xf7,0xbe,0x29,0x6f,0x68,0xd3,0x97,0xa1,0x4d,0x4a,0x0c,0x4d,0xe3,0x54,0xc4,0xa5, 0xd2,0x95,0x28,0x58,0xd0,0x9d,0x08,0xad,0x22,0x45,0x2a,0x2e,0x03,0xa5,0xfd,0x17, 0x6c,0x2d,0x74,0x5f,0x24,0x14,0xdb,0x8d,0x5d,0xb8,0x10,0x11,0xaa,0x52,0x70,0xe1, 0x4e,0x3a,0x22,0x1d,0x8c,0xb6,0x4d,0xd2,0x0c,0x35,0x9a,0xfb,0xf2,0xfa,0xa6,0x7b, 0xce,0xbd,0xc7,0xc5,0x4b,0x8b,0x68,0x23,0xfe,0xf6,0xe7,0xc3,0xf7,0x9c,0xef,0xf9, 0x7d,0x84,0xf7,0x9e,0xa7,0xcd,0x89,0x93,0xa7,0x04,0x50,0x06,0x26,0x80,0x3a,0xb0, 0x0b,0xb0,0xc0,0xa5,0xe3,0xc7,0x8e,0xde,0x67,0x8b,0x11,0x5b,0x01,0x0f,0x1f,0x3e, 0xf2,0x46,0x94,0x8f,0x3e,0x1a,0x19,0x1a,0x7a,0x61,0xa0,0x52,0x1e,0x74,0x36,0x25, 0x8e,0xe3,0x07,0xab,0x2b,0x0f,0xaf,0x58,0x9b,0x9c,0x9b,0x9d,0x3d,0x73,0xf1,0x7f, 0x01,0x67,0x66,0x66,0x2a,0x4a,0x07,0xdf,0x4f,0x3f,0x3b,0xfd,0xd2,0xd0,0xd0,0xa0, 0x74,0xce,0x91,0x24,0x09,0x1e,0x4f,0x60,0x02,0x94,0xd2,0x2c,0x2c,0x2e,0x65,0x73, 0xb7,0x7f,0xf9,0xd1,0x7b,0xf7,0xd6,0xe9,0xd3,0xa7,0xe3,0x2d,0x81,0x87,0x0e,0x7d, 0xf0,0xfa,0xc4,0xe4,0x33,0x17,0xa6,0xa6,0x26,0xca,0x71,0x23,0x46,0x08,0x81,0x14, 0x12,0x21,0x05,0x78,0x18,0x28,0x0f,0x50,0xab,0xd6,0x58,0x7c,0xb0,0x88,0x92,0x9a, 0x3b,0xb7,0xef,0x3e,0x9c,0xbf,0x7f,0xef,0xbd,0xf3,0xe7,0xcf,0x7e,0xfb,0x2f,0xe0, 0xcc,0xcc,0x4c,0x25,0x08,0x73,0xbf,0x0e,0x8f,0xec,0xa8,0x75,0xba,0x1d,0xbc,0xf7, 0x18,0x6d,0x40,0x80,0x40,0x00,0xe0,0x7d,0x86,0x09,0x02,0xb2,0x2c,0xa3,0x90,0x2f, 0x60,0x9d,0xe5,0xde,0xdd,0x85,0xf5,0xd4,0x26,0x13,0x8f,0x93,0xea,0xc7,0xe4,0x66, 0xb3,0x73,0x61,0x77,0x7d,0xb0,0xb6,0xbc,0xb2,0x8c,0x90,0xfd,0x64,0x52,0x4a,0x84, 0xe8,0xc3,0x04,0xe0,0x01,0xef,0x3d,0xa3,0xa3,0xa3,0xc4,0x8d,0x98,0x56,0xbb,0x45, 0xa5,0x36,0x50,0xfd,0xed,0xce,0xbd,0xaf,0x80,0xfd,0x00,0xe2,0x93,0x13,0x9f,0xaa, 0xdb,0xb7,0xee,0xbc,0xa6,0xc3,0xf0,0xeb,0x6e,0xb7,0xa1,0xbd,0xf7,0x28,0xa5,0x50, 0x4a,0x61,0x8c,0x41,0x6b,0x8d,0x52,0x6a,0x13,0xec,0xc9,0x52,0x8f,0x4d,0x2d,0xbd, 0x5e,0x0f,0xe7,0x2c,0x69,0x9a,0x51,0x2a,0x55,0xd3,0xa4,0x9d,0x1c,0x98,0x9d,0x3d, 0x73,0x51,0x02,0x13,0xed,0x6e,0xfb,0xc3,0x7c,0x5e,0x69,0x21,0x05,0xb9,0x5c,0x0e, 0xa5,0xfb,0x40,0x80,0x2c,0xcd,0xb0,0xd6,0x62,0x93,0x84,0x24,0xb1,0x08,0x29,0xd0, 0x5a,0x13,0x85,0x21,0x61,0x18,0x61,0x8c,0x21,0x9f,0x0b,0x54,0xbb,0xdb,0x79,0xff, 0xc4,0xc9,0x53,0x15,0x0d,0xbc,0x1a,0x84,0xc1,0xf3,0xce,0x39,0xa6,0xf7,0x4c,0xd1, 0xd8,0xd8,0xa0,0xd3,0xe9,0x62,0xad,0x45,0x2a,0xd9,0x2f,0x45,0x80,0xda,0x84,0x78, 0xef,0x71,0x69,0x8a,0x73,0x0e,0x65,0x2d,0x52,0x4a,0xbc,0xf7,0x84,0x41,0xb0,0x0f, 0x78,0x53,0x03,0xa6,0x90,0x2f,0xd4,0x9d,0xb3,0xe0,0x45,0xff,0xba,0x5a,0x02,0x1a, 0x29,0x15,0x52,0x49,0x04,0x82,0x28,0x0a,0x49,0xd3,0x8c,0x34,0x4d,0x09,0x82,0x80, 0x5a,0xb5,0x4a,0xdc,0x68,0x20,0x3b,0x12,0xe7,0x1c,0x85,0x62,0x61,0x07,0x30,0xac, 0x81,0x55,0x29,0x44,0x36,0x3c,0xb2,0x93,0x5c,0x21,0x47,0xab,0xd3,0x22,0x4b,0x33, 0x8c,0x31,0x48,0xa5,0xfa,0xe5,0x08,0x41,0x96,0x79,0x82,0xc0,0x60,0x4c,0x9e,0xc1, 0xed,0x83,0x94,0x8a,0x25,0xa2,0x70,0x95,0xa5,0x95,0x25,0x52,0x97,0x91,0x64,0x19, 0x40,0x4b,0x03,0x79,0x9b,0x24,0xbf,0xf7,0x92,0xde,0xb6,0xb4,0xe1,0x50,0x52,0x52, 0x2a,0x95,0xb0,0xd6,0xa1,0x94,0xec,0xa7,0x94,0x12,0x01,0x18,0x63,0x28,0x97,0xcb, 0x84,0x51,0x84,0x36,0x86,0x4a,0xb5,0xc2,0x7a,0x23,0x46,0x49,0xc5,0xfc,0xfc,0xf2, 0x32,0x70,0x5f,0x03,0x37,0x5b,0xad,0xee,0x4f,0xda,0x98,0xbd,0x7f,0xae,0xfd,0x41, 0x3e,0x9f,0xef,0xbf,0x95,0x06,0xbd,0xd9,0xb6,0xd6,0x9a,0xfa,0x8e,0x3a,0x42,0x4a, 0xb2,0x2c,0xa5,0x58,0x28,0xa0,0x94,0xa6,0x90,0x2f,0xb2,0x7d,0xdb,0x36,0xda,0xed, 0x1e,0xdd,0x76,0xf7,0x06,0xb0,0xaa,0x81,0xb9,0x30,0x0c,0xce,0xb7,0x36,0x92,0x77, 0x8b,0xc5,0x82,0x06,0x70,0x69,0xfa,0x04,0xa4,0xb4,0x26,0x30,0x86,0x62,0xb1,0x08, 0x42,0x10,0x85,0x21,0x5a,0x1b,0xd2,0x2c,0xc5,0x67,0x1e,0x29,0x15,0x2b,0x2b,0xeb, 0x49,0x10,0x98,0x73,0xc7,0x8f,0x1d,0xbd,0xfc,0x64,0x53,0x8e,0x1c,0xf9,0xf8,0x87, 0x17,0xf7,0x3d,0xb7,0xbf,0xd5,0x69,0xd1,0xeb,0xf6,0x90,0x52,0x12,0x85,0x11,0x08, 0xd0,0x4a,0xb3,0x73,0x74,0x94,0x6a,0xb5,0x4a,0x60,0x42,0xac,0x4b,0x58,0x5f,0x8f, 0x69,0x3e,0x6a,0xd2,0x68,0x34,0xb9,0x72,0xf9,0xda,0x37,0x67,0xcf,0x7e,0x76,0x00, 0x40,0x3e,0xde,0x94,0x42,0x21,0x7a,0x7b,0x6e,0x6e,0x7e,0x25,0x0a,0x23,0xd2,0x34, 0xa5,0x56,0xad,0x51,0x2c,0x16,0xd0,0x9b,0x49,0x73,0xb9,0x1c,0x5a,0xf5,0x3f,0xb9, 0xb3,0x8e,0x8d,0xe6,0x06,0xde,0x67,0x2c,0x2e,0x2c,0xad,0x56,0xab,0xa5,0x83,0x5b, 0xca,0x61,0x78,0x64,0xe4,0xf3,0xe9,0xe9,0xc9,0x7a,0x96,0xa5,0x18,0x63,0x68,0x3d, 0x6a,0x91,0xcb,0xe5,0xd9,0x3d,0x3e,0x8e,0xf7,0x9e,0x4e,0xa7,0x4b,0xbb,0xd3,0xa2, 0xf9,0xa8,0xc3,0xf5,0x6b,0x3f,0x3f,0x58,0x5b,0x7b,0x78,0xf8,0xa9,0x72,0xf8,0xbb, 0xbe,0x7a,0x3d,0xf7,0xe5,0xf0,0xf0,0xae,0x57,0x26,0x27,0xc7,0x83,0x5a,0xad,0x82, 0x94,0x02,0xad,0x34,0x42,0x0a,0xac,0xb5,0x5c,0xbd,0x7a,0xcb,0xde,0xbc,0x79,0xe3, 0xbb,0x72,0xb9,0x78,0xf0,0x3f,0xf5,0xf5,0x4f,0xc1,0x76,0xbb,0xdd,0x77,0xc6,0xc6, 0xc6,0x5f,0x2e,0x95,0x4a,0xf5,0x76,0xbb,0xe5,0xe2,0x78,0x63,0x21,0x8e,0xd7,0x6f, 0x85,0x61,0xf0,0xc5,0x56,0x82,0xd5,0x5b,0xa9,0x7c,0x6a,0xef,0x9e,0x4b,0xc0,0x75, 0x60,0x0c,0xa8,0x0d,0x94,0x4b,0xbb,0x06,0xca,0x25,0x3b,0x36,0x3e,0x7a,0x09,0x58, 0xdc,0xea,0xdc,0x5f,0x7b,0x55,0xbf,0xcf,0xfa,0x0d,0xc5,0x7b,0x00,0x00,0x00,0x00, 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; guchar moonphase_5_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1f,0x0f,0x43,0x32,0x2c,0x1c,0x00,0x00,0x03,0xd7,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x94,0xcf,0x6f,0x54,0x55,0x14,0xc7,0x3f,0xf7,0xe7, 0x7b,0x6f,0xde,0x74,0xa6,0x9d,0x5a,0xfa,0xbb,0x35,0x95,0x50,0xf0,0x67,0x8c,0x31, 0x31,0xd1,0xb8,0x32,0xf8,0x63,0xe3,0x4a,0x74,0x41,0x82,0x21,0x06,0xe3,0xb2,0x09, 0x81,0x7f,0x41,0x90,0xa4,0x7b,0x16,0x0d,0x21,0xc5,0x08,0x0b,0x57,0x2e,0xc4,0x1f, 0x24,0x6e,0x89,0x3f,0x08,0x2e,0xd0,0x52,0x84,0x01,0x42,0xa9,0x2d,0x76,0x66,0xea, 0xeb,0xbc,0x99,0x37,0xef,0x5e,0x17,0x33,0x25,0x46,0xa9,0xf1,0xdc,0xed,0xbd,0x9f, 0x7b,0xce,0xf7,0x9c,0xf3,0x15,0xde,0x7b,0x1e,0x15,0x27,0x4e,0x9e,0x12,0x40,0x19, 0x98,0x01,0x86,0x81,0x49,0x20,0x03,0x2e,0x1d,0x3f,0x76,0xb4,0xca,0x0e,0x21,0x76, 0x02,0x1e,0x3e,0x7c,0xe4,0xf5,0xb0,0x10,0x7e,0x38,0x36,0x32,0xf2,0x4c,0xa9,0xbf, 0x3c,0xd4,0x6e,0xb5,0x59,0x5b,0x5b,0x5f,0xab,0x6d,0xd4,0x2f,0x67,0x59,0xfb,0xec, 0xc2,0xc2,0xe9,0x8b,0xff,0x0b,0x38,0x37,0x37,0xd7,0xaf,0xb4,0xfd,0x66,0xdf,0x93, 0xfb,0x9e,0x1f,0x19,0x19,0x92,0x9d,0x4e,0x87,0x76,0xbb,0x8d,0xc7,0x63,0xb5,0x25, 0x49,0x12,0xaa,0xb7,0x6e,0xfb,0x7b,0xf7,0x56,0x2e,0x1b,0xa3,0xde,0x98,0x9f,0x9f, 0xaf,0xed,0x08,0x3c,0x78,0xf0,0xfd,0xfd,0x33,0xbb,0x9f,0xb8,0x30,0x3b,0x3b,0x53, 0xae,0xd5,0x6b,0x08,0x21,0x90,0x42,0x22,0xa4,0x00,0x0f,0xa5,0x72,0x89,0x38,0x8a, 0x59,0x5a,0x5a,0x42,0x20,0xb8,0x79,0xeb,0x4e,0xa3,0xb6,0x51,0x7b,0x67,0x71,0xf1, 0xcc,0x57,0xff,0x02,0xce,0xcd,0xcd,0xf5,0xdb,0x20,0xba,0x31,0x3a,0xb6,0xab,0xd2, 0x4c,0x9b,0x78,0xef,0x31,0xda,0x80,0x00,0x81,0x00,0xc0,0x7b,0x87,0xb1,0x96,0xda, 0x46,0x8d,0xe6,0x56,0xf7,0x4e,0xbd,0xbe,0x99,0x14,0xa2,0x70,0x62,0x3b,0x53,0xbd, 0x4d,0xde,0xdc,0x6c,0x5e,0x78,0x7c,0x78,0xa8,0xb2,0x72,0x7f,0x05,0x21,0xbb,0x99, 0x49,0x29,0x11,0xa2,0x0b,0x13,0x80,0x07,0xbc,0xf7,0x14,0xe3,0x22,0xd5,0x9b,0x55, 0x9c,0x73,0x28,0xa5,0xe2,0xf5,0xa4,0xf9,0x25,0xf0,0x12,0x80,0xf8,0xf8,0xc4,0x27, 0xea,0xd7,0x5f,0x96,0x5e,0xd3,0x41,0xf0,0x45,0x9a,0xd6,0xb5,0xf7,0x1e,0xa5,0x14, 0x4a,0x29,0x8c,0x31,0x68,0xad,0x51,0x4a,0xf5,0xc0,0x1e,0x97,0x7b,0x5a,0x59,0x8b, 0x6b,0x3f,0x5f,0x23,0x77,0x39,0x02,0x41,0x5f,0xb9,0xec,0x47,0x87,0xc7,0xdf,0x5c, 0x58,0x38,0x7d,0x51,0x02,0x33,0x5b,0xe9,0xd6,0x07,0x85,0x82,0xd2,0x42,0x0a,0xa2, 0x28,0x42,0xe9,0x2e,0x10,0xc0,0xe5,0x8e,0x2c,0xcb,0xc8,0xda,0x6d,0xda,0xed,0x0c, 0x21,0x05,0xd6,0x5a,0x6c,0x60,0x7b,0x32,0x78,0x92,0x3f,0x37,0x45,0xd2,0xdc,0x3a, 0x74,0xe2,0xe4,0xa9,0x7e,0x0d,0xbc,0x62,0x03,0xfb,0x74,0xa7,0xd3,0x61,0xdf,0x9e, 0x59,0xea,0x8d,0x06,0xcd,0x66,0x4a,0x96,0x65,0x48,0x25,0xbb,0x4d,0x11,0xa0,0xb4, 0x26,0x0c,0x02,0xbc,0xf7,0x74,0xf2,0x9c,0x20,0x08,0x48,0xd3,0xb4,0x0b,0x75,0x1e, 0xbc,0x7b,0x11,0x78,0x4b,0x03,0x26,0x2e,0xc4,0xc3,0x9d,0x4e,0x06,0x5e,0x74,0xcb, 0xd5,0x12,0xd0,0x48,0xa9,0x90,0x4a,0x22,0x10,0x84,0x61,0x40,0x9e,0x3b,0xf2,0x3c, 0xc7,0x5a,0x4b,0xb9,0x5c,0x62,0xb3,0xb1,0x89,0xef,0x1d,0x21,0xc5,0x2e,0x60,0x54, 0x02,0xab,0x52,0x08,0x37,0x31,0x3e,0x41,0x14,0x47,0x08,0x21,0x70,0xb9,0xc3,0x18, 0x83,0xb1,0x06,0xa3,0x0d,0xd6,0x18,0x9c,0xf3,0x58,0x6b,0x28,0x95,0x4a,0x4c,0x4d, 0x4c,0x52,0x2e,0x95,0x7b,0xda,0x76,0xa7,0x40,0x09,0x09,0x90,0x68,0xa0,0x90,0xb5, 0xdb,0x6b,0xad,0x76,0x6b,0x30,0xaf,0x77,0x50,0x52,0xd2,0xd7,0xd7,0x47,0x96,0x75, 0x50,0x4a,0x76,0xb3,0x94,0x12,0x01,0x18,0x63,0x28,0x97,0xcb,0x04,0x61,0x48,0x9a, 0xb6,0x90,0x52,0xe2,0x5c,0x57,0x12,0xa1,0xf4,0x0a,0x50,0xd5,0xc0,0xb5,0x24,0x49, 0xbf,0xd7,0xc6,0xec,0xfd,0x63,0xfd,0x01,0x85,0x42,0xa1,0xab,0x95,0x06,0xdd,0xeb, 0xb6,0xd6,0x9a,0xe1,0x5d,0xc3,0x08,0x29,0x71,0x2e,0xa7,0x18,0xc7,0xb4,0x5a,0x5d, 0xa0,0xec,0x7d,0x8a,0xe3,0x07,0x60,0x55,0x03,0xcb,0x41,0x60,0x17,0x93,0x46,0xfb, 0xbd,0x62,0x31,0xd6,0x00,0x9d,0x3c,0x7f,0x08,0x52,0x5a,0x63,0x8d,0xa1,0x58,0x2c, 0x82,0x10,0x84,0x41,0x80,0x52,0x9a,0x46,0xa3,0xd1,0x9b,0x4f,0x41,0xb1,0x58,0xce, 0xad,0x35,0x67,0x8f,0x1f,0x3b,0xfa,0xe3,0xc3,0x4d,0x39,0x72,0xe4,0xa3,0xef,0x9e, 0x7d,0xee,0xa9,0x57,0x93,0x66,0x42,0xab,0x57,0x4e,0x18,0x84,0x20,0x40,0x2b,0xcd, 0xc4,0xf8,0x38,0x03,0x03,0x03,0x58,0x13,0x70,0xe3,0xb7,0x65,0xce,0x9d,0xfb,0x14, 0xe7,0x1c,0xda,0x18,0x86,0x1e,0x1b,0xf9,0x7a,0x71,0xf1,0xcc,0x7e,0x00,0xb9,0xbd, 0x29,0x71,0x1c,0xbe,0xbd,0xbc,0x7c,0xfb,0x7e,0x18,0x84,0xe4,0x79,0x4e,0x65,0xa0, 0x42,0xb1,0x18,0xa3,0x7b,0x99,0x46,0x51,0x84,0x56,0xdd,0x21,0xbf,0x7e,0x7d,0x19, 0xe7,0x1c,0x00,0x63,0xa3,0x13,0xb5,0xa1,0xa1,0x81,0x03,0xdb,0x9c,0x87,0xc0,0xf9, 0xf9,0xf9,0xda,0xfa,0xda,0xef,0x87,0xee,0xde,0x59,0x5d,0x9d,0x9e,0x9a,0xc6,0x5a, 0x43,0x14,0x45,0x58,0x63,0x89,0x0b,0x31,0x85,0xa8,0x40,0x9e,0xe7,0x54,0xab,0x55, 0xae,0x5c,0xf9,0x89,0x20,0x08,0x19,0x1b,0x9b,0x7e,0x90,0x65,0x9d,0x77,0xff,0xee, 0x38,0x8f,0xb4,0xaf,0x56,0xab,0xf3,0xf9,0xe8,0xe8,0xe4,0xcb,0xbb,0x77,0x4f,0xdb, 0x4a,0xa5,0x1f,0x29,0x05,0x5a,0x69,0x72,0x97,0x73,0xfe,0xfc,0x05,0x92,0x24,0x75, 0x5a,0xeb,0x6f,0x07,0x07,0xfb,0x0f,0xfc,0xa7,0x7d,0xfd,0xd3,0x60,0xd3,0x34,0x3d, 0x30,0x35,0x35,0xfd,0x42,0x5f,0x5f,0xdf,0x70,0xa3,0x51,0xcf,0xd7,0xd7,0x1f,0xac, 0xa6,0x69,0x7a,0x35,0x08,0xec,0x67,0x3b,0x19,0xac,0xde,0xc9,0xca,0x67,0xf7,0xee, 0xb9,0x04,0x5c,0x05,0xa6,0x80,0x4a,0x65,0x70,0x60,0xb2,0x32,0x38,0x90,0x01,0x97, 0x80,0xbb,0x3b,0xbd,0xfb,0x0b,0x73,0x47,0x96,0xf9,0x6c,0xbc,0xa5,0x58,0x00,0x00, 0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; guchar moonphase_6_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x06,0x00,0x00,0x00,0x8d,0x89,0x1d, 0x0d,0x00,0x00,0x00,0x06,0x62,0x4b,0x47,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0xf9, 0x43,0xbb,0x7f,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0d,0xd7,0x00, 0x00,0x0d,0xd7,0x01,0x42,0x28,0x9b,0x78,0x00,0x00,0x00,0x07,0x74,0x49,0x4d,0x45, 0x07,0xd7,0x08,0x0e,0x0a,0x1f,0x04,0xd4,0xe0,0xf5,0x94,0x00,0x00,0x03,0xae,0x49, 0x44,0x41,0x54,0x38,0xcb,0x8d,0x95,0xcf,0x6b,0x15,0x57,0x14,0xc7,0x3f,0xe7,0xdc, 0x3b,0xf3,0x7e,0xe5,0xd5,0xe4,0xe9,0x4b,0xf2,0x34,0xc6,0xa2,0x45,0x93,0xfe,0xb0, 0x58,0x69,0xa1,0x50,0xba,0x2a,0x0a,0x85,0xe2,0xa6,0xb4,0x9b,0x80,0x22,0xc5,0xd2, 0x65,0x40,0x74,0xd1,0xbf,0x40,0x11,0xb2,0x6f,0x51,0xd2,0x12,0x29,0x74,0x5f,0x62, 0x45,0x6d,0xbb,0x2b,0x55,0xda,0xd2,0x4d,0xa9,0x44,0x31,0x36,0xe6,0xe5,0xa9,0x8d, 0xd1,0xf4,0xfd,0x9a,0x1f,0xf7,0x76,0x31,0xe6,0x19,0xa9,0x01,0xef,0x70,0x61,0x66, 0x98,0xf3,0x99,0xef,0x3d,0xe7,0xdc,0xef,0x15,0xef,0x3d,0xcf,0x1a,0xa7,0x4e,0x9f, 0x11,0x60,0x13,0xb0,0x13,0x18,0x02,0xb6,0x03,0x31,0x70,0xe5,0xe4,0x89,0xe3,0xf3, 0x6c,0x30,0x64,0x23,0xe0,0xd1,0xa3,0xc7,0x0e,0xe6,0x8b,0xf9,0x4f,0xb7,0x0e,0x0f, 0xbf,0xf6,0x42,0xff,0xa6,0xea,0xf5,0xbf,0xae,0x07,0x22,0xb2,0xd4,0x69,0x47,0xbf, 0xa4,0x69,0x32,0x7d,0xee,0xdc,0x17,0xdf,0x3f,0x17,0x70,0x72,0x72,0xb2,0xdf,0xd8, 0xf0,0xd2,0xf8,0xcb,0xe3,0xfb,0x86,0x87,0xab,0x9a,0x24,0x09,0x51,0x14,0x71,0xf6, 0xcb,0xb3,0xa4,0x2e,0x45,0x45,0xa9,0x6c,0xde,0xe2,0x07,0xfa,0x07,0xae,0xe6,0x72, 0xc1,0xc1,0xa9,0xa9,0xa9,0x95,0xf5,0xf1,0xba,0xfe,0x61,0x62,0xe2,0xc8,0x81,0xf2, 0xa6,0xca,0xad,0x7d,0x6f,0xec,0xdd,0xdf,0xe9,0x36,0x75,0xfe,0xf6,0x3c,0xf5,0x7a, 0x9d,0xe5,0x07,0xcb,0xa4,0x69,0xca,0xda,0xcf,0xef,0x36,0x96,0xe4,0xe6,0xcd,0xb9, 0xb7,0x56,0x1e,0xfe,0x7b,0x6b,0x62,0xe2,0xc8,0x81,0x67,0x2a,0x9c,0x9c,0x9c,0xec, 0x0f,0x73,0x85,0x1b,0xb5,0xad,0x83,0x95,0x76,0xa7,0x8d,0xf7,0x9e,0xc0,0x06,0x20, 0x20,0x08,0xb3,0xdf,0xcd,0x92,0xba,0x14,0x41,0xb2,0x40,0x15,0xf0,0x30,0xb2,0x7d, 0xb4,0xb9,0xb9,0x32,0x30,0xb2,0xa6,0xd4,0xae,0x91,0x57,0x57,0xdb,0xdf,0xbe,0x38, 0x54,0xad,0xd4,0x97,0xea,0x88,0x0a,0x2a,0x8a,0xaa,0x22,0x92,0x01,0x9c,0x4b,0xf1, 0xce,0xe3,0x70,0x58,0x63,0x71,0xce,0xe1,0x9d,0x67,0xf1,0xce,0x42,0xc9,0xa5,0x7e, 0x16,0x78,0x1b,0xc0,0x14,0x8a,0x7d,0xe6,0xdc,0xd9,0xe9,0x03,0x26,0x0c,0x3f,0x6f, 0x34,0xee,0xe8,0xea,0xea,0x2a,0xad,0x66,0x8b,0x56,0xab,0x45,0xb7,0xdb,0x25,0x8a, 0x22,0xe2,0x38,0x66,0x71,0xb1,0x8e,0x77,0x1e,0x3c,0xa4,0x69,0x9a,0x4d,0x97,0x12, 0x27,0x31,0x5e,0xd8,0x76,0xf9,0xd2,0x8f,0x3f,0x1f,0x3a,0xf4,0xc1,0x0d,0x05,0x76, 0xb6,0x3a,0xad,0x4f,0x8a,0x45,0x63,0x45,0x85,0x42,0xa1,0x80,0xb1,0x06,0x63,0x4c, 0xa6,0x2c,0x75,0xc4,0x71,0x0c,0xde,0xf7,0x72,0x88,0x80,0x88,0x64,0x13,0xa1,0xb9, 0xba,0x2a,0xcd,0x76,0xeb,0xf0,0xa9,0xd3,0x67,0xfa,0x2d,0xf0,0x4e,0x98,0x0b,0x5f, 0x4d,0x92,0x84,0xf1,0xdd,0x7b,0x78,0xf8,0xe8,0x11,0xed,0x76,0x87,0x38,0x8e,0x51, 0xa3,0xa8,0x28,0x22,0x20,0xa2,0xa8,0xc9,0x14,0x0a,0x82,0xe7,0x49,0x77,0x64,0xcb, 0x77,0x6f,0x02,0xef,0x5b,0x20,0x28,0x15,0x4b,0x43,0x49,0x12,0x83,0x17,0x8c,0x31, 0x18,0xab,0x80,0x45,0xd5,0xa0,0x46,0x11,0x04,0x51,0xc1,0xa7,0x4f,0x14,0x1a,0x35, 0x19,0xe8,0xf1,0x25,0xe2,0x07,0x81,0x9a,0x05,0x1a,0x2a,0xe2,0x6a,0x5b,0x47,0x28, 0x94,0x0a,0x34,0xdb,0x4d,0x5c,0xea,0x08,0x82,0x00,0x35,0x26,0x2b,0x8e,0x64,0x15, 0xcd,0x96,0x49,0xef,0x7d,0x96,0xcb,0x04,0xbc,0xac,0x55,0xbf,0x69,0x81,0x62,0x1c, 0x45,0xf7,0xba,0x51,0x77,0x73,0xfa,0x30,0xc1,0xa8,0x52,0x2e,0x97,0x89,0xe3,0x04, 0x63,0x34,0x53,0xb9,0xae,0xda,0x6b,0xf7,0x22,0x82,0xaa,0xe2,0x5c,0x96,0x12,0xb5, 0x76,0x09,0x98,0x57,0xe0,0xcf,0x66,0xb3,0x73,0xcd,0x06,0x01,0xcb,0xff,0x3c,0xa0, 0x1b,0xc5,0x18,0x35,0x58,0x6b,0x09,0x6c,0x40,0x18,0x04,0xe4,0x73,0x39,0x82,0x20, 0xc0,0x18,0x93,0x81,0x44,0x7b,0x70,0x35,0x8a,0xb1,0x16,0xf1,0x7a,0x0d,0x68,0x28, 0x30,0x97,0xcb,0x85,0x33,0xcd,0x47,0x51,0xd2,0xd7,0x57,0x42,0x55,0x48,0xd2,0x14, 0x63,0x32,0xa8,0x0d,0x02,0xc2,0x30,0xcc,0x82,0x55,0x7b,0xd0,0x35,0xc5,0x82,0x50, 0x2c,0x96,0x5d,0x2e,0x17,0x7e,0x7d,0xf2,0xc4,0xf1,0x5f,0x7b,0x3b,0xe5,0xd8,0xb1, 0xcf,0x7e,0xda,0xfb,0xfa,0x2b,0xef,0x36,0xdb,0x4d,0xba,0x9d,0x2e,0xaa,0x4a,0x3e, 0x97,0x07,0x01,0x6b,0x2c,0x17,0x66,0x2f,0xe0,0xbd,0x47,0x44,0xf0,0xde,0xe3,0x9c, 0xc3,0x39,0x87,0x31,0x86,0x6a,0xb5,0x76,0xf9,0xfc,0xf9,0xaf,0xde,0x7b,0x6a,0x2f, 0x97,0x4a,0xf9,0x43,0x73,0x73,0xb7,0x97,0xf2,0xb9,0x3c,0x69,0x9a,0x52,0x19,0xa8, 0xd0,0xd7,0x57,0xc2,0x3e,0x56,0x9a,0xf5,0x1c,0x4f,0xb5,0x0a,0x40,0xad,0x36,0xb2, 0x32,0x38,0x58,0xf9,0xf0,0x7f,0xe6,0x30,0x35,0x35,0xb5,0x72,0xff,0xde,0xdd,0xc3, 0x0b,0x7f,0x37,0x1a,0x3b,0x46,0x77,0x10,0x86,0x01,0x85,0x42,0x81,0x30,0x08,0x29, 0x15,0x4b,0xa8,0x2a,0xfe,0x31,0xc8,0x39,0x47,0x18,0x86,0xd4,0x6a,0xdb,0x97,0xd3, 0xd4,0x7d,0xbc,0xde,0x71,0x9e,0x72,0x9b,0x99,0x99,0xe9,0x8b,0x49,0xdc,0x1e,0xbb, 0x76,0xf5,0xb7,0x1f,0xea,0x8b,0x0f,0xa2,0x30,0x28,0xb0,0x6b,0xd7,0x4b,0x8c,0x8c, 0x6c,0xeb,0x7d,0x63,0x8c,0xa1,0x52,0xa9,0xba,0x2d,0x5b,0x86,0x2e,0x57,0xab,0x03, 0xbb,0x66,0x66,0xa6,0x2f,0x3e,0xb7,0xc1,0x76,0x3a,0x9d,0x8f,0x46,0x47,0x77,0xec, 0x2f,0x97,0xcb,0x43,0x73,0x73,0xd7,0x03,0xe7,0x58,0x88,0xa2,0xe8,0xf7,0x42,0x21, 0xff,0xcd,0x46,0x06,0x6b,0x37,0xb2,0xf2,0x3d,0x63,0xbb,0xaf,0x00,0x7f,0x00,0xa3, 0x40,0x65,0x6c,0x7c,0xac,0x77,0x04,0x00,0x0b,0x1b,0xc5,0xfd,0x07,0xcb,0xc0,0x99, 0xbc,0x9d,0x68,0x46,0x05,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60, 0x82 }; guchar moonphase_7_data[] = { 0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, 0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x14,0x08,0x03,0x00,0x00,0x00,0xba,0x57,0xed, 0x3f,0x00,0x00,0x02,0x04,0x50,0x4c,0x54,0x45,0x00,0x00,0x00,0x88,0x89,0x8b,0x88, 0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x70,0x70,0x70,0x88,0x89,0x8b,0x88,0x89, 0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b, 0x5b,0x5b,0x5f,0x61,0x61,0x65,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88, 0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x88,0x89,0x8b,0x59,0x59, 0x5d,0x5a,0x5a,0x5f,0x5a,0x5a,0x5f,0x5a,0x5a,0x5f,0x57,0x59,0x5c,0x65,0x65,0x6a, 0x57,0x59,0x5b,0x69,0x6b,0x6d,0x5c,0x5c,0x5f,0x5d,0x5d,0x60,0x63,0x63,0x67,0x69, 0x69,0x6c,0x65,0x65,0x68,0x6d,0x6d,0x6f,0x5c,0x5c,0x5f,0x73,0x74,0x76,0x60,0x60, 0x65,0x77,0x77,0x7c,0x5b,0x5c,0x5f,0x5d,0x60,0x61,0x65,0x65,0x67,0x57,0x57,0x5a, 0x76,0x77,0x79,0x83,0x83,0x85,0x6f,0x70,0x75,0x74,0x75,0x79,0x63,0x63,0x66,0x5c, 0x5c,0x60,0x6a,0x6b,0x6d,0x76,0x77,0x79,0x61,0x61,0x64,0x68,0x6a,0x6c,0x6b,0x6b, 0x6e,0x6d,0x6e,0x71,0x7d,0x7f,0x82,0x57,0x58,0x59,0x59,0x59,0x5b,0x67,0x69,0x6a, 0x82,0x84,0x85,0x86,0x88,0x88,0x82,0x82,0x89,0x65,0x68,0x6c,0x75,0x76,0x7b,0x4e, 0x4f,0x52,0x5a,0x5a,0x5d,0x9c,0x9e,0x9f,0x4a,0x4b,0x4b,0x86,0x87,0x87,0x00,0x00, 0x00,0x3a,0x3a,0x3a,0x3a,0x3b,0x3a,0x3b,0x3b,0x3b,0x3b,0x3c,0x3b,0x3c,0x3c,0x3c, 0x3c,0x3d,0x3c,0x3d,0x3d,0x3c,0x3d,0x3d,0x3d,0x3d,0x3e,0x3d,0x3e,0x3e,0x3d,0x3e, 0x3e,0x3e,0x3e,0x3f,0x3e,0x3f,0x3f,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40,0x40,0x41, 0x40,0x41,0x41,0x41,0x41,0x42,0x41,0x42,0x42,0x42,0x42,0x43,0x42,0x42,0x43,0x43, 0x43,0x43,0x43,0x44,0x44,0x44,0x44,0x45,0x44,0x45,0x45,0x45,0x45,0x46,0x44,0x45, 0x46,0x45,0x46,0x46,0x46,0x47,0x46,0x46,0x47,0x47,0x47,0x47,0x48,0x47,0x48,0x49, 0x48,0x49,0x4a,0x49,0x49,0x4b,0x49,0x4a,0x4a,0x4a,0x4f,0x50,0x4f,0x53,0x55,0x53, 0x57,0x57,0x57,0x58,0x58,0x57,0x5c,0x5f,0x5c,0x5d,0x60,0x5d,0x5e,0x5e,0x5e,0x5e, 0x5f,0x5e,0x5e,0x62,0x5e,0x5f,0x5f,0x5f,0x60,0x60,0x60,0x61,0x62,0x62,0x62,0x62, 0x62,0x65,0x65,0x65,0x65,0x68,0x65,0x67,0x6a,0x67,0x68,0x69,0x68,0x6b,0x6c,0x6b, 0x6b,0x6e,0x6b,0x6e,0x70,0x6e,0x6f,0x72,0x6f,0x75,0x75,0x74,0x75,0x75,0x75,0x75, 0x76,0x75,0x76,0x77,0x76,0x76,0x79,0x76,0x77,0x7a,0x77,0x78,0x7a,0x77,0x78,0x7a, 0x78,0x7a,0x7c,0x79,0x7b,0x7d,0x7a,0x7c,0x7e,0x7b,0x7c,0x7e,0x7c,0x7c,0x7f,0x7c, 0x7e,0x80,0x7e,0x7f,0x80,0x7d,0x7f,0x81,0x7f,0x80,0x83,0x7f,0x80,0x84,0x81,0x83, 0x85,0x83,0x83,0x87,0x85,0x86,0x89,0x86,0x87,0x87,0x86,0x87,0x88,0x85,0x88,0x8b, 0x88,0x8b,0x8b,0x8b,0x8b,0x8c,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8e,0x8d, 0x8f,0x91,0x8f,0x90,0x90,0x90,0x90,0x92,0x8f,0x90,0x92,0x90,0x93,0x94,0x93,0x94, 0x97,0x94,0x9a,0x9b,0x99,0x9c,0x9c,0x9e,0x9d,0x9e,0x9d,0xa1,0xa1,0xa1,0xa1,0xa2, 0xa1,0xa2,0xa2,0xa2,0xa4,0xa6,0xa4,0xa6,0xa6,0xa6,0xb2,0xb4,0xb2,0x75,0x64,0x52, 0xbf,0x00,0x00,0x00,0x47,0x74,0x52,0x4e,0x53,0x00,0x01,0x03,0x05,0x0c,0x10,0x10, 0x19,0x1f,0x25,0x30,0x32,0x37,0x46,0x47,0x49,0x4f,0x59,0x5a,0x61,0x66,0x68,0x73, 0x9d,0x9f,0xa3,0xa5,0xa6,0xa6,0xab,0xae,0xba,0xba,0xba,0xbe,0xc1,0xc6,0xc7,0xcc, 0xce,0xd0,0xd7,0xd7,0xd7,0xdb,0xdb,0xdb,0xe7,0xe8,0xeb,0xec,0xec,0xed,0xee,0xee, 0xee,0xf0,0xf0,0xf1,0xf1,0xf3,0xf4,0xf4,0xf9,0xfb,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe, 0x8e,0x82,0xc1,0x49,0x00,0x00,0x00,0x01,0x62,0x4b,0x47,0x44,0x47,0x60,0xbd,0xc9, 0x7b,0x00,0x00,0x01,0x3f,0x49,0x44,0x41,0x54,0x18,0x19,0x05,0xc1,0xc1,0x6a,0x13, 0x51,0x14,0x80,0xe1,0xff,0x9c,0x7b,0x6e,0x86,0xa9,0x99,0x24,0x45,0x17,0x16,0x5a, 0xb5,0xb8,0x12,0x04,0xf7,0x82,0xb8,0xf4,0x31,0xba,0x12,0x71,0xe7,0x13,0x89,0xcf, 0xe1,0x1b,0x74,0xd7,0x85,0x0a,0xb6,0x46,0xda,0x8a,0x68,0xd1,0xb6,0xc9,0x98,0x99, 0x24,0x77,0x66,0xee,0xf1,0xfb,0x04,0x00,0x24,0x46,0x8b,0xde,0x6c,0x00,0xc0,0x00, 0xa0,0x9a,0xcd,0x66,0xbe,0xb8,0xad,0x6b,0x00,0x04,0x20,0x1e,0x3e,0x78,0xe3,0x39, 0x8b,0x7f,0xf8,0x7e,0xd1,0x01,0x02,0x54,0x4f,0xdf,0x6d,0xd3,0x00,0x1a,0x92,0xbe, 0xff,0xfc,0x0f,0x04,0xe2,0xb3,0xb7,0xeb,0x75,0x0b,0xb8,0xa0,0xfe,0xf1,0xb8,0xc3, 0x60,0xff,0xe8,0x97,0x2c,0x06,0x05,0x72,0xcc,0xfd,0xf3,0xab,0x33,0x4c,0xc7,0x0f, 0xe7,0x3e,0xfc,0x28,0xca,0x42,0xe8,0x9a,0x66,0x90,0x47,0x57,0xb5,0x15,0xd3,0x97, 0xab,0xd1,0x22,0x75,0x2b,0x40,0xdd,0xc9,0x55,0xb5,0xd1,0x9d,0x2a,0x3f,0xae,0x5c, 0x44,0x35,0x8c,0x82,0xa9,0x6a,0xda,0x1d,0xab,0x8c,0x07,0x0f,0x5b,0x15,0x11,0x73, 0xa4,0x34,0xf5,0x89,0x59,0x3f,0xdc,0xdf,0x69,0x44,0x14,0x3c,0x68,0x34,0xd9,0x64, 0x71,0x93,0x4d,0x5a,0x5a,0xa9,0xa2,0x10,0x82,0x8a,0x19,0x37,0xc9,0xb6,0x37,0xf1, 0xba,0x0c,0x01,0xd1,0x08,0x01,0x8b,0x71,0xd9,0x07,0xa7,0x7e,0x22,0xfc,0x55,0x95, 0x91,0x9a,0x88,0xe7,0xdf,0xe7,0x2b,0xed,0xeb,0xcb,0xbd,0xe9,0xbd,0x3b,0x2a,0x10, 0x63,0xc8,0x7d,0x35,0xaf,0x09,0xb0,0xfa,0xf6,0xa2,0x2d,0x6e,0x5d,0x63,0x10,0x4f, 0x7c,0x39,0xcb,0x04,0xc8,0xed,0xe9,0xab,0xbb,0x8b,0xb5,0x8e,0xe8,0x87,0xc9,0xc9, 0xe9,0x1a,0x04,0x20,0x1e,0x1c,0xbc,0xfe,0xf4,0x07,0x8a,0xaf,0xf3,0x9f,0x1d,0x20, 0x00,0x30,0x29,0x77,0xa7,0xa9,0x5d,0xb6,0x35,0x00,0x02,0x00,0xc1,0x62,0x88,0xde, 0xa4,0x0c,0xc0,0x7f,0xf0,0x4e,0x85,0x6a,0xdf,0x74,0x6d,0xb6,0x00,0x00,0x00,0x00, 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; osmo-0.4.2/src/calendar_calc.h0000664000175000017500000000202613066543472013122 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * (C) 2007 Piotr Maka * * 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 _CALENDAR_CALC_H #define _CALENDAR_CALC_H #include "gui.h" void calendar_create_calc_window (GUI *appGUI); #endif /* _CALENDAR_CALC_H */ osmo-0.4.2/src/contacts_import_csv.h0000664000175000017500000000221113066543472014446 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_IMPORT_CSV_H #define _CONTACTS_IMPORT_CSV_H #include "gui.h" gchar * csv_get_field (const gchar *line_buffer, gint field); gchar * csv_get_line (gint line, GUI *appGUI); guint get_number_of_records (GUI *appGUI); #endif /* _CONTACTS_IMPORT_CSV_H */ osmo-0.4.2/src/calendar_timeline.c0000664000175000017500000003041313066543472014022 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_timeline.h" #include "i18n.h" #include "calendar.h" #include "options_prefs.h" #include "stock_icons.h" /*------------------------------------------------------------------------------*/ void insert_timeline_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_widget_destroy (appGUI->cal->insert_timeline_window); } /*------------------------------------------------------------------------------*/ void button_insert_timeline_window_close_cb (GtkWidget *widget, gpointer data) { insert_timeline_window_close_cb (widget, NULL, data); } /*------------------------------------------------------------------------------*/ gint insert_timeline_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { insert_timeline_window_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void insert_timeline_action_cb (GtkButton *button, gpointer user_data) { gint ts, te, m; GtkTextBuffer *text_buffer; GtkTextIter titer; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)user_data; text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(appGUI->cal->calendar_note_textview)); gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(text_buffer), &titer, -1); ts = config.timeline_start; te = config.timeline_end + config.timeline_step; do { m = ts / 60; g_snprintf(tmpbuf, BUFFER_SIZE, "%02d:%02d - \n", m, ts-m*60); gtk_text_buffer_insert(text_buffer, &titer, tmpbuf, -1); ts += config.timeline_step; } while (ts < te); insert_timeline_window_close_cb (NULL, NULL, appGUI); enable_disable_note_buttons(appGUI); } /*------------------------------------------------------------------------------*/ void fill_timeline(GUI *appGUI) { gint i; i = config.timeline_start / 60; gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->cal->tl_start_h_spinbutton), i); gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->cal->tl_start_m_spinbutton), config.timeline_start-i*60); i = config.timeline_end / 60; gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->cal->tl_end_h_spinbutton), i); gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->cal->tl_end_m_spinbutton), config.timeline_end-i*60); gtk_spin_button_set_value (GTK_SPIN_BUTTON(appGUI->cal->tl_step_spinbutton), (gdouble)config.timeline_step); } /*------------------------------------------------------------------------------*/ void timeline_changed_cb (GtkSpinButton *spinbutton, gpointer user_data) { gint i, j; GUI *appGUI = (GUI *)user_data; i = (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(appGUI->cal->tl_start_h_spinbutton)) * 60 + (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(appGUI->cal->tl_start_m_spinbutton)); j = (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(appGUI->cal->tl_end_h_spinbutton)) * 60 + (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(appGUI->cal->tl_end_m_spinbutton)); if (i < j) { config.timeline_start = i; config.timeline_end = j; config.timeline_step = (gint) gtk_spin_button_get_value (GTK_SPIN_BUTTON(appGUI->cal->tl_step_spinbutton)); } else { fill_timeline(appGUI); } } /*------------------------------------------------------------------------------*/ void calendar_create_insert_timeline_window (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *label; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *timeline_table; GtkWidget *frame; GtkAdjustment *tl_start_h_spinbutton_adj; GtkAdjustment *tl_start_m_spinbutton_adj; GtkAdjustment *tl_end_h_spinbutton_adj; GtkAdjustment *tl_end_m_spinbutton_adj; GtkAdjustment *tl_step_spinbutton_adj; gint win_xpos, win_ypos; gchar tmpbuf[BUFFER_SIZE]; appGUI->cal->insert_timeline_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->insert_timeline_window), _("Insert timeline")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->insert_timeline_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->insert_timeline_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->insert_timeline_window), "delete_event", G_CALLBACK(insert_timeline_window_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->insert_timeline_window), "key_press_event", G_CALLBACK (insert_timeline_key_press_cb), appGUI); gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->insert_timeline_window), GTK_WINDOW(appGUI->main_window)); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->insert_timeline_window), 8); gtk_window_set_resizable (GTK_WINDOW (appGUI->cal->insert_timeline_window), FALSE); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->insert_timeline_window), vbox1); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Timeline")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_margin_top (label, 4); gtk_widget_set_margin_bottom(label, 4); timeline_table = gtk_grid_new (); gtk_widget_show (timeline_table); gtk_container_set_border_width (GTK_CONTAINER (timeline_table), 4); gtk_grid_set_column_spacing (GTK_GRID (timeline_table), 8); gtk_grid_set_row_spacing (GTK_GRID (timeline_table), 4); gtk_widget_set_margin_left(timeline_table, 12); gtk_widget_set_margin_bottom(timeline_table, 12); gtk_container_add (GTK_CONTAINER (frame), timeline_table); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("From (hour)")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (timeline_table), label, 0, 0, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); tl_start_h_spinbutton_adj = gtk_adjustment_new (1, 0, 24, 1, 10, 0); appGUI->cal->tl_start_h_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (tl_start_h_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->tl_start_h_spinbutton); gtk_grid_attach (GTK_GRID (timeline_table), appGUI->cal->tl_start_h_spinbutton, 1, 0, 1, 1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->tl_start_h_spinbutton), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Step (minutes)")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (timeline_table), label, 0, 2, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); tl_step_spinbutton_adj = gtk_adjustment_new (1, 1, 120, 1, 10, 0); appGUI->cal->tl_step_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (tl_step_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->tl_step_spinbutton); gtk_grid_attach (GTK_GRID (timeline_table), appGUI->cal->tl_step_spinbutton, 1, 2, 1, 1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->tl_step_spinbutton), TRUE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("To (hour)")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (timeline_table), label, 0, 1, 1, 1); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); tl_end_h_spinbutton_adj = gtk_adjustment_new (1, 1, 23, 1, 10, 0); appGUI->cal->tl_end_h_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (tl_end_h_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->tl_end_h_spinbutton); gtk_grid_attach (GTK_GRID (timeline_table), appGUI->cal->tl_end_h_spinbutton, 1, 1, 1, 1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->tl_end_h_spinbutton), TRUE); label = gtk_label_new (":"); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (timeline_table), label, 2, 0, 1, 1); label = gtk_label_new (":"); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (timeline_table), label, 2, 1, 1, 1); tl_start_m_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->tl_start_m_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (tl_start_m_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->tl_start_m_spinbutton); gtk_grid_attach (GTK_GRID (timeline_table), appGUI->cal->tl_start_m_spinbutton, 3, 0, 1, 1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->tl_start_m_spinbutton), TRUE); tl_end_m_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 0); appGUI->cal->tl_end_m_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (tl_end_m_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->tl_end_m_spinbutton); gtk_grid_attach (GTK_GRID (timeline_table), appGUI->cal->tl_end_m_spinbutton, 3, 1, 1, 1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (appGUI->cal->tl_end_m_spinbutton), TRUE); fill_timeline(appGUI); g_signal_connect (G_OBJECT (appGUI->cal->tl_start_h_spinbutton), "value-changed", G_CALLBACK (timeline_changed_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->tl_step_spinbutton), "value-changed", G_CALLBACK (timeline_changed_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->tl_end_h_spinbutton), "value-changed", G_CALLBACK (timeline_changed_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->tl_start_m_spinbutton), "value-changed", G_CALLBACK (timeline_changed_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->tl_end_m_spinbutton), "value-changed", G_CALLBACK (timeline_changed_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); appGUI->cal->cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (appGUI->cal->cancel_button); g_signal_connect(appGUI->cal->cancel_button, "clicked", G_CALLBACK(button_insert_timeline_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), appGUI->cal->cancel_button); appGUI->cal->insert_timeline_button = gtk_button_new_with_mnemonic (_("_Paste")); gtk_widget_show (appGUI->cal->insert_timeline_button); g_signal_connect(appGUI->cal->insert_timeline_button, "clicked", G_CALLBACK(insert_timeline_action_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), appGUI->cal->insert_timeline_button); gtk_window_get_position (GTK_WINDOW(appGUI->cal->insert_timeline_window), &win_xpos, &win_ypos); gtk_window_move (GTK_WINDOW (appGUI->cal->insert_timeline_window), win_xpos-5, win_ypos-40); gtk_widget_show(appGUI->cal->insert_timeline_window); } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_export.h0000664000175000017500000000243313066543472013610 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_EXPORT_H #define _CONTACTS_EXPORT_H #include "gui.h" enum { EXPORT_TO_CSV = 0, EXPORT_TO_XHTML, EXPORT_TO_VCF }; enum { SELECT_ALL = 0, SELECT_NONE, SELECT_INVERT }; typedef void(export_writer) (void *user_data, gchar const *format, ...); gint export_contacts(gint type, gboolean header, GUI *appGUI, export_writer *writer, void *writer_user_data); void contacts_create_export_window(GUI *appGUI); #endif /* _CONTACTS_EXPORT_H */ osmo-0.4.2/src/tasks_preferences_gui.h0000664000175000017500000000222513066543472014742 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _TASKS_PREFERENCES_GUI_H #define _TASKS_PREFERENCES_GUI_H #include "gui.h" enum { TC_COLUMN_NAME = 0, TC_COLUMN_CALENDAR, TC_COLUMN_TASKS }; GtkWidget * tsk_create_preferences_page (GtkWidget *notebook, GUI *appGUI); #endif /* _TASKS_PREFERENCES_GUI_H */ osmo-0.4.2/src/utils_date_time.h0000664000175000017500000000332313066543472013543 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _UTILS_DATE_TIME_H #define _UTILS_DATE_TIME_H #include "utils_date.h" #include "utils_time.h" gint utl_date_time_compare (GDate *date1, TIME *time1, GDate *date2, TIME *time2); gint utl_date_time_compare_js (guint32 julian1, gint seconds1, guint32 julian2, gint seconds2); gboolean utl_date_time_in_the_past_js (guint32 julian, gint seconds); gchar* utl_date_time_print (GDate *d, gint date_format, TIME *t, gint time_format, gint override_locale); gchar* utl_date_time_print_js (guint32 julian, gint date_format, gint seconds, gint time_format, gint override_locale); gchar* utl_date_time_print_default (guint32 julian, gint seconds, gboolean with_sec); gboolean utl_date_time_order (GDate *date1, TIME *time1, GDate *date2, TIME *time2); #endif /* _UTILS_DATE_TIME_H */ osmo-0.4.2/src/calendar.h0000664000175000017500000000573713066543472012154 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_H #define _CALENDAR_H #include "gui.h" #include "calendar_utils.h" void gui_create_calendar (GtkWidget *notebook, GUI *appGUI); void gui_set_calendar_defaults (GtkWidget *calendar); void cal_jump_to_date (GDate *cdate, GUI *appGUI); void calendar_set_today (GUI *appGUI); void calendar_update_date (guint day, guint month, guint year, GUI *appGUI); void calendar_update_note (guint uday, guint umonth, guint uyear, gchar *color, GUI *appGUI); void calendar_clear_text_cb (GtkWidget *widget, gpointer data); void enable_disable_note_buttons (GUI *appGUI); gchar * get_marker_symbol (gint idx); gchar * calendar_get_note_text (GUI *appGUI); void calendar_create_color_selector_window (gboolean window_pos, GUI *appGUI); void calendar_create_popup_menu (GtkWidget *menu, GUI *appGUI); void cal_set_day_info (GUI *appGUI); void mark_events (GtkWidget *calendar, guint month, guint year, GUI *appGUI); void cal_refresh_marks (GUI *appGUI); void update_clock (GUI *appGUI); void update_aux_calendars (GUI *appGUI); void calendar_mark_events (GtkWidget *calendar, guint32 julian_day, guint i, GUI *appGUI); void calendar_store_note (GUI *appGUI); void calendar_btn_prev_day (GUI *appGUI); void calendar_btn_next_day (GUI *appGUI); void calendar_btn_prev_week (GUI *appGUI); void calendar_btn_next_week (GUI *appGUI); void calendar_btn_prev_month (GUI *appGUI); void calendar_btn_next_month (GUI *appGUI); void calendar_btn_prev_year (GUI *appGUI); void calendar_btn_next_year (GUI *appGUI); #endif /* _CALENDAR_H */ osmo-0.4.2/src/contacts_import.h0000664000175000017500000000233213066543472013577 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_IMPORT_H #define _CONTACTS_IMPORT_H #include "gui.h" enum { IMPORT_TYPE_FILE = 0, IMPORT_TYPE_SYNCML }; enum { SYNCML_BLUETOOTH = 0, SYNCML_USB }; void import_contacts_show_dialog (GUI *appGUI); gboolean import_contacts_from_csv_file (GUI *appGUI); gboolean add_csv_records (gchar *filename, GUI *appGUI); #endif /* _CONTACTS_IMPORT_H */ osmo-0.4.2/src/tasks.h0000664000175000017500000000634113066543472011520 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2014 Tomasz Maka * (C) 2007-2014 Piotr Mąka * * 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 _TASKS_H #define _TASKS_H #include "gui.h" #define TASKS_NAME "osmo_tasks" #define TASKS_ENTRIES_NAME "tasks_entries" #define TASKS_CATEGORY_ENTRIES_NAME "category_entries" #define TASKS_ENTRIES_FILENAME "tasks_entries.xml" #define MAX_SUMMARY_SIZE 512 /* max summary string size */ #define MAX_DATE_SIZE 12 /* max data string size */ #define WHOLE_WEEK 127 typedef struct { guint id; gboolean done; guint32 due_date_julian; gint due_time; guint32 start_date_julian; guint32 done_date_julian; gchar *priority; gchar *category; gchar *summary; gchar *desc; gboolean active; gboolean offline_ignore; gboolean sound_enable; gboolean ndialog_enable; gboolean repeat; gint repeat_day; gint repeat_month_interval; gint repeat_day_interval; gint repeat_start_day; gint repeat_time_start; gint repeat_time_end; gint repeat_time_interval; gint repeat_counter; gchar *alarm_command; gint warning_days; gint warning_time; gint postpone_time; } TASK_ITEM; enum { LOW_PRIORITY = 0, MEDIUM_PRIORITY, HIGH_PRIORITY }; void gui_create_tasks (GUI *appGUI); gint get_priority_index (gchar *text); gchar* get_priority_text (gint index); gint task_calculate_new_date (TASK_ITEM *item, GUI *appGUI, guint32 *new_date, gint *new_time); void tasks_done (GtkTreeIter *iter, TASK_ITEM *item, GUI *appGUI); void tasks_repeat_done (GtkTreeIter *iter, TASK_ITEM *item, GUI *appGUI); void tasks_select_first_position_in_list (GUI *appGUI); //void apply_task_attributes (GUI *appGUI); void set_categories (GUI *appGUI); void refresh_tasks (GUI *appGUI); void store_task_columns_info (GUI *appGUI); void set_tasks_columns_width (GUI *appGUI); void add_item_to_list (TASK_ITEM *item, GUI *appGUI); gchar* get_date_color (guint32 julian_day, gint time, gboolean done, GUI *appGUI); void tasks_selection_activate (gboolean active, GUI *appGUI); guint get_number_of_visible_tasks_with_date (GUI *appGUI); #endif /* _TASKS_H */ osmo-0.4.2/src/tasks.c0000664000175000017500000023017513161167413011510 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2014 Tomasz Mąka * (C) 2007-2014 Piotr Mąka * * 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 "about.h" #include "backup.h" #include "calendar.h" #include "calendar_utils.h" #include "calendar_widget.h" #include "i18n.h" #include "tasks_preferences_gui.h" #include "options_prefs.h" #include "preferences_gui.h" #include "stock_icons.h" #include "tasks.h" #include "tasks_items.h" #include "tasks_export.h" #include "tasks_print.h" #include "tasks_utils.h" #include "utils.h" #include "utils_gui.h" #include "check_events.h" #ifdef TASKS_ENABLED /*============================================================================*/ static void show_preferences_window_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; appGUI->opt->window = opt_create_preferences_window(appGUI); gtk_widget_show(appGUI->opt->window); gint page = gtk_notebook_page_num(GTK_NOTEBOOK(appGUI->opt->notebook), appGUI->opt->tasks); gtk_notebook_set_current_page(GTK_NOTEBOOK(appGUI->opt->notebook), page); } /*============================================================================*/ gint task_calculate_new_date (TASK_ITEM *item, GUI *appGUI, guint32 *new_date, gint *new_time) { GDate *cdate; guint32 current_julian; gint current_time; gint i, cycles; gboolean repeat_time, repeat_date, set_start_time; gboolean month_mode_flag = item->repeat_month_interval > 0 && item->repeat_day_interval == 0; repeat_time = repeat_date = FALSE; set_start_time = TRUE; cycles = 0; current_julian = utl_date_get_current_julian (); current_time = utl_time_get_current_seconds (); *new_date = item->due_date_julian; *new_time = item->due_time; if (item->repeat_time_start < item->repeat_time_end && item->repeat_time_interval > 0 && item->due_time >= 0) repeat_time = TRUE; if (item->repeat_month_interval > 0 || item->repeat_day_interval > 0) repeat_date = TRUE; if (repeat_time) { for (i = item->repeat_time_start; i <= item->repeat_time_end; i += item->repeat_time_interval) { if (i * 60 > item->due_time && i * 60 > current_time) { *new_time = i * 60; set_start_time = FALSE; break; } } if (set_start_time && repeat_date) *new_time = item->repeat_time_start * 60; } if (*new_time < current_time || item->due_time < 0) current_julian++; if (item->due_date_julian < current_julian && repeat_date) { cdate = g_date_new_julian (item->due_date_julian); while (*new_date < current_julian) { g_date_add_months (cdate, item->repeat_month_interval); g_date_add_days (cdate, item->repeat_day_interval); if (month_mode_flag) { utl_date_set_valid_day (cdate, item->repeat_start_day); utl_date_set_nearest_weekday (cdate, item->repeat_day, TRUE); } else utl_date_set_nearest_weekday (cdate, item->repeat_day, FALSE); *new_date = g_date_get_julian (cdate); cycles++; if (item->repeat_counter != 0 && cycles >= item->repeat_counter) { g_date_free (cdate); return cycles; } } if (repeat_time) *new_time = item->repeat_time_start * 60; g_date_free (cdate); } return cycles; } /*------------------------------------------------------------------------------*/ void tasks_done(GtkTreeIter *iter, TASK_ITEM *item, GUI *appGUI) { g_return_if_fail(item->repeat == FALSE); if (config.delete_completed) { gtk_list_store_remove(appGUI->tsk->tasks_list_store, iter); } else { gtk_list_store_set(appGUI->tsk->tasks_list_store, iter, TA_COLUMN_COLOR, get_date_color(item->due_date_julian, item->due_time, TRUE, appGUI), TA_COLUMN_DONE, TRUE, -1); } if (config.save_data_after_modification) write_tasks_entries(appGUI); } /*------------------------------------------------------------------------------*/ void tasks_repeat_done (GtkTreeIter *iter, TASK_ITEM *item, GUI *appGUI) { guint32 new_date; gint new_time; gint cycles; g_return_if_fail (item->repeat == TRUE); cycles = task_calculate_new_date (item, appGUI, &new_date, &new_time); if (item->repeat_counter == 0 || item->repeat_counter > cycles) { if (item->repeat_counter > cycles) { gtk_list_store_set (appGUI->tsk->tasks_list_store, iter, TA_COLUMN_REPEAT_COUNTER, item->repeat_counter - cycles, -1); } if (new_date == item->due_date_julian && new_time == item->due_time) { if (config.delete_completed) gtk_list_store_remove (appGUI->tsk->tasks_list_store, iter); else gtk_list_store_set (appGUI->tsk->tasks_list_store, iter, TA_COLUMN_COLOR, get_date_color (item->due_date_julian, item->due_time, TRUE, appGUI), TA_COLUMN_DONE, TRUE, -1); } else { gtk_list_store_set (appGUI->tsk->tasks_list_store, iter, TA_COLUMN_COLOR, get_date_color (new_date, new_time, FALSE, appGUI), TA_COLUMN_DUE_DATE_JULIAN, new_date, TA_COLUMN_DUE_DATE, get_date_time_full_str (new_date, new_time), TA_COLUMN_DUE_TIME, new_time, TA_COLUMN_DONE, FALSE, -1); } } else { if (config.delete_completed) gtk_list_store_remove (appGUI->tsk->tasks_list_store, iter); else gtk_list_store_set (appGUI->tsk->tasks_list_store, iter, TA_COLUMN_REPEAT_COUNTER, 0, TA_COLUMN_COLOR, get_date_color (new_date, new_time, TRUE, appGUI), TA_COLUMN_DUE_DATE_JULIAN, new_date, TA_COLUMN_DUE_DATE, get_date_time_full_str (new_date, new_time), TA_COLUMN_DUE_TIME, new_time, TA_COLUMN_DONE, TRUE, -1); } if (config.save_data_after_modification) write_tasks_entries(appGUI); } /*------------------------------------------------------------------------------*/ void panel_close_desc_cb (GtkWidget *widget, gpointer data) { GtkPaned *paned; gint max_position; GUI *appGUI = (GUI *)data; paned = GTK_PANED (appGUI->tsk->tasks_paned); g_object_get(paned, "max-position", &max_position, NULL); gtk_paned_set_position(paned, max_position); } /*------------------------------------------------------------------------------*/ void tasks_item_selected (GtkTreeSelection *selection, gpointer data) { GtkTreeIter iter; gint selection_size; GtkTreeModel *model; gchar *text; guint32 start_date_julian, done_date_julian, due_date_julian; gint due_time; gchar tmpbuf[BUFFER_SIZE]; gboolean repeat, prev_state, next_state; #ifndef HAVE_LIBWEBKIT GtkTextBuffer *text_buffer; GtkTextIter titer; GtkTextChildAnchor *anchor; GtkWidget *hseparator; #else gchar *toutput = g_strdup (""), *output; PangoFontDescription *font_desc; #endif /* HAVE_LIBWEBKIT */ GUI *appGUI = (GUI *)data; #ifndef HAVE_LIBWEBKIT text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview)); utl_gui_clear_text_buffer (text_buffer, &titer); #endif /* HAVE_LIBWEBKIT */ selection_size = gtk_tree_selection_count_selected_rows(selection); if (selection_size > 1) { gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->edit_button), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->delete_button), TRUE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->prev_button), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->next_button), FALSE); #ifdef HAVE_LIBWEBKIT webkit_web_view_load_html (appGUI->tsk->html_webkitview, "", "file://"); #endif /* HAVE_LIBWEBKIT */ } else if (selection_size == 1) { gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->edit_button), TRUE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->delete_button), TRUE); iter = utl_gui_get_first_selection_iter(selection, &model); gtk_tree_model_get (model, &iter, TA_COLUMN_DESCRIPTION, &text, TA_COLUMN_DUE_DATE_JULIAN, &due_date_julian, TA_COLUMN_START_DATE_JULIAN, &start_date_julian, TA_COLUMN_DONE_DATE_JULIAN, &done_date_julian, TA_COLUMN_DUE_TIME, &due_time, TA_COLUMN_REPEAT, &repeat, -1); if (repeat == TRUE) { prev_state = FALSE; next_state = utl_date_time_in_the_past_js (due_date_julian, due_time); } else { prev_state = next_state = (due_date_julian != 0) ? TRUE : FALSE; } gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->prev_button), prev_state); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->next_button), next_state); g_snprintf (tmpbuf, BUFFER_SIZE, "\n%s: %s\n", _("Started"), julian_to_str (start_date_julian, DATE_FULL, config.override_locale_settings)); if (text != NULL) { #ifndef HAVE_LIBWEBKIT gtk_text_buffer_insert_with_tags_by_name (text_buffer, &titer, text, -1, "info_font", NULL); gtk_text_buffer_insert (text_buffer, &titer, "\n", -1); #endif /* HAVE_LIBWEBKIT */ } if (start_date_julian) { #ifdef HAVE_LIBWEBKIT if (text == NULL) toutput = utl_strconcat (toutput, "", tmpbuf, "
", NULL); else toutput = utl_strconcat (toutput, "

", tmpbuf, "
", NULL); #else gtk_text_buffer_insert (text_buffer, &titer, "\n", -1); anchor = gtk_text_buffer_create_child_anchor (text_buffer, &titer); gtk_text_buffer_insert_with_tags_by_name (text_buffer, &titer, tmpbuf, -1, "italic", NULL); #endif /* HAVE_LIBWEBKIT */ if (done_date_julian != 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%s: %s\n", _("Finished"), julian_to_str (done_date_julian, DATE_FULL, config.override_locale_settings)); #ifdef HAVE_LIBWEBKIT toutput = utl_strconcat (toutput, "", tmpbuf, "", NULL); #else gtk_text_buffer_insert_with_tags_by_name (text_buffer, &titer, tmpbuf, -1, "italic", NULL); #endif /* HAVE_LIBWEBKIT */ } #ifdef HAVE_LIBWEBKIT if (text == NULL) text = g_strdup (""); font_desc = pango_font_description_from_string((gchar *) config.task_info_font); output = utl_text_to_html_page (text, pango_font_description_get_family (font_desc), NULL, NULL, NULL, NULL, toutput); g_free (toutput); webkit_settings_set_default_font_size (webkit_web_view_get_settings(appGUI->tsk->html_webkitview), PANGO_PIXELS(pango_font_description_get_size (font_desc))); webkit_web_view_load_html (appGUI->tsk->html_webkitview, output, "file://"); g_free (output); pango_font_description_free (font_desc); #else gtk_text_view_set_buffer (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), text_buffer); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); if (!config.gui_layout) gtk_widget_set_size_request (hseparator, 320, -1); else gtk_widget_set_size_request (hseparator, 200, -1); gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), hseparator, anchor); #endif /* HAVE_LIBWEBKIT */ } g_free (text); } else { gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->edit_button), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->delete_button), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->prev_button), FALSE); gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->next_button), FALSE); #ifdef HAVE_LIBWEBKIT webkit_web_view_load_html (appGUI->tsk->html_webkitview, "", "file://"); #endif /* HAVE_LIBWEBKIT */ } } /*------------------------------------------------------------------------------*/ static void tasks_add_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; tasks_add_edit_dialog_show (FALSE, 0, utl_time_get_current_seconds (), appGUI); } /*------------------------------------------------------------------------------*/ static void tasks_edit_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; if (gtk_tree_selection_count_selected_rows(appGUI->tsk->tasks_list_selection) == 1) tasks_add_edit_dialog_show (TRUE, appGUI->tsk->tasks_due_julian_day, appGUI->tsk->tasks_due_time, appGUI); } /*------------------------------------------------------------------------------*/ static void tasks_remove_item_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; tasks_remove_dialog_show (appGUI); } /*------------------------------------------------------------------------------*/ void task_modify_due_date (GtkTreeRowReference *ref, gint value, GUI *appGUI) { GtkTreeIter iter, *e_iter; guint32 due_date; gint due_time; guint id; TASK_ITEM *item; GtkTreePath *path; GtkTreeModel *model; model = gtk_tree_row_reference_get_model(ref); path = gtk_tree_row_reference_get_path(ref); if (path != NULL) { if (gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, TA_COLUMN_DUE_DATE_JULIAN, &due_date, TA_COLUMN_DUE_TIME, &due_time, TA_COLUMN_ID, &id, -1); e_iter = tsk_get_iter(id, appGUI); g_return_if_fail(e_iter != NULL); item = tsk_get_item(e_iter, appGUI); g_return_if_fail(item != NULL); if (item->repeat == TRUE) tasks_repeat_done(e_iter, item, appGUI); else if (due_date != 0) { due_date += value; gtk_list_store_set(appGUI->tsk->tasks_list_store, e_iter, TA_COLUMN_COLOR, get_date_color(due_date, due_time, FALSE, appGUI), TA_COLUMN_DUE_DATE_JULIAN, due_date, TA_COLUMN_DUE_DATE, get_date_time_full_str(due_date, due_time), -1); } tsk_item_free(item); } gtk_tree_path_free(path); } } /*------------------------------------------------------------------------------*/ void tasks_increment_due_date (GtkTreeRowReference *ref, GUI *appGUI) { task_modify_due_date(ref, 1, appGUI); } /*------------------------------------------------------------------------------*/ void tasks_decrement_due_date (GtkTreeRowReference *ref, GUI *appGUI) { task_modify_due_date(ref, -1, appGUI); } /*------------------------------------------------------------------------------*/ void tasks_modify_due_date (GFunc modify_function, GUI *appGUI) { utl_gui_foreach_selected(appGUI->tsk->tasks_list_selection, GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), modify_function, appGUI); } /*------------------------------------------------------------------------------*/ static void tasks_change_due_date_to_prev_date_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; tasks_modify_due_date ((GFunc)tasks_decrement_due_date, appGUI); } /*------------------------------------------------------------------------------*/ static void tasks_change_due_date_to_next_date_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; tasks_modify_due_date ((GFunc)tasks_increment_due_date, appGUI); } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBICAL static void tasks_export_visible_items_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; export_tasks_to_file (appGUI); } #endif /* HAVE_LIBICAL */ /*------------------------------------------------------------------------------*/ #ifdef PRINTING_SUPPORT static void tasks_print_visible_items_cb (GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; tasks_print (appGUI); } #endif /* PRINTING_SUPPORT */ /*------------------------------------------------------------------------------*/ void done_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { GtkTreePath *sort_path, *filter_path, *path; GtkTreeIter iter; gboolean done_status; guint32 done_date, category; GtkTreeModel *model; guint id; GUI *appGUI = (GUI *) user_data; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); category = gtk_combo_box_get_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox)); sort_path = gtk_tree_path_new_from_string (path_str); if (sort_path != NULL) { filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (appGUI->tsk->tasks_sort), sort_path); if (filter_path != NULL) { path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter), filter_path); if (path != NULL) { gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, TA_COLUMN_DONE, &done_status, TA_COLUMN_ID, &id, -1); if (done_status == FALSE) done_date = utl_date_get_current_julian (); else done_date = 0; gtk_list_store_set (GTK_LIST_STORE (model), &iter, TA_COLUMN_DONE, !done_status, TA_COLUMN_DONE_DATE_JULIAN, done_date, -1); if (done_status == FALSE && config.delete_completed) gtk_list_store_remove (GTK_LIST_STORE (model), &iter); gtk_tree_path_free (path); } gtk_tree_path_free (filter_path); } gtk_tree_path_free (sort_path); } cal_set_day_info (appGUI); refresh_tasks (appGUI); gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), category); if (config.save_data_after_modification) write_tasks_entries (appGUI); } /*------------------------------------------------------------------------------*/ gchar * get_date_color (guint32 julian_day, gint time, gboolean done, GUI *appGUI) { static gchar due_date_color[MAXCOLORNAME]; GdkRGBA color; gint current_time; gint32 r; current_time = utl_time_get_current_seconds (); gtk_style_context_get_color(gtk_widget_get_style_context(appGUI->main_window), GTK_STATE_NORMAL, &color); utl_gui_convert_color_to_string(&color, due_date_color); if (julian_day != 0 && done == FALSE) { r = julian_day - utl_date_get_current_julian (); if (r == 0) { if (time >= 0 && current_time > time) g_strlcpy (due_date_color, config.past_due_color, MAXCOLORNAME); else g_strlcpy (due_date_color, config.due_today_color, MAXCOLORNAME); } else if (r > 0 && r < 7) g_strlcpy (due_date_color, config.due_7days_color, MAXCOLORNAME); else if (r < 0) g_strlcpy (due_date_color, config.past_due_color, MAXCOLORNAME); } return due_date_color; } /*------------------------------------------------------------------------------*/ void set_categories (GUI *appGUI) { GtkTreeIter iter; gchar *category; gboolean tasks_state; gint i, n; n = utl_gui_get_combobox_items (GTK_COMBO_BOX (appGUI->tsk->cf_combobox)); for (i = n-1; i >= 0; i--) gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (appGUI->tsk->cf_combobox), i); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->tsk->cf_combobox), NULL, _("All items")); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->tasks_category_store), &iter, TC_COLUMN_NAME, &category, TC_COLUMN_TASKS, &tasks_state, -1); if (tasks_state == TRUE) gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->tsk->cf_combobox), NULL, category); g_free (category); } if (config.remember_category_in_tasks == TRUE) gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), config.current_category_in_tasks); else gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), 0); } /*------------------------------------------------------------------------------*/ void refresh_tasks (GUI *appGUI) { GtkTreeIter iter; gint i = 0, due_time; guint32 julian_day; gchar *priority; gboolean done; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_DONE, &done, TA_COLUMN_DUE_DATE_JULIAN, &julian_day, TA_COLUMN_DUE_TIME, &due_time, TA_COLUMN_PRIORITY, &priority, -1); if (tsk_get_priority_index (priority) == HIGH_PRIORITY && config.tasks_high_in_bold == TRUE) /* high priority ? */ { gtk_list_store_set (appGUI->tsk->tasks_list_store, &iter, TA_COLUMN_DUE_DATE, get_date_time_full_str (julian_day, due_time), TA_COLUMN_COLOR, get_date_color (julian_day, due_time, done, appGUI), TA_COLUMN_BOLD, PANGO_WEIGHT_BOLD,-1); } else { gtk_list_store_set (appGUI->tsk->tasks_list_store, &iter, TA_COLUMN_DUE_DATE, get_date_time_full_str (julian_day, due_time), TA_COLUMN_COLOR, get_date_color (julian_day, due_time, done, appGUI), TA_COLUMN_BOLD, PANGO_WEIGHT_NORMAL,-1); } g_free (priority); } } /*------------------------------------------------------------------------------*/ void update_tasks_number (GUI *appGUI) { gint i; gchar tmpbuf[BUFFER_SIZE]; i = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (appGUI->tsk->tasks_filter), NULL); if (i > 0) { g_snprintf (tmpbuf, BUFFER_SIZE, "%4d %s", i, ngettext ("entry", "entries", i)); #ifdef PRINTING_SUPPORT gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->print_button), TRUE); #endif /* PRINTING_SUPPORT */ #ifdef HAVE_LIBICAL gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->export_button), TRUE); #endif /* HAVE_LIBICAL */ } else { g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("no entries")); #ifdef PRINTING_SUPPORT gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->print_button), FALSE); #endif /* PRINTING_SUPPORT */ #ifdef HAVE_LIBICAL gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->export_button), FALSE); #endif /* HAVE_LIBICAL */ } gtk_label_set_markup (GTK_LABEL (appGUI->tsk->n_items_label), tmpbuf); } void task_list_row_changed_cb (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, GUI *appGUI) { TASK_ITEM *item = tsk_get_item(iter, appGUI); change_task_notification(item, appGUI); tsk_item_free(item); } void task_filter_row_inserted_cb (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, gpointer user_data) { update_tasks_number ((GUI *) user_data); } void task_filter_row_deleted_cb (GtkTreeModel *tree_model, GtkTreePath *path, gpointer user_data) { update_tasks_number ((GUI *) user_data); } /*------------------------------------------------------------------------------*/ guint get_number_of_visible_tasks_with_date (GUI *appGUI) { guint32 date, n; GtkTreeIter sort_iter; gboolean valid; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); n = 0; while (valid) { GtkTreeIter filter_iter, iter; gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->tsk->tasks_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter), &iter, &filter_iter); gtk_tree_model_get(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_DUE_DATE_JULIAN, &date, -1); if (date != 0) n++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); } return n; } /*------------------------------------------------------------------------------*/ void add_item_to_list (TASK_ITEM *item, GUI *appGUI) { GtkTreeIter iter; GdkPixbuf *image; const gchar *icon_name; gchar *date_time_str; gtk_list_store_append (appGUI->tsk->tasks_list_store, &iter); gtk_list_store_set (appGUI->tsk->tasks_list_store, &iter, TA_COLUMN_DONE, item->done, TA_COLUMN_DUE_DATE_JULIAN, item->due_date_julian, TA_COLUMN_START_DATE_JULIAN, item->start_date_julian, TA_COLUMN_DONE_DATE_JULIAN, item->done_date_julian, TA_COLUMN_DUE_TIME, item->due_time, TA_COLUMN_PRIORITY, item->priority, TA_COLUMN_CATEGORY, item->category, TA_COLUMN_SUMMARY, item->summary, TA_COLUMN_DESCRIPTION, item->desc, TA_COLUMN_SOUND_ENABLE, item->sound_enable, TA_COLUMN_NDIALOG_ENABLE, item->ndialog_enable, TA_COLUMN_COLOR, get_date_color (item->due_date_julian, item->due_time, item->done, appGUI), TA_COLUMN_ACTIVE, item->active, TA_COLUMN_OFFLINE_IGNORE, item->offline_ignore, TA_COLUMN_REPEAT, item->repeat, TA_COLUMN_REPEAT_DAY, item->repeat_day, TA_COLUMN_REPEAT_MONTH_INTERVAL, item->repeat_month_interval, TA_COLUMN_REPEAT_DAY_INTERVAL, item->repeat_day_interval, TA_COLUMN_REPEAT_START_DAY, item->repeat_start_day, TA_COLUMN_REPEAT_TIME_START, item->repeat_time_start, TA_COLUMN_REPEAT_TIME_END, item->repeat_time_end, TA_COLUMN_REPEAT_TIME_INTERVAL, item->repeat_time_interval, TA_COLUMN_REPEAT_COUNTER, item->repeat_counter, TA_COLUMN_ALARM_COMMAND, item->alarm_command, TA_COLUMN_WARNING_DAYS, item->warning_days, TA_COLUMN_WARNING_TIME, item->warning_time, TA_COLUMN_POSTPONE_TIME, item->postpone_time, TA_COLUMN_ID, item->id, -1); icon_name = (item->repeat == TRUE) ? OSMO_STOCK_TYPE_RECURRENT : OSMO_STOCK_TYPE_NORMAL; image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), icon_name, 16, 0, NULL); gtk_list_store_set (appGUI->tsk->tasks_list_store, &iter, TA_COLUMN_TYPE, image, -1); g_object_unref (image); date_time_str = utl_date_time_print_default (item->due_date_julian, item->due_time, FALSE); gtk_list_store_set (appGUI->tsk->tasks_list_store, &iter, TA_COLUMN_DUE_DATE, date_time_str, -1); g_free (date_time_str); } /*------------------------------------------------------------------------------*/ gint list_dbclick_cb (GtkWidget * widget, GdkEventButton * event, gpointer data) { GUI *appGUI = (GUI *) data; if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) { if (config.add_edit == FALSE) tasks_edit_item_cb (NULL, appGUI); else tasks_add_edit_dialog_show (FALSE, 0, utl_time_get_current_seconds (), appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gboolean tasks_list_filter_cb (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gchar *category; gchar *value; gboolean done, result; GUI *appGUI = (GUI *) data; gtk_tree_model_get (model, iter, TA_COLUMN_DONE, &done, TA_COLUMN_CATEGORY, &category, TA_COLUMN_SUMMARY, &value, -1); if (tsk_get_category_state(category, STATE_TASKS, appGUI) == FALSE) { result = FALSE; } else if (config.hide_completed && done == TRUE) { result = FALSE; } else if (appGUI->tsk->filter_index && (utl_gui_list_store_get_text_index(appGUI->opt->tasks_category_store, category) != appGUI->tsk->filter_index)) { result = FALSE; } else if (value == NULL) { result = FALSE; } else { const gchar *text = gtk_entry_get_text(GTK_ENTRY(appGUI->tsk->tasks_find_entry)); if (text == NULL) { result = TRUE; } else if (!g_utf8_strlen(text, -1)) { result = TRUE; } else { result = utl_text_strcasestr(value, text); } } g_free(category); g_free(value); return result; } /*------------------------------------------------------------------------------*/ void category_filter_cb (GtkComboBox *widget, gpointer data) { GUI *appGUI = (GUI *) data; appGUI->tsk->filter_index = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); if (appGUI->tsk->filter_index != -1) { gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter)); } } /*------------------------------------------------------------------------------*/ gint tasks_column_sort_function (GtkTreeModel *model, GtkTreeIter *iter_a, GtkTreeIter *iter_b, gpointer user_data) { gboolean done_a, done_b; gchar *priority_a, *priority_b; guint32 due_date_a, due_date_b; gint due_time_a, due_time_b; gboolean repeat_a, repeat_b; gchar *summary_a, *summary_b; gchar *category_a, *category_b; gint diff; gint sort_column = GPOINTER_TO_INT(user_data); if (iter_a == NULL || iter_b == NULL) { return 0; } switch(sort_column) { case TA_COLUMN_DUE_DATE: gtk_tree_model_get (model, iter_a, TA_COLUMN_DUE_TIME, &due_time_a, TA_COLUMN_DUE_DATE_JULIAN, &due_date_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_DUE_TIME, &due_time_b, TA_COLUMN_DUE_DATE_JULIAN, &due_date_b, -1); if (!due_date_a) due_date_a = 1 << 31; if (!due_date_b) due_date_b = 1 << 31; diff = utl_date_time_compare_js(due_date_a, due_time_a, due_date_b, due_time_b); break; case TA_COLUMN_PRIORITY: gtk_tree_model_get (model, iter_a, TA_COLUMN_PRIORITY, &priority_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_PRIORITY, &priority_b, -1); diff = tsk_get_priority_index (priority_a) - tsk_get_priority_index (priority_b); g_free (priority_a); g_free (priority_b); break; case TA_COLUMN_DONE: gtk_tree_model_get (model, iter_a, TA_COLUMN_DONE, &done_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_DONE, &done_b, -1); diff = done_a - done_b; break; case TA_COLUMN_TYPE: gtk_tree_model_get (model, iter_a, TA_COLUMN_REPEAT, &repeat_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_REPEAT, &repeat_b, -1); diff = repeat_a - repeat_b; break; case TA_COLUMN_SUMMARY: gtk_tree_model_get (model, iter_a, TA_COLUMN_SUMMARY, &summary_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_SUMMARY, &summary_b, -1); diff = utl_text_strcmp(summary_a, summary_b); g_free (summary_a); g_free (summary_b); break; case TA_COLUMN_CATEGORY: gtk_tree_model_get (model, iter_a, TA_COLUMN_CATEGORY, &category_a, -1); gtk_tree_model_get (model, iter_b, TA_COLUMN_CATEGORY, &category_b, -1); diff = utl_text_strcmp(category_a, category_b); g_free (category_a); g_free (category_b); break; default: diff = 0; } return diff; } /*------------------------------------------------------------------------------*/ void tasks_sort_column_changed_cb (GtkTreeSortable *sortable, gpointer user_data) { GtkSortType sort_order; gtk_tree_sortable_get_sort_column_id(sortable, &config.tasks_sorting_column, &sort_order); config.tasks_sorting_order = sort_order; } /*------------------------------------------------------------------------------*/ void tasks_select_first_position_in_list (GUI *appGUI) { GtkTreeIter iter; GtkTreePath *path; /* set cursor at first position */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter) == TRUE) { path = gtk_tree_model_get_path (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), &iter); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->tsk->tasks_list), path, NULL, TRUE); gtk_tree_path_free (path); } } } /*------------------------------------------------------------------------------*/ gboolean category_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ void tasks_selection_activate (gboolean active, GUI *appGUI) { if (active == TRUE) g_signal_connect (G_OBJECT (appGUI->tsk->tasks_list_selection), "changed", G_CALLBACK (tasks_item_selected), appGUI); else g_signal_handlers_disconnect_by_func (G_OBJECT (appGUI->tsk->tasks_list_selection), G_CALLBACK (tasks_item_selected), appGUI); } /*------------------------------------------------------------------------------*/ void store_task_columns_info (GUI *appGUI) { gint n; config.tasks_column_idx_0 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_DONE], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); config.tasks_column_idx_1 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); config.tasks_column_idx_2 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); config.tasks_column_idx_3 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); config.tasks_column_idx_4 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); config.tasks_column_idx_5 = utl_gui_get_column_position (appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY], GTK_TREE_VIEW (appGUI->tsk->tasks_list), MAX_VISIBLE_TASK_COLUMNS, appGUI); n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 0)); if (n > 1) config.tasks_column_idx_0_width = n; n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 1)); if (n > 1) config.tasks_column_idx_1_width = n; n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 2)); if (n > 1) config.tasks_column_idx_2_width = n; n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 3)); if (n > 1) config.tasks_column_idx_3_width = n; n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 4)); if (n > 1) config.tasks_column_idx_4_width = n; n = gtk_tree_view_column_get_width (gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 5)); if (n > 1) config.tasks_column_idx_5_width = n; } /*------------------------------------------------------------------------------*/ void set_tasks_columns_width (GUI *appGUI) { GtkTreeViewColumn *col; gint w; w = 2 * utl_gui_get_sw_vscrollbar_width (appGUI->tsk->scrolled_win); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 0); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_0_width > 0) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_0_width); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 1); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_1_width > 0) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_1_width); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 2); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_2_width > 0) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_2_width); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 3); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_3_width > 0) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_3_width); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 4); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_4_width > 0) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_4_width); col = gtk_tree_view_get_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), 5); if (gtk_tree_view_column_get_visible (col) == TRUE && config.tasks_column_idx_5_width > w) gtk_tree_view_column_set_fixed_width (col, config.tasks_column_idx_5_width - w); } /*------------------------------------------------------------------------------*/ gboolean tasks_search_entry_changed_cb (GtkEditable *editable, gpointer user_data) { GtkTreePath *path; GtkTreeIter iter; gint i; GUI *appGUI = (GUI *) user_data; gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter)); if (g_utf8_strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->tsk->tasks_find_entry)), -1)) { i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->tsk->tasks_filter), &iter, NULL, i++)); if (i-1 != 0) { path = gtk_tree_path_new_first (); if (path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->tsk->tasks_list), path, NULL, FALSE); gtk_tree_path_free (path); } } } return FALSE; } /*------------------------------------------------------------------------------*/ void gui_clear_find_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (g_utf8_strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->tsk->tasks_find_entry)), -1)) { gtk_entry_set_text (GTK_ENTRY (appGUI->tsk->tasks_find_entry), ""); refresh_tasks (appGUI); } gtk_widget_grab_focus (appGUI->tsk->tasks_find_entry); } /*------------------------------------------------------------------------------*/ #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) static void button_create_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_create(appGUI); } static void button_restore_backup_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; backup_restore(appGUI); } #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ /*------------------------------------------------------------------------------*/ void tasks_paned_position_change_cb (GObject *gobject, GParamSpec *pspec, GUI *appGUI) { config.tasks_pane_pos = gtk_paned_get_position (GTK_PANED (appGUI->tsk->tasks_paned)); } void gui_create_tasks (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *vbox3; GtkWidget *grid; GtkWidget *label; GtkWidget *frame; GtkWidget *hseparator; GtkWidget *close_button; GtkCellRenderer *renderer; GtkWidget *top_viewport; GtkWidget *bottom_viewport; GtkToolbar *tasks_toolbar; gchar tmpbuf[BUFFER_SIZE]; gint i, n; #ifndef HAVE_LIBWEBKIT GtkTextBuffer *text_buffer; #endif /* HAVE_LIBWEBKIT */ gint columns_order[MAX_VISIBLE_TASK_COLUMNS]; gint ta_columns[MAX_VISIBLE_TASK_COLUMNS] = { TA_COLUMN_DONE, TA_COLUMN_TYPE, TA_COLUMN_DUE_DATE, TA_COLUMN_PRIORITY, TA_COLUMN_CATEGORY, TA_COLUMN_SUMMARY }; appGUI->tsk->filter_index = 0; vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 0); g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("Tasks")); gui_add_to_notebook (vbox1, tmpbuf, appGUI); appGUI->tsk->vbox = GTK_BOX (vbox1); if (config.hide_tasks == TRUE) gtk_widget_hide (GTK_WIDGET (appGUI->tsk->vbox)); /*-------------------------------------------------------------------------------------*/ tasks_toolbar = GTK_TOOLBAR(gtk_toolbar_new()); gtk_box_pack_start(GTK_BOX(vbox1), GTK_WIDGET(tasks_toolbar), FALSE, FALSE, 0); gtk_toolbar_insert(tasks_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_ADD, _("New task"), tasks_add_item_cb), -1); appGUI->tsk->edit_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_EDIT, _("Edit task"), tasks_edit_item_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->edit_button, -1); gtk_toolbar_insert(tasks_toolbar, gtk_separator_tool_item_new(), -1); appGUI->tsk->delete_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_REMOVE, _("Remove task"), tasks_remove_item_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->delete_button, -1); gtk_toolbar_insert(tasks_toolbar, gtk_separator_tool_item_new(), -1); appGUI->tsk->prev_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_PREV_DATE, _("Change due date to previous date"), tasks_change_due_date_to_prev_date_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->prev_button, -1); appGUI->tsk->next_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_NEXT_DATE, _("Change due date to next date"), tasks_change_due_date_to_next_date_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->next_button, -1); #ifdef HAVE_LIBICAL gtk_toolbar_insert(tasks_toolbar, gtk_separator_tool_item_new(), -1); appGUI->tsk->export_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_TASKS_EXPORT, _("Export tasks"), tasks_export_visible_items_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->export_button, -1); #endif #ifdef PRINTING_SUPPORT gtk_toolbar_insert(tasks_toolbar, gtk_separator_tool_item_new(), -1); appGUI->tsk->print_button = gui_create_toolbar_button(appGUI, OSMO_STOCK_PRINT, _("Print visible tasks list"), tasks_print_visible_items_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->print_button, -1); #endif gui_append_toolbar_spring(tasks_toolbar); #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) gtk_toolbar_insert(tasks_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_BACKUP, _("Backup data"), button_create_backup_cb), -1); gtk_toolbar_insert(tasks_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_RESTORE, _("Restore data"), button_restore_backup_cb), -1); gtk_toolbar_insert(tasks_toolbar, gtk_separator_tool_item_new(), -1); #endif gtk_toolbar_insert(tasks_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_PREFERENCES, _("Preferences"), show_preferences_window_cb), -1); gtk_toolbar_insert(tasks_toolbar, gui_create_toolbar_button(appGUI, OSMO_STOCK_ABOUT, _("About"), gui_show_about_window_cb), -1); appGUI->tsk->quit_button = gui_create_toolbar_button(appGUI, "application-exit", _("Quit"), gui_quit_osmo_cb); gtk_toolbar_insert(tasks_toolbar, appGUI->tsk->quit_button, -1); gtk_toolbar_set_style(tasks_toolbar, GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size(tasks_toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show_all(GTK_WIDGET(tasks_toolbar)); /*-------------------------------------------------------------------------------------*/ gtk_widget_set_sensitive(GTK_WIDGET(appGUI->tsk->edit_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->tsk->delete_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->tsk->prev_button), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(appGUI->tsk->next_button), FALSE); #ifdef PRINTING_SUPPORT gtk_widget_set_sensitive (GTK_WIDGET(appGUI->tsk->print_button), FALSE); #endif /* PRINTING_SUPPORT */ /*-------------------------------------------------------------------------------------*/ if (!config.gui_layout) { appGUI->tsk->tasks_paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL ); } else { appGUI->tsk->tasks_paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); } gtk_widget_show (appGUI->tsk->tasks_paned); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->tsk->tasks_paned, TRUE, TRUE, 0); top_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (top_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (top_viewport), GTK_SHADOW_NONE); gtk_paned_pack1 (GTK_PANED (appGUI->tsk->tasks_paned), top_viewport, FALSE, TRUE); vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (top_viewport), vbox3); gtk_widget_set_margin_left (vbox3, 8); gtk_widget_set_margin_right (vbox3, 8); gtk_widget_set_margin_bottom (vbox3, 8); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, TRUE, 6); grid = gtk_grid_new (); gtk_widget_show (grid); gtk_box_pack_start (GTK_BOX (vbox3), grid, FALSE, TRUE, 0); gtk_grid_set_column_spacing (GTK_GRID (grid), 4); gtk_grid_set_row_spacing (GTK_GRID (grid), 4); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Category")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->tsk->cf_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->tsk->cf_combobox); gtk_combo_box_set_focus_on_click (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), FALSE); gtk_widget_set_can_focus (appGUI->tsk->cf_combobox, FALSE); gtk_grid_attach (GTK_GRID (grid), appGUI->tsk->cf_combobox, 1, 0, 1, 1); gtk_widget_set_hexpand(appGUI->tsk->cf_combobox, TRUE); g_signal_connect (G_OBJECT (appGUI->tsk->cf_combobox), "changed", G_CALLBACK (category_filter_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->tsk->cf_combobox), "focus", G_CALLBACK (category_combo_box_focus_cb), NULL); appGUI->tsk->n_items_label = gtk_label_new (""); gtk_widget_show (appGUI->tsk->n_items_label); gtk_grid_attach (GTK_GRID (grid), appGUI->tsk->n_items_label, 4, 0, 2, 1); gtk_label_set_use_markup (GTK_LABEL (appGUI->tsk->n_items_label), TRUE); g_snprintf (tmpbuf, BUFFER_SIZE, "%s:", _("Search")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_CENTER); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1); appGUI->tsk->tasks_find_entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (appGUI->tsk->tasks_find_entry), 128); gtk_widget_show (appGUI->tsk->tasks_find_entry); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_find_entry), "changed", G_CALLBACK (tasks_search_entry_changed_cb), appGUI); gtk_widget_set_hexpand(appGUI->tsk->tasks_find_entry, TRUE); gtk_grid_attach (GTK_GRID (grid), appGUI->tsk->tasks_find_entry, 1, 1, 4, 1); appGUI->tsk->tasks_find_clear_button = gtk_button_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_BUTTON); gtk_widget_show (appGUI->tsk->tasks_find_clear_button); gtk_widget_set_can_focus (appGUI->tsk->tasks_find_clear_button, FALSE); gtk_button_set_relief (GTK_BUTTON(appGUI->tsk->tasks_find_clear_button), GTK_RELIEF_NONE); if (config.enable_tooltips) gtk_widget_set_tooltip_text (appGUI->tsk->tasks_find_clear_button, _("Clear")); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_find_clear_button), "clicked", G_CALLBACK (gui_clear_find_cb), appGUI); gtk_grid_attach (GTK_GRID (grid), appGUI->tsk->tasks_find_clear_button, 5, 1, 1, 1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox3), hseparator, FALSE, TRUE, 6); appGUI->tsk->scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->tsk->scrolled_win); gtk_box_pack_start (GTK_BOX (vbox3), appGUI->tsk->scrolled_win, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (appGUI->tsk->scrolled_win), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->tsk->scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); appGUI->tsk->tasks_list_store = gtk_list_store_new (TASKS_NUM_COLUMNS, /* columns are defined in gui.h */ G_TYPE_BOOLEAN, /* TA_COLUMN_DONE */ GDK_TYPE_PIXBUF, /* TA_COLUMN_TYPE */ G_TYPE_STRING, /* TA_COLUMN_DUE_DATE */ G_TYPE_UINT, /* TA_COLUMN_DUE_DATE_JULIAN */ G_TYPE_INT, /* TA_COLUMN_DUE_TIME */ G_TYPE_UINT, /* TA_COLUMN_START_DATE_JULIAN */ G_TYPE_UINT, /* TA_COLUMN_DONE_DATE_JULIAN */ G_TYPE_STRING, /* TA_COLUMN_PRIORITY */ G_TYPE_STRING, /* TA_COLUMN_CATEGORY */ G_TYPE_STRING, /* TA_COLUMN_SUMMARY */ G_TYPE_STRING, /* TA_COLUMN_DESCRIPTION */ G_TYPE_STRING, /* TA_COLUMN_COLOR */ G_TYPE_UINT, /* TA_COLUMN_BOLD */ G_TYPE_BOOLEAN, /* TA_COLUMN_ACTIVE */ G_TYPE_BOOLEAN, /* TA_COLUMN_OFFLINE_IGNORE */ G_TYPE_BOOLEAN, /* TA_COLUMN_SOUND_ENABLE */ G_TYPE_BOOLEAN, /* TA_COLUMN_NDIALOG_ENABLE */ G_TYPE_BOOLEAN, /* TA_COLUMN_REPEAT */ G_TYPE_INT, /* TA_COLUMN_REPEAT_DAY */ G_TYPE_INT, /* TA_COLUMN_REPEAT_MONTH_INTERVAL */ G_TYPE_INT, /* TA_COLUMN_REPEAT_DAY_INTERVAL */ G_TYPE_INT, /* TA_COLUMN_REPEAT_START_DAY */ G_TYPE_INT, /* TA_COLUMN_REPEAT_TIME_START */ G_TYPE_INT, /* TA_COLUMN_REPEAT_TIME_END */ G_TYPE_INT, /* TA_COLUMN_REPEAT_TIME_INTERVAL */ G_TYPE_INT, /* TA_COLUMN_REPEAT_COUNTER */ G_TYPE_STRING, /* TA_COLUMN_ALARM_COMMAND */ G_TYPE_INT, /* TA_COLUMN_WARNING_DAYS */ G_TYPE_INT, /* TA_COLUMN_WARNING_TIME */ G_TYPE_INT, /* TA_COLUMN_POSTPONE_TIME */ G_TYPE_INT /* TA_COLUMN_ID */ ); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_list_store), "row-changed", G_CALLBACK (task_list_row_changed_cb), appGUI); appGUI->tsk->tasks_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (appGUI->tsk->tasks_list_store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter), (GtkTreeModelFilterVisibleFunc) tasks_list_filter_cb, appGUI, NULL); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_filter), "row-inserted", G_CALLBACK (task_filter_row_inserted_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_filter), "row-deleted", G_CALLBACK (task_filter_row_deleted_cb), appGUI); appGUI->tsk->tasks_sort = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (appGUI->tsk->tasks_filter)); appGUI->tsk->tasks_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->tsk->tasks_sort)); gtk_widget_show (appGUI->tsk->tasks_list); g_signal_connect (G_OBJECT (appGUI->tsk->tasks_list), "button_press_event", G_CALLBACK (list_dbclick_cb), appGUI); appGUI->tsk->tasks_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->tsk->tasks_list)); gtk_tree_selection_set_mode (appGUI->tsk->tasks_list_selection, GTK_SELECTION_MULTIPLE); tasks_selection_activate (TRUE, appGUI); /* create columns */ renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DONE] = gtk_tree_view_column_new_with_attributes (_("Done"), renderer, "active", TA_COLUMN_DONE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DONE]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DONE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DONE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DONE]), GTK_TREE_VIEW_COLUMN_FIXED); g_signal_connect (renderer, "toggled", G_CALLBACK (done_toggled), appGUI); renderer = gtk_cell_renderer_pixbuf_new (); /* icon */ appGUI->tsk->tasks_columns[TA_COLUMN_TYPE] = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, "pixbuf", TA_COLUMN_TYPE, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE], config.tsk_visible_type_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_TYPE]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_TYPE]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE] = gtk_tree_view_column_new_with_attributes(_("Due date"), renderer, "text", TA_COLUMN_DUE_DATE, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE], config.tsk_visible_due_date_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY] = gtk_tree_view_column_new_with_attributes (_("Priority"), renderer, "text", TA_COLUMN_PRIORITY, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY], config.tsk_visible_priority_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_PRIORITY]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY] = gtk_tree_view_column_new_with_attributes (_("Category"), renderer, "text", TA_COLUMN_CATEGORY, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY], config.tsk_visible_category_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_CATEGORY]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_cell_renderer_set_fixed_size (renderer, 0, -1); appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY] = gtk_tree_view_column_new_with_attributes (_("Summary"), renderer, "text", TA_COLUMN_SUMMARY, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY]); gtk_tree_view_column_set_reorderable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY]), TRUE); gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY]), TRUE); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (appGUI->tsk->tasks_columns[TA_COLUMN_SUMMARY]), GTK_TREE_VIEW_COLUMN_FIXED); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE_JULIAN] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_DUE_DATE_JULIAN, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE_JULIAN], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DUE_DATE_JULIAN]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DUE_TIME] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_DUE_TIME, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DUE_TIME], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DUE_TIME]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_START_DATE_JULIAN] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_START_DATE_JULIAN, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_START_DATE_JULIAN], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_START_DATE_JULIAN]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DONE_DATE_JULIAN] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_DONE_DATE_JULIAN, "strikethrough", TA_COLUMN_DONE, "foreground", TA_COLUMN_COLOR, "weight", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DONE_DATE_JULIAN], FALSE); gtk_tree_view_append_column(GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DONE_DATE_JULIAN]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_DESCRIPTION] = gtk_tree_view_column_new_with_attributes (_("Description"), renderer, "text", TA_COLUMN_DESCRIPTION, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_DESCRIPTION], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_DESCRIPTION]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_COLOR] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_COLOR, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_COLOR], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_COLOR]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_BOLD] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_BOLD, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_BOLD], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_BOLD]); renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_ACTIVE] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", TA_COLUMN_ACTIVE, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_ACTIVE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_ACTIVE]); renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_OFFLINE_IGNORE] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", TA_COLUMN_OFFLINE_IGNORE, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_OFFLINE_IGNORE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_OFFLINE_IGNORE]); renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_SOUND_ENABLE] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", TA_COLUMN_SOUND_ENABLE, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_SOUND_ENABLE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_SOUND_ENABLE]); renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_NDIALOG_ENABLE] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", TA_COLUMN_NDIALOG_ENABLE, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_NDIALOG_ENABLE], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_NDIALOG_ENABLE]); renderer = gtk_cell_renderer_toggle_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", TA_COLUMN_REPEAT, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_DAY, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_MONTH_INTERVAL] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_MONTH_INTERVAL, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_MONTH_INTERVAL], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_MONTH_INTERVAL]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY_INTERVAL] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_DAY_INTERVAL, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY_INTERVAL], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_DAY_INTERVAL]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_START_DAY] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_START_DAY, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_START_DAY], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_START_DAY]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_START] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_TIME_START, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_START], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_START]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_END] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_TIME_END, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_END], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_END]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_INTERVAL] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_TIME_INTERVAL, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_INTERVAL], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_TIME_INTERVAL]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_COUNTER] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_REPEAT_COUNTER, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_COUNTER], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_REPEAT_COUNTER]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_ALARM_COMMAND] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_ALARM_COMMAND, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_ALARM_COMMAND], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_ALARM_COMMAND]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_DAYS] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_WARNING_DAYS, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_DAYS], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_DAYS]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_TIME] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_WARNING_TIME, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_TIME], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_WARNING_TIME]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_POSTPONE_TIME] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_POSTPONE_TIME, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_POSTPONE_TIME], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_POSTPONE_TIME]); renderer = gtk_cell_renderer_text_new (); appGUI->tsk->tasks_columns[TA_COLUMN_ID] = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", TA_COLUMN_ID, NULL); gtk_tree_view_column_set_visible (appGUI->tsk->tasks_columns[TA_COLUMN_ID], FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[TA_COLUMN_ID]); /* restore columns order */ columns_order[0] = config.tasks_column_idx_0; columns_order[1] = config.tasks_column_idx_1; columns_order[2] = config.tasks_column_idx_2; columns_order[3] = config.tasks_column_idx_3; columns_order[4] = config.tasks_column_idx_4; columns_order[5] = config.tasks_column_idx_5; n = MAX_VISIBLE_TASK_COLUMNS-1; while (n >= 0) { for (i = 0; i < MAX_VISIBLE_TASK_COLUMNS; i++) { if (n == columns_order[i]) { gtk_tree_view_move_column_after (GTK_TREE_VIEW (appGUI->tsk->tasks_list), appGUI->tsk->tasks_columns[ta_columns[i]], NULL); n--; } } } set_tasks_columns_width (appGUI); /* configure list options */ gtk_container_add (GTK_CONTAINER (appGUI->tsk->scrolled_win), appGUI->tsk->tasks_list); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (appGUI->tsk->tasks_list), FALSE); /* configure sorting */ for (i = 0; i < MAX_VISIBLE_TASK_COLUMNS; i++) { gtk_tree_view_column_set_sort_column_id (appGUI->tsk->tasks_columns[ta_columns[i]], ta_columns[i]); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (appGUI->tsk->tasks_sort), ta_columns[i], tasks_column_sort_function, GINT_TO_POINTER(ta_columns[i]), NULL); } /* restore sorting */ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE (appGUI->tsk->tasks_sort), config.tasks_sorting_column, config.tasks_sorting_order); g_signal_connect (appGUI->tsk->tasks_sort, "sort-column-changed", G_CALLBACK (tasks_sort_column_changed_cb), appGUI); /*----------------------------------------------------------------------------*/ bottom_viewport = gtk_viewport_new (NULL, NULL); gtk_widget_show (bottom_viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (bottom_viewport), GTK_SHADOW_NONE); gtk_paned_pack2 (GTK_PANED (appGUI->tsk->tasks_paned), bottom_viewport, TRUE, TRUE); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 0); gtk_container_add (GTK_CONTAINER (bottom_viewport), vbox2); appGUI->tsk->panel_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->tsk->panel_hbox, FALSE, FALSE, 0); gtk_widget_show (appGUI->tsk->panel_hbox); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox2), frame, TRUE, TRUE, 0); gtk_widget_set_margin_left(GTK_WIDGET(frame), 8); gtk_widget_set_margin_right(GTK_WIDGET(frame), 8); gtk_widget_set_margin_bottom(GTK_WIDGET(frame), 8); gtk_frame_set_label_align (GTK_FRAME (frame), 0.98, 0.5); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); g_snprintf (tmpbuf, BUFFER_SIZE, "%s", _("Task details")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); if (!config.gui_layout) { close_button = gtk_button_new_from_icon_name("window-close", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus(close_button, FALSE); gtk_button_set_relief (GTK_BUTTON(close_button), GTK_RELIEF_NONE); if (config.enable_tooltips) { gtk_widget_set_tooltip_text (close_button, _("Close description panel")); } gtk_widget_show (close_button); gtk_box_pack_end (GTK_BOX (appGUI->tsk->panel_hbox), close_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (panel_close_desc_cb), appGUI); } appGUI->tsk->panel_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (appGUI->tsk->panel_scrolledwindow); gtk_container_add (GTK_CONTAINER (frame), appGUI->tsk->panel_scrolledwindow); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (appGUI->tsk->panel_scrolledwindow), GTK_SHADOW_NONE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (appGUI->tsk->panel_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); #ifdef HAVE_LIBWEBKIT appGUI->tsk->html_webkitview = utl_create_webkit_web_view(appGUI); g_signal_connect (appGUI->tsk->html_webkitview, "context-menu", G_CALLBACK (utl_webkit_on_menu), appGUI); g_signal_connect (appGUI->tsk->html_webkitview, "decide-policy", G_CALLBACK (utl_webkit_link_clicked), appGUI); gtk_widget_show (GTK_WIDGET (appGUI->tsk->html_webkitview)); gtk_container_add (GTK_CONTAINER (appGUI->tsk->panel_scrolledwindow), GTK_WIDGET (appGUI->tsk->html_webkitview)); #else appGUI->tsk->tasks_desc_textview = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), GTK_WRAP_WORD); gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), 4); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), 4); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), 4); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview), FALSE); gtk_widget_show (appGUI->tsk->tasks_desc_textview); gtk_container_add (GTK_CONTAINER (appGUI->tsk->panel_scrolledwindow), appGUI->tsk->tasks_desc_textview); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (appGUI->tsk->tasks_desc_textview)); gtk_text_buffer_create_tag (text_buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); appGUI->tsk->font_tag_object = gtk_text_buffer_create_tag (text_buffer, "info_font", "font", (gchar *) config.task_info_font, NULL); #endif /* HAVE_LIBWEBKIT */ g_signal_connect(G_OBJECT(appGUI->tsk->tasks_paned), "notify::position", G_CALLBACK(tasks_paned_position_change_cb), appGUI); gtk_paned_set_position (GTK_PANED (appGUI->tsk->tasks_paned), config.tasks_pane_pos); gtk_widget_grab_focus (appGUI->tsk->tasks_find_entry); } /*------------------------------------------------------------------------------*/ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/tasks_print.c0000664000175000017500000002351213161167413012717 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "i18n.h" #include "utils.h" #include "utils_gui.h" #ifdef TASKS_ENABLED #ifdef PRINTING_SUPPORT /*------------------------------------------------------------------------------*/ static void request_page_setup (GtkPrintOperation *operation, GtkPrintContext *context, int page_nr, GtkPageSetup *setup) { /* GtkPaperSize *a4_size = gtk_paper_size_new ("iso_a4");*/ /* gtk_page_setup_set_orientation (setup, GTK_PAGE_ORIENTATION_LANDSCAPE);*/ /* gtk_page_setup_set_paper_size (setup, a4_size);*/ /* gtk_paper_size_free (a4_size);*/ } /*------------------------------------------------------------------------------*/ void tasks_begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PangoLayout *layout; PangoFontDescription *desc; gdouble page_height; gint letter_height, task_height; GUI *appGUI = (GUI *) user_data; layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("mono"); pango_font_description_set_size (desc, appGUI->print_font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, "M", -1); pango_layout_get_pixel_size (layout, NULL, &letter_height); g_object_unref (layout); task_height = 2 * letter_height; page_height = gtk_print_context_get_height (context); appGUI->print_nlines = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (appGUI->tsk->tasks_filter), NULL); appGUI->print_lines_per_page = floor (page_height / task_height) - 1; g_return_if_fail (appGUI->print_lines_per_page > 0); appGUI->print_npages = (appGUI->print_nlines - 1) / appGUI->print_lines_per_page + 1; gtk_print_operation_set_n_pages (operation, appGUI->print_npages); } /*------------------------------------------------------------------------------*/ void tasks_draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint npage, gpointer user_data) { PangoLayout *layout; PangoFontDescription *desc; GtkTreeIter sort_iter; gboolean valid; cairo_t *cr; gchar *summary, *date, *priority; gchar buffer[BUFFER_SIZE]; /* gdouble page_width, page_height, ycursor;*/ gdouble page_width, ycursor; gint text_width, text_height, task_height; gint i, imin, imax; GUI *appGUI = (GUI *) user_data; cr = gtk_print_context_get_cairo_context (context); page_width = gtk_print_context_get_width (context); /* page_height = gtk_print_context_get_height (context);*/ layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("mono"); pango_font_description_set_size (desc, appGUI->print_font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, "M", -1); pango_layout_get_pixel_size (layout, NULL, &task_height); task_height *= 2; cairo_set_line_width (cr, 1); cairo_move_to (cr, 0, 0); g_snprintf (buffer, BUFFER_SIZE, "%s", _("Tasks list")); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); pango_cairo_show_layout (cr, layout); ycursor = task_height; if (appGUI->print_npages > 1) { ycursor = text_height; g_snprintf (buffer, BUFFER_SIZE, "%d/%d", npage + 1, appGUI->print_npages); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, page_width - text_width - 4, ycursor - text_height); pango_cairo_show_layout (cr, layout); ycursor = task_height; } ycursor += 0.3 * task_height; cairo_rectangle (cr, 0, task_height, page_width, task_height); cairo_set_source_rgb (cr, 0.9, 0.9, 0.9); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_stroke (cr); /* TRANSLATORS: "No." is an abbreviation of word "number" */ g_snprintf (buffer, BUFFER_SIZE, "%s", _("No.")); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, 0.05 * page_width - text_width, ycursor); pango_cairo_show_layout (cr, layout); g_snprintf (buffer, BUFFER_SIZE, "%s", _("Summary")); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, 0.07 * page_width, ycursor); pango_cairo_show_layout (cr, layout); g_snprintf (buffer, BUFFER_SIZE, "%s", _("Due date")); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, 0.66 * page_width, ycursor); pango_cairo_show_layout (cr, layout); g_snprintf (buffer, BUFFER_SIZE, "%s", _("Priority")); pango_layout_set_markup (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, 0.88 * page_width, ycursor); pango_cairo_show_layout (cr, layout); ycursor += 0.7 * task_height; valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); i = 0; imin = appGUI->print_lines_per_page * npage; imax = appGUI->print_lines_per_page * (npage + 1); while (valid) { if (i >= imin && i < imax) { GtkTreeIter filter_iter, iter; gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(appGUI->tsk->tasks_sort), &filter_iter, &sort_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter), &iter, &filter_iter); gtk_tree_model_get(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_SUMMARY, &summary, TA_COLUMN_DUE_DATE, &date, TA_COLUMN_PRIORITY, &priority, -1); ycursor += 0.3 * task_height; g_snprintf(buffer, BUFFER_SIZE, "%d.", i + 1); pango_layout_set_markup(layout, buffer, -1); pango_layout_get_pixel_size(layout, &text_width, &text_height); cairo_move_to(cr, 0.05 * page_width - text_width, ycursor); pango_cairo_show_layout(cr, layout); g_snprintf(buffer, BUFFER_SIZE, "%.52s", summary); pango_layout_set_text(layout, buffer, -1); pango_layout_get_pixel_size(layout, &text_width, &text_height); cairo_move_to(cr, 0.07 * page_width, ycursor); pango_cairo_show_layout(cr, layout); pango_layout_set_text(layout, date, -1); pango_layout_get_pixel_size(layout, &text_width, &text_height); cairo_move_to(cr, 0.66 * page_width, ycursor); pango_cairo_show_layout(cr, layout); pango_layout_set_text(layout, priority, -1); pango_layout_get_pixel_size(layout, &text_width, &text_height); cairo_move_to(cr, 0.88 * page_width, ycursor); pango_cairo_show_layout(cr, layout); ycursor += 0.7 * task_height; cairo_move_to(cr, 0, ycursor); cairo_line_to(cr, page_width, ycursor); cairo_stroke(cr); g_free(summary); g_free(date); g_free(priority); } i++; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(appGUI->tsk->tasks_sort), &sort_iter); } cairo_move_to (cr, 0, task_height); cairo_line_to (cr, 0, ycursor); cairo_move_to (cr, 0.06 * page_width, task_height); cairo_line_to (cr, 0.06 * page_width, ycursor); cairo_move_to (cr, 0.65 * page_width, task_height); cairo_line_to (cr, 0.65 * page_width, ycursor); cairo_move_to (cr, 0.87 * page_width, task_height); cairo_line_to (cr, 0.87 * page_width, ycursor); cairo_move_to (cr, page_width, task_height); cairo_line_to (cr, page_width, ycursor); cairo_stroke (cr); g_object_unref (layout); } /*------------------------------------------------------------------------------*/ void tasks_print (GUI *appGUI) { GtkPrintOperation *print; GtkPrintOperationResult result; GError *error = NULL; gchar buffer[BUFFER_SIZE]; print = gtk_print_operation_new (); appGUI->print_lines_per_page = 0; appGUI->print_nlines = 0; appGUI->print_npages = 0; g_signal_connect (print, "begin_print", G_CALLBACK (tasks_begin_print), appGUI); g_signal_connect (print, "draw_page", G_CALLBACK (tasks_draw_page), appGUI); g_signal_connect (print, "request_page_setup", G_CALLBACK (request_page_setup), NULL); result = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (appGUI->main_window), &error); if (result == GTK_PRINT_OPERATION_RESULT_ERROR) { g_snprintf (buffer, BUFFER_SIZE, "%s: %s", _("Error printing"), error->message); utl_gui_create_dialog (GTK_MESSAGE_ERROR, buffer, GTK_WINDOW (appGUI->main_window)); g_error_free (error); } g_object_unref (print); } /*------------------------------------------------------------------------------*/ #endif /* PRINTING_SUPPORT */ #endif /* TASKS_ENABLED */ osmo-0.4.2/src/utils_gui.c0000664000175000017500000010306113161167413012360 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 "gui.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils.h" #include "utils_gui.h" /* ========================================================================= */ GtkWidget * utl_gui_create_label (const gchar *format, const gchar *name) { gchar *str = g_strdup_printf (format, name); GtkWidget *label = gtk_label_new (str); gtk_widget_set_halign(label, GTK_ALIGN_START); g_free (str); return label; } /* ========================================================================= */ GtkWidget * utl_gui_create_window (const gchar *name, gint width, gint height, GUI *appGUI) { GtkWidget *window; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), name); gtk_window_set_default_size (GTK_WINDOW (window), width, height); gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (window), TRUE); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (window), WINDOW_BORDER); return window; } /* ========================================================================= */ static GtkWidget * pack_in_frame(GtkWidget *widget, const gchar *frame_name) { GtkWidget *frame, *label; frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); label = utl_gui_create_label("%s", frame_name); gtk_label_set_use_markup(GTK_LABEL(label), TRUE); gtk_frame_set_label_widget(GTK_FRAME(frame), label); gtk_container_add(GTK_CONTAINER(frame), widget); gtk_widget_set_margin_left(widget, ALIGNMENT_PADDING_LEFT); gtk_widget_set_margin_right(widget, ALIGNMENT_PADDING_RIGHT); gtk_widget_set_margin_top(widget, ALIGNMENT_PADDING_TOP); gtk_widget_set_margin_bottom(widget, ALIGNMENT_PADDING_BOTTOM); return frame; } /* ========================================================================= */ GtkWidget * utl_gui_create_vbox_in_frame (GtkWidget *container, const gchar *name) { GtkWidget *frame, *box; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); frame = pack_in_frame(box, name); gtk_box_pack_start (GTK_BOX (container), frame, FALSE, FALSE, 0); return box; } /* ========================================================================= */ GtkWidget * utl_gui_create_hbox_in_frame (GtkWidget *container, const gchar *name) { GtkWidget *frame, *box; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); frame = pack_in_frame(box, name); gtk_box_pack_start (GTK_BOX (container), frame, FALSE, FALSE, 0); return box; } /* ========================================================================= */ GtkWidget * utl_gui_create_icon_with_label (const gchar *icon_name, const gchar *label_str) { GtkWidget *vbox_icon, *image, *label; vbox_icon = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); image = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_box_pack_start (GTK_BOX (vbox_icon), image, TRUE, TRUE, 0); label = gtk_label_new (label_str); gtk_box_pack_start (GTK_BOX (vbox_icon), label, FALSE, FALSE, 0); gtk_widget_show_all (vbox_icon); return vbox_icon; } /* ========================================================================= */ GtkWidget * utl_gui_insert_in_scrolled_window (GtkWidget *widget, GtkShadowType type) { GtkWidget *scrolledwindow, *viewport; scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport = gtk_viewport_new (NULL, NULL); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), type); gtk_container_add (GTK_CONTAINER (scrolledwindow), viewport); gtk_container_add (GTK_CONTAINER (viewport), widget); return scrolledwindow; } /* ========================================================================= */ void utl_gui_font_select_cb (GtkWidget *widget, gpointer user_data) { GtkWidget *font_selector; gchar *font_name; gint response; GtkWindow *parent; FONT_SEL *sel = (FONT_SEL *) user_data; g_return_if_fail (sel->config != NULL); if (config.fullscreen) { parent = NULL; } else { parent = GTK_WINDOW(sel->appGUI->main_window); } font_selector = gtk_font_chooser_dialog_new (_("Select a font..."), parent); gtk_window_set_modal (GTK_WINDOW (font_selector), TRUE); gtk_window_set_position (GTK_WINDOW (font_selector), GTK_WIN_POS_MOUSE); gtk_font_chooser_set_font (GTK_FONT_CHOOSER (font_selector), sel->config); gtk_widget_show (font_selector); response = gtk_dialog_run (GTK_DIALOG (font_selector)); if (response == GTK_RESPONSE_OK) { font_name = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (font_selector)); if (sel->save == TRUE) g_strlcpy (sel->config, font_name, MAXFONTNAME); if (sel->entry != NULL) gtk_entry_set_text (GTK_ENTRY (sel->entry), font_name); if (sel->font != NULL) { pango_font_description_free (*sel->font); *sel->font = pango_font_description_from_string (font_name); if (sel->widget != NULL) gtk_widget_override_font (GTK_WIDGET (sel->widget), *sel->font); } g_free (font_name); } gtk_widget_destroy (font_selector); } /*------------------------------------------------------------------------------*/ gint utl_gui_get_sw_vscrollbar_width (GtkWidget *scrolled_window) { GtkWidget *vscrollbar; GValue *value; gint width; value = g_new0 (GValue, 1); value = g_value_init (value, G_TYPE_INT); vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scrolled_window)); gtk_widget_style_get_property (vscrollbar, "slider-width", value); width = g_value_get_int (value); g_value_unset (value); g_free (value); return width; } /*------------------------------------------------------------------------------*/ gint utl_gui_get_combobox_items (GtkComboBox *combo_box) { return gtk_tree_model_iter_n_children (gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)), NULL); } /*------------------------------------------------------------------------------*/ void utl_gui_create_category_combobox (GtkComboBox *combo_box, GtkListStore *store, gboolean none) { GtkTreeIter iter; gchar *category; gint i, n; n = utl_gui_get_combobox_items(combo_box); gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), -1); for (i = n-1; i >= 0; i--) { gtk_combo_box_text_remove (GTK_COMBO_BOX_TEXT (combo_box), i); } if (none == TRUE) { gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), NULL, _("None")); } else { gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), NULL, _("All items")); } i = 0; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &category, -1); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), NULL, category); g_free(category); } } /*------------------------------------------------------------------------------*/ gint utl_gui_get_column_position (GtkTreeViewColumn *column, GtkTreeView *treeview, gint M, GUI *appGUI) { gint i, n = -1; for (i = 0; i < M; i++) { if (gtk_tree_view_get_column (GTK_TREE_VIEW(treeview), i) == column) n = i; } return n; } /*------------------------------------------------------------------------------*/ gchar * utl_gui_text_buffer_get_text_with_tags (GtkTextBuffer *buffer) { GtkTextIter start, prev; GSList *tags = NULL, *i; gchar tag_char_utf8[7] = {0}; gchar *text = g_strdup (""), *oldtext = NULL, *tmp; gboolean done = FALSE; gunichar TAG_CHAR = TAG; /* Unicode chars in the Private Use Area. */ gtk_text_buffer_get_start_iter (GTK_TEXT_BUFFER (buffer), &start); g_unichar_to_utf8 (TAG_CHAR, tag_char_utf8); prev = start; while (!done) { tmp = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &prev, &start, TRUE); oldtext = text; text = g_strconcat (text, tmp, NULL); g_free (oldtext); g_free (tmp); tags = gtk_text_iter_get_toggled_tags (&start, TRUE); for (i = tags; i; i = i->next) { gchar *name; g_object_get (G_OBJECT (i->data), "name", &name, NULL); if (!name) { continue; } oldtext = text; text = g_strconcat (text, tag_char_utf8, name, tag_char_utf8, NULL); g_free (oldtext); g_free (name); } g_slist_free (tags); tags = gtk_text_iter_get_toggled_tags (&start, FALSE); for (i = tags; i; i = i->next) { gchar *name; g_object_get (G_OBJECT (i->data), "name", &name, NULL); if (!name) { continue; } oldtext = text; text = g_strconcat (text, tag_char_utf8, "/", name, tag_char_utf8, NULL); g_free (oldtext); g_free (name); } g_slist_free (tags); if (gtk_text_iter_is_end (&start)) done = TRUE; prev = start; gtk_text_iter_forward_to_tag_toggle (&start, NULL); } return text; } /*------------------------------------------------------------------------------*/ void utl_gui_text_buffer_set_text_with_tags (GtkTextBuffer *buffer, const gchar *text, gboolean clear) { GtkTextIter start, end; GList *tags = NULL; gchar **tokens; gint count; gchar tag_char_utf8[7] = {0}; gunichar TAG_CHAR = TAG; /* Unicode chars in the Private Use Area. */ if (!text) return; gtk_text_buffer_begin_user_action (GTK_TEXT_BUFFER (buffer)); if (clear == TRUE) { gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); gtk_text_buffer_delete (GTK_TEXT_BUFFER (buffer), &start, &end); } gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &start, &end); g_unichar_to_utf8 (TAG_CHAR, tag_char_utf8); tokens = g_strsplit (text, tag_char_utf8, 0); for (count = 0; tokens[count]; count++) { if (count % 2 == 0) { gint offset; GList *j; offset = gtk_text_iter_get_offset (&end); gtk_text_buffer_insert (GTK_TEXT_BUFFER (buffer), &end, tokens[count], -1); gtk_text_buffer_get_iter_at_offset (GTK_TEXT_BUFFER (buffer), &start, offset); for (j = tags; j; j = j->next) { gtk_text_buffer_apply_tag_by_name (GTK_TEXT_BUFFER (buffer), j->data, &start, &end); } } else { if (tokens[count][0] != '/') { tags = g_list_prepend (tags, tokens[count]); } else { GList *element = g_list_find_custom (tags, &(tokens[count][1]), (GCompareFunc) g_ascii_strcasecmp); if (element) { tags = g_list_delete_link (tags, element); } } } } gtk_text_buffer_end_user_action (GTK_TEXT_BUFFER (buffer)); g_strfreev (tokens); } /*------------------------------------------------------------------------------*/ void utl_gui_text_buffer_toggle_tags (GtkTextBuffer *buffer, const gchar *tag_name) { GtkTextTagTable *tag_table; GtkTextTag *tag; GtkTextIter start, end, titer; gboolean itagged; tag_table = gtk_text_buffer_get_tag_table (buffer); tag = gtk_text_tag_table_lookup (tag_table, tag_name); g_return_if_fail (tag != NULL); gtk_text_buffer_get_selection_bounds (buffer, &start, &end); itagged = TRUE; for (titer = start; !gtk_text_iter_equal (&titer, &end); gtk_text_iter_forward_char (&titer)) { if ((itagged = gtk_text_iter_has_tag (&titer, tag)) == FALSE) { break; } } if (itagged) { gtk_text_buffer_remove_tag (buffer, tag, &start, &end); } else { gtk_text_buffer_apply_tag (buffer, tag, &start, &end); } } /*------------------------------------------------------------------------------*/ gchar * utl_gui_text_strip_tags (gchar *text) { gchar *output = g_strdup(""), *oldoutput = NULL; gchar tag_char_utf8[7] = {0}; GList *tags = NULL; gchar **tokens; gint count; gunichar TAG_CHAR = TAG; /* Unicode chars in the Private Use Area. */ g_return_val_if_fail (output != NULL, NULL); g_unichar_to_utf8 (TAG_CHAR, tag_char_utf8); tokens = g_strsplit (text, tag_char_utf8, 0); for (count = 0; tokens[count]; count++) { if (count % 2 == 0) { oldoutput = output; output = g_strconcat (output, tokens[count], NULL); g_free (oldoutput); } else { if (tokens[count][0] != '/') { tags = g_list_prepend (tags, tokens[count]); } else { GList *element = g_list_find_custom (tags, &(tokens[count][1]), (GCompareFunc) g_ascii_strcasecmp); if (element) { tags = g_list_delete_link (tags, element); } } } } g_strfreev (tokens); return output; } /*------------------------------------------------------------------------------*/ void utl_gui_text_buffer_remove_all_tags (GtkTextBuffer *buffer) { GtkTextIter start, end; gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); } /*------------------------------------------------------------------------------*/ void utl_gui_change_bg_widget_state(GtkWidget *widget, gchar *color_str, GUI *appGUI) { GdkRGBA color; if (color_str != NULL) { gdk_rgba_parse(&color, color_str); } else { gtk_style_context_get_background_color(gtk_widget_get_style_context(appGUI->main_window), gtk_widget_get_state_flags(appGUI->main_window), &color); } gtk_widget_override_background_color(widget, GTK_STATE_FLAG_NORMAL, &color); } /*------------------------------------------------------------------------------*/ GdkPixbuf* utl_gui_create_color_swatch (gchar *color) { gchar *swatch[] = { "32 14 2 1", ". c #FFFFFF", "- c #000000", "--------------------------------", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "-..............................-", "--------------------------------" }; gchar color_str[] = ". c #000000"; g_snprintf(color_str, strlen(color_str) + 1, ". c %s", color); swatch[1] = color_str; return gdk_pixbuf_new_from_xpm_data ((gchar const **)swatch); } /*------------------------------------------------------------------------------*/ gint utl_gui_create_dialog (gint dialog_type, gchar *message, GtkWindow *parent) { GtkWidget *info_dialog = NULL; gint response = -1; switch (dialog_type) { case GTK_MESSAGE_QUESTION: info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, message, NULL); gtk_window_set_title (GTK_WINDOW(info_dialog), _("Question")); break; case GTK_MESSAGE_INFO: info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, message, NULL); gtk_window_set_title (GTK_WINDOW(info_dialog), _("Information")); break; case GTK_MESSAGE_ERROR: info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, message, NULL); gtk_window_set_title (GTK_WINDOW(info_dialog), _("Error")); break; case GTK_MESSAGE_WARNING: info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW(parent), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, message, NULL); gtk_window_set_title (GTK_WINDOW(info_dialog), _("Warning")); break; }; if (info_dialog != NULL) { gtk_widget_show (info_dialog); response = gtk_dialog_run(GTK_DIALOG(info_dialog)); gtk_widget_destroy (info_dialog); } return response; } /*------------------------------------------------------------------------------*/ static void show_hidden_cb(GtkToggleButton *togglebutton, gpointer user_data) { GtkFileChooser *file_chooser = user_data; gboolean checked = gtk_toggle_button_get_active(togglebutton); gtk_file_chooser_set_show_hidden(file_chooser, checked); } static void utl_gui_file_chooser_add_show_hidden(GtkFileChooser *file_chooser) { GtkWidget *show_hidden = gtk_check_button_new_with_label(_("Show hidden files")); g_signal_connect(G_OBJECT(show_hidden), "toggled", G_CALLBACK(show_hidden_cb), file_chooser); gtk_widget_show(show_hidden); gtk_file_chooser_set_extra_widget(file_chooser, show_hidden); } /*------------------------------------------------------------------------------*/ GtkWidget * utl_gui_create_save_file_dialog(const gchar *title, GtkWindow *parent) { GtkWidget *dialog = gtk_file_chooser_dialog_new(title, parent, GTK_FILE_CHOOSER_ACTION_SAVE, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Save"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), FALSE); gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(dialog), TRUE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); utl_gui_file_chooser_add_show_hidden(GTK_FILE_CHOOSER(dialog)); return dialog; } /*------------------------------------------------------------------------------*/ GtkWidget * utl_gui_create_open_file_dialog(const gchar *title, GtkWindow *parent) { GtkWidget *dialog = gtk_file_chooser_dialog_new(title, parent, GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), FALSE); gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(dialog), TRUE); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); utl_gui_file_chooser_add_show_hidden(GTK_FILE_CHOOSER(dialog)); return dialog; } /*------------------------------------------------------------------------------*/ void utl_gui_update_command_status (GtkEditable *editable, GtkWidget *icon_widget, GUI *appGUI) { GdkPixbuf *image; gchar *cmd; gint i; if (strlen(gtk_editable_get_chars(editable, 0, -1))) { cmd = g_strdup(gtk_editable_get_chars(editable, 0, -1)); for (i=0; i < strlen(cmd); i++) { if (cmd[i] == ' ') cmd[i] = 0; } gtk_widget_show (icon_widget); if (utl_is_valid_command (cmd) == TRUE) { image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), OSMO_STOCK_LIST_VALID, 16, 0, NULL); } else { image = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), OSMO_STOCK_LIST_INVALID, 16, 0, NULL); } gtk_image_set_from_pixbuf (GTK_IMAGE(icon_widget), image); g_object_unref (image); g_free (cmd); } else { gtk_widget_hide (icon_widget); } } /*------------------------------------------------------------------------------*/ gint utl_gui_check_overwrite_file (gchar *filename, GtkWidget *window, GUI *appGUI) { gint response; if (g_file_test(filename, G_FILE_TEST_IS_REGULAR) == TRUE) { response = utl_gui_create_dialog(GTK_MESSAGE_QUESTION, _("Selected file exist! Overwrite?"), GTK_WINDOW(window)); if (response == GTK_RESPONSE_NO || response == GTK_RESPONSE_DELETE_EVENT) { return -1; } } return 0; } /*------------------------------------------------------------------------------*/ void utl_gui_clear_text_buffer (GtkTextBuffer *buffer, GtkTextIter *iter) { GtkTextIter iter_s, iter_e; gtk_text_buffer_get_bounds (buffer, &iter_s, &iter_e); gtk_text_buffer_delete (buffer, &iter_s, &iter_e); if (iter != NULL) gtk_text_buffer_get_iter_at_offset (buffer, iter, 0); } /*------------------------------------------------------------------------------*/ gint utl_gui_list_store_get_text_index (GtkListStore *store, gchar *text) { GtkTreeIter iter; gint i, f; gchar *category; i = f = 0; if (text != NULL) { while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i++)) { gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 0, &category, -1); if (category != NULL) { if (!strcmp(category, text)) { f = 1; break; } g_free(category); } } if (f) { g_free(category); } } return (f ? i:0); } /*------------------------------------------------------------------------------*/ void utl_gui_sw_vscrollbar_move_position (GtkWidget *scrolled_window, gint direction) { GtkAdjustment *adj; gdouble value; adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW(scrolled_window)); value = gtk_adjustment_get_value(adj); if (direction == SW_MOVE_UP) { if (value > 0.0) { value -= gtk_adjustment_get_step_increment (adj); gtk_adjustment_set_value(adj, value < 0.0 ? 0.0 : value); } } else if (direction == SW_MOVE_DOWN) { if (value+gtk_adjustment_get_page_size(adj) < gtk_adjustment_get_upper(adj)) { value += gtk_adjustment_get_step_increment (adj); gtk_adjustment_set_value(adj, value); } } } /*------------------------------------------------------------------------------*/ GtkWidget* utl_gui_icon_label_radio_button (gchar *label, const gchar *icon_name, GtkIconSize size) { GtkWidget *button; GtkWidget *hbox; GtkWidget *image; button = g_object_new (GTK_TYPE_RADIO_BUTTON, "visible", TRUE, NULL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); image = gtk_image_new_from_icon_name (icon_name, size); if (image) { gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); } if (label != NULL && label != (gchar *)-1) { gtk_box_pack_start (GTK_BOX (hbox), g_object_new (GTK_TYPE_LABEL, "label", label, "use_underline", TRUE, NULL), FALSE, TRUE, 0); } gtk_container_add (GTK_CONTAINER (button), hbox); gtk_widget_show_all (button); return button; } /*------------------------------------------------------------------------------*/ void utl_gui_url_initialize (GUI *appGUI) { GdkDisplay *display = gdk_window_get_display(GDK_WINDOW(appGUI->main_window)); appGUI->hand_cursor = gdk_cursor_new_for_display (display, GDK_HAND2); appGUI->regular_cursor = gdk_cursor_new_for_display (display, GDK_XTERM); appGUI->hovering_over_link = FALSE; appGUI->gui_url_tag = NULL; } /*------------------------------------------------------------------------------*/ void utl_gui_url_insert_link (GSList **links_list, gint *link_index, GtkWidget *textview, GtkTextIter *iter, gchar *color, gchar *font, gchar *text, gboolean center, GUI *appGUI) { GtkJustification justify = center ? GTK_JUSTIFY_CENTER : GTK_JUSTIFY_LEFT; PangoUnderline underline = config.disable_underline_links ? PANGO_UNDERLINE_NONE : PANGO_UNDERLINE_SINGLE; appGUI->gui_url_tag = gtk_text_buffer_create_tag (gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)), NULL, "foreground", color, "font", font, "justification", justify, "underline", underline, NULL); g_object_set_data (G_OBJECT (appGUI->gui_url_tag), "link", GINT_TO_POINTER (*link_index)); *links_list = g_slist_append (*links_list, g_strdup (text)); gtk_text_buffer_insert_with_tags (gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)), iter, text, -1, appGUI->gui_url_tag, NULL); (*link_index)++; } /*------------------------------------------------------------------------------*/ void utl_gui_url_remove_links (GSList **links_list, gint *link_index) { if (link_index) *link_index = 1; if (*links_list != NULL) { g_slist_foreach (*links_list, (GFunc) g_free, NULL); g_slist_free (*links_list); *links_list = NULL; } } /*------------------------------------------------------------------------------*/ void utl_gui_url_set_cursor_if_appropriate (GtkTextView *textview, gint x, gint y, GUI *appGUI) { GSList *tags = NULL, *tagp = NULL; /*GtkTextBuffer *buffer;*/ GtkTextIter iter; gboolean hovering = FALSE; GtkTextTag *tag; int *slink; /* buffer = gtk_text_view_get_buffer (textview);*/ gtk_text_view_get_iter_at_location (textview, &iter, x, y); tags = gtk_text_iter_get_tags (&iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { tag = tagp->data; slink = g_object_get_data (G_OBJECT (tag), "link"); if (slink != 0) { hovering = TRUE; break; } } if (hovering != appGUI->hovering_over_link) { appGUI->hovering_over_link = hovering; if (appGUI->hovering_over_link) { gdk_window_set_cursor (gtk_text_view_get_window (textview, GTK_TEXT_WINDOW_TEXT), appGUI->hand_cursor); } else { gdk_window_set_cursor (gtk_text_view_get_window (textview, GTK_TEXT_WINDOW_TEXT), appGUI->regular_cursor); } } if (tags) { g_slist_free (tags); } } /*------------------------------------------------------------------------------*/ gboolean utl_gui_url_event_after (GtkWidget *textview, GdkEvent *ev, GSList **links_list) { GtkTextIter start, end, iter; GtkTextBuffer *buffer; GdkEventButton *event; gint x, y; GSList *tags = NULL, *tagp = NULL; GtkTextTag *tag; gchar *link; gint slink; gchar tmpbuf[BUFFER_SIZE]; if (ev->type != GDK_BUTTON_RELEASE) return FALSE; event = (GdkEventButton *) ev; if (event->button != 1) return FALSE; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)); gtk_text_buffer_get_selection_bounds (buffer, &start, &end); if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) return FALSE; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (textview), GTK_TEXT_WINDOW_WIDGET, event->x, event->y, &x, &y); gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (textview), &iter, x, y); tags = gtk_text_iter_get_tags (&iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { tag = tagp->data; slink = (size_t) g_object_get_data (G_OBJECT (tag), "link"); if (slink != 0) { link = g_slist_nth_data (*links_list, slink-1); g_snprintf (tmpbuf, BUFFER_SIZE, "\"%s\"", link); utl_run_helper (tmpbuf, utl_get_link_type (link)); break; } } if (tags) g_slist_free (tags); return FALSE; } /*------------------------------------------------------------------------------*/ gboolean utl_gui_url_motion_notify_event (GtkWidget *textview, GdkEventMotion *event, gpointer data) { gint x, y; GUI *appGUI = (GUI *)data; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (textview), GTK_TEXT_WINDOW_WIDGET, event->x, event->y, &x, &y); utl_gui_url_set_cursor_if_appropriate (GTK_TEXT_VIEW (textview), x, y, appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ gboolean utl_gui_url_visibility_notify_event (GtkWidget *textview, GdkEventVisibility *event, gpointer data) { gint wx, wy, bx, by; GUI *appGUI = (GUI *)data; GdkDeviceManager* device_manager = gdk_display_get_device_manager(gtk_widget_get_display(textview)); gdk_window_get_device_position (gtk_widget_get_window(textview), gdk_device_manager_get_client_pointer(device_manager), &wx, &wy, NULL); gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (textview), GTK_TEXT_WINDOW_WIDGET, wx, wy, &bx, &by); utl_gui_url_set_cursor_if_appropriate (GTK_TEXT_VIEW (textview), bx, by, appGUI); return FALSE; } /*------------------------------------------------------------------------------*/ void utl_gui_url_setup (GSList **links_list, gint *link_index, GtkWidget *textview, GUI *appGUI) { utl_gui_url_remove_links (links_list, link_index); *link_index = 1; appGUI->hovering_over_link = FALSE; appGUI->gui_url_tag = NULL; g_signal_connect (textview, "event-after", G_CALLBACK (utl_gui_url_event_after), links_list); g_signal_connect (textview, "motion-notify-event", G_CALLBACK (utl_gui_url_motion_notify_event), appGUI); g_signal_connect (textview, "visibility-notify-event", G_CALLBACK (utl_gui_url_visibility_notify_event), appGUI); } /*------------------------------------------------------------------------------*/ void utl_gui_foreach_selected(GtkTreeSelection *selection, GtkTreeModel *model, GFunc foreach_function, gpointer user_data) { GList *selected_rows, *selected_refs, *l; selected_rows = gtk_tree_selection_get_selected_rows(selection, &model); for (l = selected_rows, selected_refs = NULL; l; l = l->next) { selected_refs = g_list_prepend(selected_refs, gtk_tree_row_reference_new(model, (GtkTreePath *) l->data)); } g_list_foreach(selected_refs, foreach_function, user_data); utl_free_list(selected_rows, (GDestroyNotify) gtk_tree_path_free); utl_free_list(selected_refs, (GDestroyNotify) gtk_tree_row_reference_free); } /*------------------------------------------------------------------------------*/ GtkTreeIter utl_gui_get_first_selection_iter(GtkTreeSelection *selection, GtkTreeModel **model) { GtkTreeIter iter; GList *selected_rows; selected_rows = gtk_tree_selection_get_selected_rows(selection, model); gtk_tree_model_get_iter(*model, &iter, selected_rows->data); utl_free_list(selected_rows, (GDestroyNotify) gtk_tree_path_free); return iter; } /*------------------------------------------------------------------------------*/ void utl_gui_convert_color_to_string (GdkRGBA *color, gchar *string) { g_snprintf (string, MAXCOLORNAME, "#%02X%02X%02X", (guint)(color->red * 255), (guint)(color->green * 255), (guint)(color->blue * 255)); } /*------------------------------------------------------------------------------*/ void utl_gui_convert_color_alpha_to_string (GdkRGBA *color, gchar *string, gint *alpha) { utl_gui_convert_color_to_string(color, string); *alpha = color->alpha * 65536; } #ifdef HAVE_GSPELL /*------------------------------------------------------------------------------*/ GspellTextView* utl_gui_create_spell_check_textview(GtkTextView *textview, gboolean enable_by_default) { GspellTextView *gspell_view; GspellChecker *checker; GtkTextBuffer *gtk_buffer; GspellTextBuffer *gspell_buffer; checker = gspell_checker_new(NULL); if (config.override_locale_settings == TRUE) { const GspellLanguage * language = gspell_language_lookup(config.spell_lang); if (language) { gspell_checker_set_language(checker, language); } } gtk_buffer = gtk_text_view_get_buffer(textview); gspell_buffer = gspell_text_buffer_get_from_gtk_text_buffer(gtk_buffer); gspell_text_buffer_set_spell_checker(gspell_buffer, checker); g_object_unref(checker); gspell_view = gspell_text_view_get_from_gtk_text_view(textview); gspell_text_view_set_inline_spell_checking(gspell_view, enable_by_default); gspell_text_view_set_enable_language_menu(gspell_view, enable_by_default); return gspell_view; } void utl_gui_set_enable_spell_check(GspellTextView* text, gboolean enable) { gspell_text_view_set_inline_spell_checking(text, enable); gspell_text_view_set_enable_language_menu(text, enable); } #endif /* HAVE_GSPELL */ /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_import_csv.c0000664000175000017500000001014513066543472014446 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "contacts_import_csv.h" #ifdef CONTACTS_ENABLED #define FIELD_SEPARATOR ',' #define LINE_SEPARATOR '\n' /*------------------------------------------------------------------------------*/ static gint find_offset(const gchar *text, gsize len, gchar separator, gint nth) { gint i, count; gboolean quotation_found; for (i = 0, count = 1, quotation_found = FALSE; i < len; i++) { gchar c = text[i]; if (count == nth) { return i; } if (c == '"') { quotation_found = !quotation_found; } else if (c == separator && quotation_found == FALSE) { count++; } } return -1; } /*------------------------------------------------------------------------------*/ static gchar * substring_fragment(const gchar *text, gsize text_len, gchar separator, gint nth) { gint start = find_offset(text, text_len, separator, nth); if (start >= 0) { gint end = find_offset(text + start, text_len - start, separator, 2); if (end >= 0) { end = start + end - 1; } else { end = text_len; } gchar *buffer = g_new(gchar, (end - start) + 1); if (buffer) { g_strlcpy(buffer, text + start, (end - start)+1); return buffer; } } return NULL; } /*------------------------------------------------------------------------------*/ gchar * csv_get_line(gint line, GUI *appGUI) { gchar *line_buffer = substring_fragment(appGUI->cnt->file_buffer, appGUI->cnt->file_length, LINE_SEPARATOR, line); if (line_buffer) { gint i, j; gsize len = strlen(line_buffer); for (i = 0, j = 0; i < len; i++) { if (line_buffer[i] == '\r') { /* no \r in memory */ continue; } line_buffer[j++] = line_buffer[i]; } line_buffer[j] = '\0'; return line_buffer; } return NULL; } /*------------------------------------------------------------------------------*/ gchar * csv_get_field(const gchar *line_buffer, gint field) { gchar *value = substring_fragment(line_buffer, strlen(line_buffer), FIELD_SEPARATOR, field); if (value) { gint i, j; gsize len = strlen(value); for (i = 0, j = 0; i < len; i++) { if (value[i] == '"') { if (value[i + 1] == '"') { i++; } else { continue; } } value[j++] = value[i]; } value[j] = '\0'; return value; } return NULL; } /*------------------------------------------------------------------------------*/ guint get_number_of_records (GUI *appGUI) { guint lines = 0, i; gboolean quotation_found = FALSE, has_content = FALSE; for (i=0; i != appGUI->cnt->file_length; i++) { gchar c = appGUI->cnt->file_buffer[i]; if (c == LINE_SEPARATOR && quotation_found == FALSE) { has_content = FALSE; } else if (!has_content) { lines++; has_content = TRUE; } if (c == '"') { quotation_found = !quotation_found; } } return lines; } /*------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/tasks_print.h0000664000175000017500000000166213066543472012735 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _TASKS_PRINT_H #define _TASKS_PRINT_H void tasks_print (GUI *appGUI); #endif /* _TASKS_PRINT_H */ osmo-0.4.2/src/options_prefs.h0000664000175000017500000002311513070073157013254 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _OPTIONS_PREFS_H #define _OPTIONS_PREFS_H #include "gui.h" #define CONFIG_SUBDIR "osmo" #define CONFIG_FILENAME "config.xml" #define CONFIG_NAME "osmo_config" #define MAXNAME 1024 #define MAXFONTNAME 512 #define MAXCOLORNAME 128 #define MAXHELPERCMD 1024 #define MAXCONTACTFIELDS 512 #define MAXADDRESS 64 #define DEFAULT_DATE_HEADER_FORMAT "%e %B %Y" /* example: 1 January 2008 */ #define DEFAULT_PANED_SPLIT_POSITION 275 struct osmo_prefs { /* OSMO */ gint window_x; gint window_y; gint window_size_x; gint window_size_y; gint fullscreen; gint enable_tooltips; gint latest_tab; gint tabs_position; gint remember_latest_tab; gint save_data_after_modification; gint disable_underline_links; gint toolbar_exit_button; gint date_format; gint time_format; gint enable_systray; gint start_minimised_in_systray; gint ignore_day_note_events; gint run_counter; gint lastrun_date; gint lastrun_time; gint hide_calendar; gint hide_tasks; gint hide_contacts; gint hide_notes; gint override_locale_settings; gint gui_layout; gint sound_alarm_repeat; gchar link_color[MAXCOLORNAME]; gchar spell_lang[MAXNAME]; gchar web_browser[MAXHELPERCMD]; gchar email_client[MAXHELPERCMD]; gchar sound_player[MAXHELPERCMD]; /* CALENDAR */ gint fy_window_size_x; gint fy_window_size_y; gint fy_simple_view; gint fy_alternative_view; gint cb_window_size_x; gint cb_window_size_y; gint ib_window_size_x; gint ib_window_size_y; gint display_options; gint day_notes_visible; gint timeline_start; gint timeline_end; gint timeline_step; gint di_show_current_time; gint di_show_current_time_seconds; gint di_show_day_number; gint di_show_current_day_distance; gint di_show_marked_days; gint di_show_week_number; gint di_show_weekend_days; gint di_show_day_category; gint di_show_moon_phase; gint di_show_notes; gint di_show_zodiac_sign; gint cursor_type; gint frame_cursor_thickness; gint enable_auxilary_calendars; gint enable_day_mark; gint strikethrough_past_notes; gint ascending_sorting_in_day_notes_browser; gint auxilary_calendars_state; gint day_note_spell_checker; gchar day_note_marker[MAXNAME]; gchar date_header_format[MAXNAME]; gint event_marker_type; gint today_marker_type; gint day_notes_browser_filter; gint ical_export_pane_pos; gchar background_color[MAXCOLORNAME]; gchar header_bg_color[MAXCOLORNAME]; gchar header_fg_color[MAXCOLORNAME]; gchar day_color[MAXCOLORNAME]; gchar pf_day_color[MAXCOLORNAME]; gchar weekend_color[MAXCOLORNAME]; gchar selection_color[MAXCOLORNAME]; gint selector_alpha; gchar mark_color[MAXCOLORNAME]; gchar mark_current_day_color[MAXCOLORNAME]; gint mark_current_day_alpha; gchar birthday_mark_color[MAXCOLORNAME]; gchar day_name_font[MAXFONTNAME]; gchar calendar_font[MAXFONTNAME]; gchar notes_font[MAXFONTNAME]; gchar cal_print_month_name_font[MAXFONTNAME]; gchar cal_print_day_name_font[MAXFONTNAME]; gchar cal_print_day_num_font[MAXFONTNAME]; gchar cal_print_event_font[MAXFONTNAME]; gint cal_print_event_length; gint cal_print_padding; gint cal_print_page_orientation; gint cal_print_tasks; gint cal_print_birthdays; gint cal_print_namedays; gint cal_print_day_notes; gint cal_print_ical; gint cal_print_disable_background; /* TASKS */ gint tasks_high_in_bold; gint hide_completed; gint delete_completed; gint add_edit; gint remember_category_in_tasks; gint current_category_in_tasks; gint tasks_pane_pos; gint tasks_sorting_order; gint tasks_sorting_column; gint tsk_visible_due_date_column; gint tsk_visible_type_column; gint tsk_visible_priority_column; gint tsk_visible_category_column; gint tasks_addedit_win_x; gint tasks_addedit_win_y; gint tasks_addedit_win_w; gint tasks_addedit_win_h; gint postpone_time; gint tasks_column_idx_0; gint tasks_column_idx_0_width; gint tasks_column_idx_1; gint tasks_column_idx_1_width; gint tasks_column_idx_2; gint tasks_column_idx_2_width; gint tasks_column_idx_3; gint tasks_column_idx_3_width; gint tasks_column_idx_4; gint tasks_column_idx_4_width; gint tasks_column_idx_5; gint tasks_column_idx_5_width; gchar due_today_color[MAXCOLORNAME]; gchar due_7days_color[MAXCOLORNAME]; gchar past_due_color[MAXCOLORNAME]; gchar task_info_font[MAXFONTNAME]; gchar global_notification_command[MAXHELPERCMD]; /* CONTACTS */ gint find_mode; gint hide_group_column; gint maps_provider; gint contacts_pane_pos; gint photo_width; gint cnt_visible_age_column; gint cnt_visible_birthday_date_column; gint cnt_visible_zodiac_sign_column; gint contacts_sorting_order; gint contacts_sorting_column; gint contacts_addedit_win_x; gint contacts_addedit_win_y; gint contacts_addedit_win_w; gint contacts_addedit_win_h; gint contacts_export_win_x; gint contacts_export_win_y; gint contacts_export_win_w; gint contacts_export_win_h; gint contacts_import_sel_win_x; gint contacts_import_sel_win_y; gint contacts_import_win_x; gint contacts_import_win_y; gint contacts_import_win_w; gint contacts_import_win_h; gint contacts_birthdays_win_w; gint contacts_birthdays_win_h; gint contacts_column_idx_0; gint contacts_column_idx_0_width; gint contacts_column_idx_1; gint contacts_column_idx_1_width; gint contacts_column_idx_2; gint contacts_column_idx_2_width; gchar contact_tag_color[MAXCOLORNAME]; gchar contact_link_color[MAXCOLORNAME]; gint contact_name_font_size; gint contact_item_font_size; gint import_type; gint import_interface_type; gint import_bluetooth_channel; gint import_usb_interface; gint import_binary_xml; gchar import_bluetooth_address[MAXADDRESS]; gint export_format; gchar export_fields[MAXCONTACTFIELDS]; /* NOTES */ gint notes_enc_algorithm; gint notes_enc_hashing; gint notes_comp_algorithm; gint notes_comp_ratio; gint notes_sorting_order; gint notes_sorting_column; gint nte_visible_type_column; gint nte_visible_category_column; gint nte_visible_last_changes_column; gint nte_visible_created_column; gint notes_column_idx_0; gint notes_column_idx_0_width; gint notes_column_idx_1; gint notes_column_idx_1_width; gint notes_column_idx_2; gint notes_column_idx_2_width; gint notes_column_idx_3; gint notes_column_idx_3_width; gint notes_column_idx_4; gint notes_column_idx_4_width; gint remember_category_in_notes; gint current_category_in_notes; gint use_system_date_in_notes; gchar text_separator; gchar notes_editor_font[MAXFONTNAME]; }; extern struct osmo_prefs config; gchar* prefs_get_config_dir (GUI *appGUI); gchar* prefs_get_data_dir (GUI *appGUI); gchar* prefs_get_config_filename (gchar *filename, GUI *appGUI); gchar* prefs_get_data_filename (gchar *filename, GUI *appGUI); gchar* prefs_get_cache_filename (gchar *filename); gchar* prefs_get_runtime_filename (gchar *filename, GUI *appGUI); void prefs_read_config (GUI *appGUI); void prefs_write_config (GUI *appGUI); gboolean prefs_restore (gchar *source_dir, GUI *appGUI); #endif /* _OPTIONS_PREFS_H */ osmo-0.4.2/src/contacts_items.h0000664000175000017500000000223613066543472013411 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_ITEMS_H #define _CONTACTS_ITEMS_H #include "gui.h" void read_contacts_entries (GUI *appGUI); void write_contacts_entries (GUI *appGUI); void contacts_remove_dialog_show (GUI *appGUI); void contacts_add_edit_dialog_show (gboolean contacts_edit_mode, GUI *appGUI); #endif /* _CONTACTS_ITEMS_H */ osmo-0.4.2/src/check_events.c0000664000175000017500000012324213172773723013031 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "check_events.h" #include "i18n.h" #include "calendar.h" #include "gui.h" #include "utils.h" #include "utils_gui.h" #include "calendar_notes.h" #include "options_prefs.h" #include "calendar_utils.h" #include "stock_icons.h" #include "tasks_items.h" #include "tasks_utils.h" /*------------------------------------------------------------------------------*/ #ifdef TASKS_ENABLED /*------------------------------------------------------------------------------*/ static void tsk_status_icon_set_normal(GUI *appGUI) { gtk_status_icon_set_from_icon_name(appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); } static void tsk_status_icon_set_task(GUI *appGUI) { if (gtk_status_icon_get_visible(appGUI->osmo_trayicon)) { #ifdef HAVE_LIBNOTIFY #ifndef HAVE_LIBNOTIFY7 notify_notification_attach_to_status_icon(a->notify, appGUI->osmo_trayicon); #endif /* HAVE_LIBNOTIFY7 */ #endif /* HAVE_LIBNOTIFY */ gtk_status_icon_set_from_icon_name(appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_TASK); } } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBNOTIFY static TASK_NTF * get_task_notification(guint id, GUI *appGUI) { GSList *node; for (node = appGUI->tsk->notifications; node != NULL; node = node->next) { TASK_NTF *notification = (TASK_NTF *) node->data; if (notification->id == id) { return notification; } } return NULL; } #endif /* HAVE_LIBNOTIFY */ /*------------------------------------------------------------------------------*/ static gboolean tsk_check_notification_id(guint id, gint type, GUI *appGUI) { #ifdef HAVE_LIBNOTIFY TASK_NTF *a = get_task_notification(id, appGUI); /* Don't show warning notification when alarm notification is visible */ if (a != NULL && (a->type == NOTIFY_ALARM || a->type == type)) { return TRUE; } #endif /* HAVE_LIBNOTIFY */ return FALSE; } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBNOTIFY void free_notifications_list (GUI *appGUI) { GSList *node; TASK_NTF *a; for (node = appGUI->tsk->notifications; node != NULL; node = node->next) { a = (TASK_NTF *) node->data; notify_notification_close (a->notify, NULL); g_free (a); } if (appGUI->tsk->notifications != NULL) { g_slist_free (appGUI->tsk->notifications); appGUI->tsk->notifications = NULL; } } /*------------------------------------------------------------------------------*/ static void tsk_show_info_dialog (GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; g_snprintf (tmpbuf, BUFFER_SIZE, "%s\n%s", _("Cannot perform selected operation."), _("Task has been modified or removed.")); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW (appGUI->main_window)); } /*------------------------------------------------------------------------------*/ static TASK_NTF * get_task_notification_by_notification(NotifyNotification *n, GUI *appGUI) { #ifdef HAVE_LIBNOTIFY GSList *node; for (node = appGUI->tsk->notifications; node != NULL; node = node->next) { TASK_NTF *notification = (TASK_NTF *) node->data; if (notification->notify == n) { return notification; } } #endif /* HAVE_LIBNOTIFY */ return NULL; } /*------------------------------------------------------------------------------*/ static void tsk_done_cb(NotifyNotification *n, const char *action, GUI *appGUI) { TASK_NTF *a = get_task_notification_by_notification(n, appGUI); if (a != NULL) { GtkTreeIter *iter = tsk_get_iter(a->id, appGUI); if (iter != NULL) { TASK_ITEM *t = tsk_get_item(iter, appGUI); if (t->repeat == TRUE) { // delete the notification so it can be recreated by the next due date delete_task_notification(a->id, appGUI); tasks_repeat_done(iter, t, appGUI); } else { // notification will be deleted via a callback tasks_done(iter, t, appGUI); } tsk_item_free(t); } else { tsk_show_info_dialog(appGUI); } tsk_status_icon_set_normal(appGUI); } } /*------------------------------------------------------------------------------*/ static void tsk_postpone_notify_cb(NotifyNotification *n, const char *action, GUI *appGUI) { TASK_NTF *a = get_task_notification_by_notification(n, appGUI); if (a != NULL) { TASK_ITEM *t = tsk_get_item_id(a->id, appGUI); g_return_if_fail(t != NULL); a->time = utl_time_get_current_seconds() + t->postpone_time * 60; a->date = utl_date_get_current_julian(); if (a->time >= 24 * 3600) { a->time -= 24 * 3600; a->date++; } a->notify = NULL; tsk_item_free(t); tsk_status_icon_set_normal(appGUI); } } /*------------------------------------------------------------------------------*/ static void tsk_show_task_cb (NotifyNotification *n, const char *action, GUI *appGUI) { GtkTreeIter iter; GtkTreePath *sort_path, *filter_path, *path; GtkTreeModel *model; TASK_NTF *a; TASK_ITEM *t; guint id; model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); if (config.enable_systray == TRUE && appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } else { gtk_window_deiconify (GTK_WINDOW (appGUI->main_window)); } /* select task tab */ if (config.hide_tasks == FALSE) { gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_TASKS); } gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->tsk->cf_combobox), 0); a = get_task_notification_by_notification(n, appGUI); if (a != NULL) { /* select task on list */ tasks_selection_activate (FALSE, appGUI); if (gtk_tree_model_get_iter_first (model, &iter) == TRUE) { sort_path = gtk_tree_model_get_path (model, &iter); while (sort_path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->tsk->tasks_list), sort_path, NULL, FALSE); filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (appGUI->tsk->tasks_sort), sort_path); if (filter_path != NULL) { path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (appGUI->tsk->tasks_filter), filter_path); if (path != NULL) { gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, TA_COLUMN_ID, &id, -1); if (a->id == id) { tasks_selection_activate (TRUE, appGUI); gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->tsk->tasks_list), sort_path, NULL, FALSE); gtk_tree_path_free (path); gtk_tree_path_free (filter_path); g_signal_emit_by_name (G_OBJECT (appGUI->tsk->tasks_list_selection), "changed"); break; } gtk_tree_path_free (path); } gtk_tree_path_free (filter_path); } gtk_tree_path_next (sort_path); if (gtk_tree_model_get_iter (model, &iter, sort_path) == FALSE) break; } gtk_tree_path_free (sort_path); } tsk_status_icon_set_normal (appGUI); if (a->type == NOTIFY_WARNING) return; notify_notification_clear_actions (a->notify); t = tsk_get_item_id (a->id, appGUI); g_return_if_fail (t != NULL); if (t->postpone_time > 0) { notify_notification_add_action (a->notify, "postpone", _("Remind me later"), (NotifyActionCallback) tsk_postpone_notify_cb, appGUI, NULL); } notify_notification_add_action (a->notify, "done", _("Done"), (NotifyActionCallback) tsk_done_cb, appGUI, NULL); notify_notification_show (a->notify, NULL); tsk_item_free (t); } } #endif /* HAVE_LIBNOTIFY */ /*------------------------------------------------------------------------------*/ static gboolean is_past_task_warning_time(TASK_ITEM *item, GUI *appGUI) { if (item->warning_days > 0 || item->warning_time > 0) { guint32 current_date, warning_date; gint current_time, warning_time; current_date = utl_date_get_current_julian(); current_time = utl_time_get_current_seconds(); utl_subtract_from_date(item->due_date_julian, item->due_time, item->warning_days, item->warning_time * 60, &warning_date, &warning_time); if (warning_date < current_date + (warning_time <= current_time) ? 1 : 0) { if (item->repeat == TRUE && item->offline_ignore == TRUE) { if (warning_date < appGUI->run_date + (warning_time < appGUI->run_time) ? 1 : 0) { return FALSE; } } return TRUE; } } return FALSE; } static gboolean is_past_task_due_time(TASK_ITEM *item) { return utl_date_time_in_the_past_js (item->due_date_julian, item->due_time); } /*------------------------------------------------------------------------------*/ static gboolean is_show_warning_notification(TASK_ITEM *item, GUI *appGUI) { if (tsk_check_notification_id(item->id, NOTIFY_WARNING, appGUI)) { return FALSE; } else if (item->done) { return FALSE; } else { return is_past_task_warning_time(item, appGUI); } } /*------------------------------------------------------------------------------*/ static gboolean is_show_task_notification(TASK_ITEM *item, GUI *appGUI) { if (!item->active) { return FALSE; } else if (item->done) { return FALSE; } else if (item->due_date_julian == 0 || tsk_check_notification_id(item->id, NOTIFY_ALARM, appGUI)) { return FALSE; } return is_past_task_due_time(item); } /*------------------------------------------------------------------------------*/ static gboolean is_delete_task_notification(TASK_ITEM *item, GUI *appGUI) { if(item->done) { return TRUE; } else if(!is_past_task_due_time(item) && !is_past_task_warning_time(item, appGUI)) { return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBNOTIFY static gboolean is_show_postponed_notification(TASK_NTF *notification) { guint32 current_date; gint current_time; if (notification->type == NOTIFY_WARNING) { return FALSE; } current_date = utl_date_get_current_julian(); current_time = utl_time_get_current_seconds(); if ((g_date_valid_julian(notification->date) && utl_time_valid_seconds(notification->time)) == FALSE) { return FALSE; } if (utl_date_time_compare_js(notification->date, notification->time, current_date, current_time) <= 0) { return TRUE; } return FALSE; } static NotifyNotification * create_notify_notification(TASK_ITEM *item, const char *summary, const char *body, GUI *appGUI) { NotifyNotification *notification; #ifdef HAVE_LIBNOTIFY7 notification = notify_notification_new(summary, body, "dialog-warning"); #else notification = notify_notification_new(summary, body, "dialog-warning", NULL); #endif /* HAVE_LIBNOTIFY7 */ notify_notification_set_timeout(notification, NOTIFY_EXPIRES_NEVER); switch (tsk_get_priority_index(item->priority)) { case LOW_PRIORITY: notify_notification_set_urgency(notification, NOTIFY_URGENCY_LOW); break; case MEDIUM_PRIORITY: notify_notification_set_urgency(notification, NOTIFY_URGENCY_NORMAL); break; case HIGH_PRIORITY: notify_notification_set_urgency(notification, NOTIFY_URGENCY_CRITICAL); break; } if (item->postpone_time > 0) { notify_notification_add_action(notification, "postpone", _("Remind me later"), (NotifyActionCallback) tsk_postpone_notify_cb, appGUI, NULL); } if (tsk_get_category_state(item->category, STATE_TASKS, appGUI) == TRUE) { notify_notification_add_action(notification, "show_task", _("Show task"), (NotifyActionCallback) tsk_show_task_cb, appGUI, NULL); } notify_notification_add_action(notification, "done", _("Done"), (NotifyActionCallback) tsk_done_cb, appGUI, NULL); return notification; } static TASK_NTF * create_task_notification(TASK_ITEM *item, GUI *appGUI) { TASK_NTF * notification = g_malloc(sizeof (TASK_NTF)); gchar *date, *date_formatted; notification->id = item->id; notification->type = NOTIFY_ALARM; notification->time = -1; notification->date = 0; date = utl_date_time_print_default(item->due_date_julian, item->due_time, FALSE); date_formatted = g_strdup_printf("%s", date); if (item->desc != NULL && strlen(item->desc)) { gchar *text = g_strdup_printf("%s\n%.100s", date_formatted, item->desc); notification->notify = create_notify_notification(item, item->summary, text, appGUI); g_free(text); } else { notification->notify = create_notify_notification(item, item->summary, date_formatted, appGUI); } g_free(date); g_free(date_formatted); return notification; } static TASK_NTF * create_task_warning(TASK_ITEM *item, GUI *appGUI) { TASK_NTF * notification = g_malloc(sizeof (TASK_NTF)); gchar *date, *summary; notification->id = item->id; notification->type = NOTIFY_WARNING; notification->time = -1; notification->date = 0; date = utl_date_time_print_default(item->due_date_julian, item->due_time, FALSE); summary = g_strdup_printf("%s\n%s", item->summary, date); if (item->desc != NULL && strlen(item->desc)) { gchar *text = g_strdup_printf("%s\n%.100s", summary, item->desc); #ifdef HAVE_LIBNOTIFY7 notification->notify = notify_notification_new(_("Alarm warning!"), text, "dialog-information"); #else notification->notify = notify_notification_new(_("Alarm warning!"), textdesc, "dialog-information", NULL); #endif /* HAVE_LIBNOTIFY7 */ g_free(text); } else { #ifdef HAVE_LIBNOTIFY7 notification->notify = notify_notification_new(_("Alarm warning!"), summary, "dialog-information"); #else notification->notify = notify_notification_new(_("Alarm warning!"), text, "dialog-information", NULL); #endif /* HAVE_LIBNOTIFY7 */ } notify_notification_set_timeout(notification->notify, NOTIFY_EXPIRES_NEVER); notify_notification_set_urgency(notification->notify, NOTIFY_URGENCY_NORMAL); if (tsk_get_category_state(item->category, STATE_TASKS, appGUI) == TRUE) notify_notification_add_action(notification->notify, "show_task", _("Show task"), (NotifyActionCallback) tsk_show_task_cb, appGUI, NULL); g_free(date); g_free(summary); return notification; } static void update_postponed_notification(TASK_NTF *a, TASK_ITEM *item, GUI *appGUI) { gchar *date, *date_formatted, *title; a->date = 0; a->time = -1; date = utl_date_time_print_default(item->due_date_julian, item->due_time, FALSE); date_formatted = g_strdup_printf("%s", date); title = g_strdup_printf("%s (%s)", item->summary, _("postponed")); if (item->desc != NULL && strlen(item->desc)) { gchar *text = g_strdup_printf("%s\n%.100s", date_formatted, item->desc); a->notify = create_notify_notification(item, title, text, appGUI); g_free(text); } else { a->notify = create_notify_notification(item, title, date_formatted, appGUI); } g_free(title); g_free(date); g_free(date_formatted); } #endif /* HAVE_LIBNOTIFY */ /*------------------------------------------------------------------------------*/ static void warn_task(TASK_ITEM *item, gboolean play_sound, GUI *appGUI) { tsk_status_icon_set_task(appGUI); if (item->sound_enable && play_sound) { utl_play_alarm_sound(config.sound_alarm_repeat); } } static void notify_task(TASK_ITEM *item, gboolean play_sound, GUI *appGUI) { if (item->alarm_command != NULL) { if (strlen(item->alarm_command)) { gui_save_data_and_run_command(item->alarm_command, appGUI); } } if (strlen(config.global_notification_command)) { gui_save_data_and_run_command(config.global_notification_command, appGUI); } warn_task(item, play_sound, appGUI); } #ifdef HAVE_LIBNOTIFY static void show_task_notification(TASK_NTF *notification, gboolean notification_enabled, gboolean new_notification, GUI *appGUI) { if (new_notification) { /* Delete alarm warning */ delete_task_notification(notification->id, appGUI); } if (notification_enabled) { GError *err = NULL; if (!notify_notification_show(notification->notify, &err)) { g_warning("Failed to send notification: %s", err->message); return; } } if (new_notification) { appGUI->tsk->notifications = g_slist_prepend(appGUI->tsk->notifications, notification); } } #endif /* HAVE_LIBNOTIFY */ /*------------------------------------------------------------------------------*/ static gboolean check_task_notification(TASK_ITEM *item, gboolean play_sound, GUI *appGUI) { #ifdef HAVE_LIBNOTIFY TASK_NTF *notification; #endif /* HAVE_LIBNOTIFY */ if (!appGUI->tsk->notifications_enable) { return FALSE; } if (item == NULL) { return FALSE; } #ifdef HAVE_LIBNOTIFY if (get_task_notification(item->id, appGUI) == NULL) { #endif /* HAVE_LIBNOTIFY */ if (is_show_task_notification(item, appGUI)) { notify_task(item, play_sound, appGUI); #ifdef HAVE_LIBNOTIFY notification = create_task_notification(item, appGUI); show_task_notification(notification, item->ndialog_enable, TRUE, appGUI); #endif /* HAVE_LIBNOTIFY */ return TRUE; } else if (is_show_warning_notification(item, appGUI)) { warn_task(item, play_sound, appGUI); #ifdef HAVE_LIBNOTIFY notification = create_task_warning(item, appGUI); show_task_notification(notification, item->ndialog_enable, TRUE, appGUI); #endif /* HAVE_LIBNOTIFY */ return TRUE; } #ifdef HAVE_LIBNOTIFY } else { if (is_delete_task_notification(item, appGUI)) { delete_task_notification(item->id, appGUI); } else { notification = get_task_notification(item->id, appGUI); if (is_show_postponed_notification(notification)) { notify_task(item, play_sound, appGUI); update_postponed_notification(notification, item, appGUI); show_task_notification(notification, item->ndialog_enable, FALSE, appGUI); return TRUE; } } } #endif /* HAVE_LIBNOTIFY */ return FALSE; } /*------------------------------------------------------------------------------*/ void change_task_notification(TASK_ITEM *item, GUI *appGUI) { check_task_notification(item, TRUE, appGUI); } /*------------------------------------------------------------------------------*/ static void notify_tasks(GUI *appGUI) { GtkTreeIter iter; TASK_ITEM *item; gint i = 0; gboolean play_sound = TRUE; if (appGUI->tsk->notifications_enable == FALSE) { return; } while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { gboolean task_notified; item = tsk_get_item(&iter, appGUI); task_notified = check_task_notification(item, play_sound, appGUI); play_sound = play_sound && !task_notified; tsk_item_free(item); } } /*------------------------------------------------------------------------------*/ static void ignore_offline_tasks(GUI *appGUI) { GtkTreeIter iter; TASK_ITEM *item; gint i = 0; guint32 now_date = utl_date_get_current_julian (); gint now_time = utl_time_get_current_seconds (); while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, NULL, i++)) { item = tsk_get_item(&iter, appGUI); if (item->repeat == TRUE && item->offline_ignore == TRUE) { if (utl_date_time_compare_js(item->due_date_julian, item->due_time, now_date, now_time) < 0) { tasks_repeat_done(&iter, item, appGUI); } } tsk_item_free(item); } } /*------------------------------------------------------------------------------*/ void delete_task_notification(guint id, GUI *appGUI) { #ifdef HAVE_LIBNOTIFY TASK_NTF *a = get_task_notification(id, appGUI); if (a != NULL) { GError *err = NULL; if(!notify_notification_close(a->notify, &err)) { g_warning("Failed to close notification: %s", err->message); } appGUI->tsk->notifications = g_slist_remove(appGUI->tsk->notifications, a); g_free(a); } #endif /* HAVE_LIBNOTIFY */ } #endif /* TASKS_ENABLED */ /*------------------------------------------------------------------------------*/ static void refresh_calendar(GUI *appGUI) { if (appGUI->current_tab == PAGE_CALENDAR) { /* redraw calendar to move the Today marker */ gtk_widget_queue_draw(appGUI->cal->calendar); } } /*------------------------------------------------------------------------------*/ gboolean time_handler (gpointer data) { static gint32 minute = -1; static guint32 last_refresh_date = 0; GUI *appGUI = data; gint32 current_minute; guint32 current_date; if (config.di_show_current_time_seconds == TRUE) { update_clock (appGUI); } current_minute = get_absolute_minute (); current_date = utl_date_get_current_julian (); if (minute != current_minute) { #ifdef TASKS_ENABLED if (current_minute - minute > 1) { // the program just started or resumed from suspend ignore_offline_tasks(appGUI); } notify_tasks(appGUI); #endif /* TASKS_ENABLED */ minute = current_minute; if (config.di_show_current_time_seconds == FALSE) { update_clock (appGUI); } gui_systray_tooltip_update (appGUI); } if (current_date != last_refresh_date) { #ifdef TASKS_ENABLED refresh_tasks (appGUI); #endif /* TASKS_ENABLED */ refresh_calendar(appGUI); /* update systray status */ gui_systray_update_icon (appGUI); last_refresh_date = current_date; } return TRUE; } /*------------------------------------------------------------------------------*/ gboolean check_tasks_contacts (guint32 julian_day, GUI *appGUI) { if (appGUI->calendar_only == TRUE || appGUI->all_pages_added == FALSE) { return FALSE; } #ifdef CONTACTS_ENABLED /* check contacts */ if (check_contacts (julian_day, appGUI) == TRUE) { return TRUE; } #endif /* CONTACTS_ENABLED */ #ifdef TASKS_ENABLED /* check tasks */ return tsk_check_tasks (julian_day, julian_day, STATE_CALENDAR, appGUI); #else return FALSE; #endif /* TASKS_ENABLED */ } /*------------------------------------------------------------------------------*/ #ifdef CONTACTS_ENABLED gboolean check_contacts (guint32 julian_day, GUI *appGUI) { GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; GDate *date = NULL; guint32 julian; gint age, year, flag; model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_val_if_fail (model != NULL, FALSE); date = g_date_new (); g_return_val_if_fail (date != NULL, FALSE); year = julian_to_year (julian_day); flag = FALSE; path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_BIRTH_DAY_DATE, &julian, -1); if (g_date_valid_julian (julian) == TRUE) { g_date_set_julian (date, julian); age = year - g_date_get_year (date); if (age >= 0) { if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), year) == FALSE) { g_date_subtract_days (date, 1); } g_date_set_year (date, year); julian = g_date_get_julian (date); if (julian_day == julian) { flag = TRUE; break; } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (date); return flag; } #endif /* CONTACTS_ENABLED */ /*------------------------------------------------------------------------------*/ void button_event_checker_window_delete_cb (GtkButton *button, gpointer user_data) {} void button_event_checker_window_close_cb (GtkButton *button, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_widget_destroy (appGUI->event_checker_window); gui_quit_osmo (appGUI); } /*------------------------------------------------------------------------------*/ void button_event_checker_show_osmo_window_cb (GtkButton *button, gpointer user_data) { GUI *appGUI = (GUI *)user_data; appGUI->check_events = FALSE; gtk_widget_destroy (appGUI->event_checker_window); gui_systray_initialize (appGUI); gtk_widget_show (appGUI->main_window); gtk_window_move (GTK_WINDOW (appGUI->main_window), config.window_x, config.window_y); } /*------------------------------------------------------------------------------*/ void event_checker_select_item (GUI *appGUI) { GtkTreeIter iter; GtkTreeModel *model; guint32 julian_day; GDate *date; date = g_date_new (); g_return_if_fail (date != NULL); if (gtk_tree_selection_get_selected (appGUI->event_checker_list_selection, &model, &iter)) { gtk_tree_model_get (model, &iter, CE_COLUMN_DATE_JULIAN, &julian_day, -1); if (g_date_valid_julian (julian_day) == TRUE) { g_date_set_julian (date, julian_day); cal_jump_to_date (date, appGUI); update_aux_calendars (appGUI); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_CALENDAR); button_event_checker_show_osmo_window_cb (NULL, appGUI); } } g_date_free (date); } /*------------------------------------------------------------------------------*/ gint event_checker_list_dbclick_cb(GtkWidget * widget, GdkEventButton * event, gpointer func_data) { GUI *appGUI = (GUI *)func_data; if ((event->type==GDK_2BUTTON_PRESS) && (event->button == 1)) { event_checker_select_item (appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint event_checker_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Return: event_checker_select_item (appGUI); return TRUE; case GDK_KEY_Escape: button_event_checker_window_close_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ static gboolean add_note_to_event_window (struct note *n, GUI *appGUI) { GtkTreeIter iter; gchar *note_str, *date_str, *stripped; note_str = cal_note_remove_empty_lines (n->note); stripped = utl_gui_text_strip_tags (note_str); g_free (note_str); date_str = g_strdup_printf ("%s\n(%s)", julian_to_str (n->date, config.date_format, config.override_locale_settings), utl_get_julian_day_name (n->date)); gtk_list_store_append (appGUI->event_checker_list_store, &iter); gtk_list_store_set (appGUI->event_checker_list_store, &iter, CE_COLUMN_DATE, date_str, CE_COLUMN_DATE_JULIAN, n->date, CE_COLUMN_EVENT_TYPE, _("Day note"), CE_COLUMN_EVENT_LINE, stripped, -1); g_free (stripped); g_free (date_str); return TRUE; } /*------------------------------------------------------------------------------*/ gboolean create_event_checker_window (GUI *appGUI) { GtkWidget *scrolledwindow; GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *close_button; GtkWidget *show_osmo_button; GtkTreeViewColumn *column, *julian_day_column; GtkCellRenderer *renderer; #if defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) GtkTreePath *path; GtkTreeIter iter; gchar date_str[BUFFER_SIZE]; guint32 j; #endif guint32 start_date, current_date; gboolean day_notes_flag, tasks_flag = FALSE; #ifdef TASKS_ENABLED gchar *summary, *category; guint32 julian_day; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED gboolean birthdays_flag; guint32 date; gint32 age; GDate *new_cdate; gchar tmpbuf[BUFFER_SIZE], template[BUFFER_SIZE]; gchar *first_name, *last_name; #endif /* CONTACTS_ENABLED */ start_date = config.lastrun_date; /* - */ current_date = utl_date_get_current_julian () + appGUI->check_ndays_events; /* + */ /* check day notes */ day_notes_flag = cal_check_notes (start_date, current_date, appGUI); #ifdef TASKS_ENABLED /* check tasks */ tasks_flag = FALSE; if (appGUI->tsk->tasks_list_store != NULL) { path = gtk_tree_path_new_first(); while (gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, path) == TRUE) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_DUE_DATE_JULIAN, &julian_day, TA_COLUMN_CATEGORY, &category, -1); j = start_date; while (j <= current_date) { if (j == julian_day && (tsk_get_category_state (category, STATE_EITHER, appGUI) == TRUE)) { tasks_flag = TRUE; break; } j++; }; if (tasks_flag == TRUE) { g_free (category); break; } g_free (category); gtk_tree_path_next(path); } gtk_tree_path_free(path); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* check birthdays */ birthdays_flag = FALSE; if (appGUI->cnt->contacts_list_store != NULL) { path = gtk_tree_path_new_first(); while (gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, path) == TRUE) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, COLUMN_BIRTH_DAY_DATE, &date, -1); if (date != 0) { new_cdate = g_date_new_julian (date); if (new_cdate != NULL) { age = g_date_get_year (appGUI->cal->date) - g_date_get_year (new_cdate); if (age >= 0) { j = start_date; while (j <= current_date) { g_date_set_year (new_cdate, julian_to_year(j)); date = g_date_get_julian (new_cdate); if (j == date) { birthdays_flag = TRUE; break; } j++; }; } g_date_free(new_cdate); } } if (birthdays_flag == TRUE) break; gtk_tree_path_next(path); } gtk_tree_path_free(path); } #endif /* CONTACTS_ENABLED */ /* any events available ? */ #ifdef CONTACTS_ENABLED if (day_notes_flag == FALSE && tasks_flag == FALSE && birthdays_flag == FALSE) { #else if (day_notes_flag == FALSE && tasks_flag == FALSE) { #endif /* CONTACTS_ENABLED */ return FALSE; /* if not then quit */ } appGUI->event_checker_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->event_checker_window), _("Events")); gtk_window_set_position (GTK_WINDOW (appGUI->event_checker_window), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW(appGUI->event_checker_window), 750, 650); gtk_window_set_modal (GTK_WINDOW (appGUI->event_checker_window), TRUE); g_signal_connect (G_OBJECT (appGUI->event_checker_window), "delete_event", G_CALLBACK(button_event_checker_window_delete_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->event_checker_window), "key_press_event", G_CALLBACK (event_checker_key_press_cb), appGUI); gtk_container_set_border_width (GTK_CONTAINER (appGUI->event_checker_window), 8); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->event_checker_window), vbox1); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); appGUI->event_checker_list_store = gtk_list_store_new (CHECK_EVENTS_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING); appGUI->event_checker_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(appGUI->event_checker_list_store)); gtk_widget_show (appGUI->event_checker_list); gtk_widget_set_can_default (appGUI->event_checker_list, TRUE); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->event_checker_list); g_signal_connect(G_OBJECT(appGUI->event_checker_list), "button_press_event", G_CALLBACK(event_checker_list_dbclick_cb), appGUI); appGUI->event_checker_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->event_checker_list)); /* create columns */ renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes (_("Date"), renderer, "text", CE_COLUMN_DATE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->event_checker_list), column); renderer = gtk_cell_renderer_text_new(); g_object_set (G_OBJECT(renderer), "xpad", 8, NULL); julian_day_column = gtk_tree_view_column_new_with_attributes ("Julian", renderer, "text", CE_COLUMN_DATE_JULIAN, NULL); gtk_tree_view_column_set_visible (julian_day_column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->event_checker_list), julian_day_column); gtk_tree_view_column_set_sort_column_id (julian_day_column, CE_COLUMN_DATE_JULIAN); renderer = gtk_cell_renderer_text_new(); g_object_set (G_OBJECT(renderer), "xpad", 8, NULL); column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, "text", CE_COLUMN_EVENT_TYPE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->event_checker_list), column); renderer = gtk_cell_renderer_text_new(); g_object_set (G_OBJECT(renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL); column = gtk_tree_view_column_new_with_attributes (_("Event"), renderer, "text", CE_COLUMN_EVENT_LINE, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW(appGUI->event_checker_list), column); /* insert day notes */ if (day_notes_flag == TRUE) { cal_notes_foreach (start_date, current_date, add_note_to_event_window, appGUI); } #ifdef TASKS_ENABLED /* insert tasks */ if (tasks_flag == TRUE) { path = gtk_tree_path_new_first(); while (gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, path) == TRUE) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->tsk->tasks_list_store), &iter, TA_COLUMN_DUE_DATE_JULIAN, &julian_day, TA_COLUMN_SUMMARY, &summary, TA_COLUMN_CATEGORY, &category, -1); j = start_date; while (j <= current_date) { if (j == julian_day && (tsk_get_category_state (category, STATE_EITHER, appGUI) == TRUE)) { gtk_list_store_append(appGUI->event_checker_list_store, &iter); g_snprintf (date_str, BUFFER_SIZE, "%s\n(%s)", julian_to_str (julian_day, config.date_format, config.override_locale_settings), utl_get_julian_day_name (julian_day)); gtk_list_store_set(appGUI->event_checker_list_store, &iter, CE_COLUMN_DATE, date_str, CE_COLUMN_DATE_JULIAN, julian_day, CE_COLUMN_EVENT_TYPE, _("Task"), CE_COLUMN_EVENT_LINE, summary, -1); } j++; }; g_free (summary); g_free (category); gtk_tree_path_next(path); } gtk_tree_path_free(path); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* insert birthdays */ if (birthdays_flag == TRUE) { g_snprintf(template, BUFFER_SIZE, "(%s)", _("None")); path = gtk_tree_path_new_first(); while (gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, path) == TRUE) { gtk_tree_model_get (GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, COLUMN_BIRTH_DAY_DATE, &date, COLUMN_FIRST_NAME, &first_name, COLUMN_LAST_NAME, &last_name, -1); if (date != 0) { new_cdate = g_date_new_julian (date); if (new_cdate != NULL) { age = g_date_get_year (appGUI->cal->date) - g_date_get_year(new_cdate); if (age >= 0) { j = start_date; while (j <= current_date) { g_date_set_year (new_cdate, julian_to_year(j)); date = g_date_get_julian (new_cdate); if (j == date) { if (g_utf8_collate(first_name, template) == 0) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s", last_name); } else if (g_utf8_collate(last_name, template) == 0) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s", first_name); } else { g_snprintf(tmpbuf, BUFFER_SIZE, "%s %s", first_name, last_name); } gtk_list_store_append(appGUI->event_checker_list_store, &iter); g_snprintf(date_str, BUFFER_SIZE, "%s\n(%s)", julian_to_str (j, config.date_format, config.override_locale_settings), utl_get_julian_day_name (j)); gtk_list_store_set(appGUI->event_checker_list_store, &iter, CE_COLUMN_DATE, date_str, CE_COLUMN_DATE_JULIAN, j, CE_COLUMN_EVENT_TYPE, _("Birthday"), CE_COLUMN_EVENT_LINE, tmpbuf, -1); } j++; }; } g_date_free(new_cdate); } } g_free(first_name); g_free(last_name); gtk_tree_path_next(path); } gtk_tree_path_free(path); } #endif /* CONTACTS_ENABLED */ g_signal_emit_by_name(julian_day_column, "clicked"); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 8); show_osmo_button = gtk_button_new_with_label (_("Show Osmo")); gtk_widget_show (show_osmo_button); gtk_widget_set_can_focus(show_osmo_button, FALSE); g_signal_connect(show_osmo_button, "clicked", G_CALLBACK(button_event_checker_show_osmo_window_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), show_osmo_button); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); gtk_widget_set_can_focus(close_button, FALSE); g_signal_connect(close_button, "clicked", G_CALLBACK(button_event_checker_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), close_button); gtk_widget_show(appGUI->event_checker_window); return TRUE; } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_birthdays.c0000664000175000017500000003432413066543472014257 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "contacts_birthdays.h" #include "i18n.h" #include "calendar.h" #include "contacts.h" #include "calendar_notes.h" #include "options_prefs.h" #include "stock_icons.h" #include "calendar_utils.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #ifdef CONTACTS_ENABLED /*------------------------------------------------------------------------------*/ void birthdays_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_window_get_size (GTK_WINDOW(appGUI->cnt->birthdays_window), &config.contacts_birthdays_win_w, &config.contacts_birthdays_win_h); gtk_widget_destroy (appGUI->cnt->birthdays_window); } /*------------------------------------------------------------------------------*/ void button_birthdays_window_close_cb (GtkButton *button, gpointer user_data) { birthdays_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint birthdays_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { switch (event->keyval) { case GDK_KEY_Escape: birthdays_window_close_cb (NULL, NULL, user_data); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint birthdays_list_dbclick_cb (GtkWidget * widget, GdkEventButton * event, gpointer user_data) { GtkTreeIter iter; GtkTreeModel *model, *contacts_model; GtkTreePath *sort_path, *filter_path, *path; gint id, id_c; GUI *appGUI = (GUI *) user_data; contacts_model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); if (((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) == FALSE) return FALSE; if (gtk_tree_selection_get_selected (appGUI->cnt->birthdays_list_selection, &model, &iter)) { if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->cnt->contacts_find_entry)))) { gtk_entry_set_text (GTK_ENTRY (appGUI->cnt->contacts_find_entry), ""); gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (appGUI->cnt->contacts_filter)); } gtk_tree_model_get (model, &iter, B_COLUMN_ID, &id, -1); gtk_widget_destroy (appGUI->cnt->birthdays_window); contacts_selection_activate (FALSE, appGUI); if (gtk_tree_model_get_iter_first (contacts_model, &iter) == TRUE) { sort_path = gtk_tree_model_get_path (contacts_model, &iter); while (sort_path != NULL) { gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), sort_path, NULL, FALSE); filter_path = gtk_tree_model_sort_convert_path_to_child_path (GTK_TREE_MODEL_SORT (appGUI->cnt->contacts_sort), sort_path); if (filter_path != NULL) { path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (appGUI->cnt->contacts_filter), filter_path); if (path != NULL) { gtk_tree_model_get_iter (contacts_model, &iter, path); gtk_tree_model_get (contacts_model, &iter, COLUMN_ID, &id_c, -1); if (id == id_c) { contacts_selection_activate (TRUE, appGUI); gtk_tree_view_set_cursor (GTK_TREE_VIEW (appGUI->cnt->contacts_list), sort_path, NULL, FALSE); gtk_tree_path_free (path); gtk_tree_path_free (filter_path); g_signal_emit_by_name (G_OBJECT (appGUI->cnt->contacts_list_selection), "changed"); break; } gtk_tree_path_free (path); } gtk_tree_path_free (filter_path); } gtk_tree_path_next (sort_path); if (gtk_tree_model_get_iter (contacts_model, &iter, sort_path) == FALSE) break; } gtk_tree_path_free (sort_path); } } return TRUE; } /*------------------------------------------------------------------------------*/ void contacts_create_birthdays_window (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *close_button; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *scrolledwindow; gint i, n, id, age; guint32 date; gchar *text, buffer[BUFFER_SIZE], buff[BUFFER_SIZE]; GtkTreeIter iter, n_iter; GDate *cdate_birthday, *cdate_current; guint b_day, b_month, b_year; guint c_day, c_month, c_year; gboolean flag, leap; cdate_birthday = g_date_new (); g_return_if_fail (cdate_birthday != NULL); cdate_current = g_date_new (); g_return_if_fail (cdate_current != NULL); i = n = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, COLUMN_BIRTH_DAY_DATE, &date, -1); if (date) n++; } if (n == 0) { utl_gui_create_dialog (GTK_MESSAGE_INFO, _("No birthdays defined"), GTK_WINDOW (appGUI->main_window)); return; } appGUI->cnt->birthdays_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cnt->birthdays_window), _("Birthdays list")); gtk_window_set_position (GTK_WINDOW (appGUI->cnt->birthdays_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW (appGUI->cnt->birthdays_window), config.contacts_birthdays_win_w, config.contacts_birthdays_win_h); gtk_window_set_modal (GTK_WINDOW (appGUI->cnt->birthdays_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cnt->birthdays_window), "delete_event", G_CALLBACK (birthdays_window_close_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->cnt->birthdays_window), GTK_WINDOW (appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->birthdays_window), 8); g_signal_connect (G_OBJECT (appGUI->cnt->birthdays_window), "key_press_event", G_CALLBACK (birthdays_key_press_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cnt->birthdays_window), vbox1); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); appGUI->cnt->birthdays_list_store = gtk_list_store_new (BIRTHDAYS_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); appGUI->cnt->birthdays_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->cnt->birthdays_list_store)); gtk_widget_show (appGUI->cnt->birthdays_list); gtk_widget_set_can_default (appGUI->cnt->birthdays_list, TRUE); gtk_container_add (GTK_CONTAINER (scrolledwindow), appGUI->cnt->birthdays_list); appGUI->cnt->birthdays_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (appGUI->cnt->birthdays_list)); g_signal_connect (G_OBJECT (appGUI->cnt->birthdays_list), "button_press_event", G_CALLBACK (birthdays_list_dbclick_cb), appGUI); /* create columns */ renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "xpad", 8, NULL); column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", B_COLUMN_NAME, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); gtk_tree_view_column_set_sort_column_id (column, B_COLUMN_NAME); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Days to birthday"), renderer, "text", B_COLUMN_DAYS_NUM, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "xalign", 1.0, NULL); g_object_set (G_OBJECT (renderer), "xpad", 8, NULL); column = gtk_tree_view_column_new_with_attributes (_("Days to birthday"), renderer, "text", B_COLUMN_DAYS, NULL); gtk_tree_view_column_set_visible (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); gtk_tree_view_column_set_sort_column_id (column, B_COLUMN_DAYS_NUM); g_signal_emit_by_name (column, "clicked"); column = gtk_tree_view_column_new_with_attributes (_("Age"), renderer, "text", B_COLUMN_AGE, NULL); gtk_tree_view_column_set_visible (column, config.cnt_visible_age_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); gtk_tree_view_column_set_sort_column_id (column, B_COLUMN_AGE); column = gtk_tree_view_column_new_with_attributes (_("Birthday date"), renderer, "text", B_COLUMN_DATE, NULL); gtk_tree_view_column_set_visible (column, config.cnt_visible_birthday_date_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Zodiac sign"), renderer, "text", B_COLUMN_ZODIAC, NULL); gtk_tree_view_column_set_visible (column, config.cnt_visible_zodiac_sign_column); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("ID", renderer, "text", B_COLUMN_ID, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), column); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (appGUI->cnt->birthdays_list), FALSE); i = 0; g_date_set_julian (cdate_current, utl_date_get_current_julian ()); c_day = g_date_get_day (cdate_current); c_month = g_date_get_month (cdate_current); c_year = g_date_get_year (cdate_current); while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, COLUMN_BIRTH_DAY_DATE, &date, -1); if (g_date_valid_julian (date)) { /* calculate age */ g_date_set_julian (cdate_birthday, date); b_day = g_date_get_day (cdate_birthday); b_month = g_date_get_month (cdate_birthday); b_year = g_date_get_year (cdate_birthday); age = (gint) c_year - b_year; if (b_month < c_month || (b_month == c_month && b_day < c_day)) age++; if (age < 1) continue; /* name */ flag = FALSE; g_snprintf (buff, BUFFER_SIZE, "(%s)", _("None")); gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, COLUMN_LAST_NAME, &text, -1); if (text != NULL) { flag = TRUE; if (strcmp (text, buff) == 0) { text[0] = '\0'; flag = FALSE; } g_strlcpy (buffer, text, BUFFER_SIZE); g_free (text); } gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, COLUMN_FIRST_NAME, &text, -1); if (text != NULL) { if (strcmp (text, buff) == 0) { text[0] = '\0'; } if (flag == TRUE) { g_strlcat (buffer, " ", BUFFER_SIZE); g_strlcat (buffer, text, BUFFER_SIZE); } else { g_strlcpy (buffer, text, BUFFER_SIZE); } g_free (text); } gtk_tree_model_get (GTK_TREE_MODEL (appGUI->cnt->contacts_list_store), &iter, COLUMN_ID, &id, -1); gtk_list_store_append (appGUI->cnt->birthdays_list_store, &n_iter); gtk_list_store_set (appGUI->cnt->birthdays_list_store, &n_iter, B_COLUMN_ID, id, B_COLUMN_NAME, buffer, B_COLUMN_AGE, age, -1); /* calculate days to birthday */ b_year = c_year; if ((b_month < c_month) || (b_month == c_month && b_day < c_day)) b_year++; leap = FALSE; if (g_date_valid_dmy (b_day, b_month, b_year) == FALSE) { g_date_set_day (cdate_birthday, b_day - 1); leap = TRUE; } g_date_set_year (cdate_birthday, b_year); date = g_date_days_between (cdate_current, cdate_birthday); if (date == 0) { g_snprintf (buffer, BUFFER_SIZE, "%s", _("today")); } else { g_snprintf (buffer, BUFFER_SIZE, leap ? "%d + 1" : "%d", date); } g_date_strftime (buff, BUFFER_SIZE, "%A, ", cdate_birthday); g_strlcat (buff, julian_to_str (g_date_get_julian (cdate_birthday), config.date_format, config.override_locale_settings), BUFFER_SIZE); gtk_list_store_set (appGUI->cnt->birthdays_list_store, &n_iter, B_COLUMN_DAYS_NUM, date, B_COLUMN_DAYS, buffer, B_COLUMN_DATE, buff, B_COLUMN_ZODIAC, utl_get_zodiac_name (b_day, b_month), -1); } } g_date_free (cdate_birthday); g_date_free (cdate_current); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); close_button = gtk_button_new_with_mnemonic (_("_Close")); gtk_widget_show (close_button); g_signal_connect (close_button, "clicked", G_CALLBACK (button_birthdays_window_close_cb), appGUI); gtk_container_add (GTK_CONTAINER (hbuttonbox), close_button); gtk_widget_show (appGUI->cnt->birthdays_window); gtk_widget_grab_focus (close_button); } /*------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/calendar_print.c0000664000175000017500000007726113070073542013353 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_notes.h" #include "calendar_widget.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "tasks_utils.h" #include "utils.h" #include "utils_gui.h" #ifdef PRINTING_SUPPORT /*------------------------------------------------------------------------------*/ void window_cal_print_opt_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; gtk_widget_destroy (appGUI->cal->window_print_options); } /*------------------------------------------------------------------------------*/ void window_button_cal_print_opt_close_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; window_cal_print_opt_close_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ gint cal_print_opt_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { GUI *appGUI = (GUI *) user_data; if (event->keyval == GDK_KEY_Escape) { window_cal_print_opt_close_cb (widget, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void calendar_begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { GUI *appGUI = (GUI *) user_data; GtkPageSetup *setup; if (config.cal_print_page_orientation == LANDSCAPE) { setup = gtk_page_setup_new (); gtk_page_setup_set_orientation (setup, GTK_PAGE_ORIENTATION_LANDSCAPE); gtk_print_operation_set_default_page_setup (operation, setup); g_object_unref (setup); } appGUI->print_lines_per_page = 1; appGUI->print_nlines = 1; appGUI->print_npages = 1; gtk_print_operation_set_n_pages (operation, appGUI->print_npages); } /*------------------------------------------------------------------------------*/ void cal_print_get_events (gchar *buffer, guint32 julian, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *model; GSList *lnode; struct note *a; gint i; gchar *wbuf1, *wbuf2, *stripped; gchar buf1[BUFFER_SIZE]; #ifdef CONTACTS_ENABLED GDate *date, *sdate; gint syear; #endif /* CONTACTS_ENABLED */ guint32 tsk_julian; gint time; gint max_event_length; GRegex *reg; buffer[0] = '\0'; max_event_length = (config.cal_print_event_length + 2 > BUFFER_SIZE) ? BUFFER_SIZE : config.cal_print_event_length + 2; #ifdef TASKS_ENABLED /* tasks */ if (config.cal_print_tasks) { model = GTK_TREE_MODEL (appGUI->tsk->tasks_list_store); g_return_if_fail (model != NULL); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_DATE_JULIAN, &tsk_julian, TA_COLUMN_CATEGORY, &wbuf1, -1); if (tsk_julian == julian && tsk_get_category_state (wbuf1, STATE_CALENDAR, appGUI) == TRUE) { gtk_tree_model_get (model, &iter, TA_COLUMN_DUE_TIME, &time, TA_COLUMN_SUMMARY, &wbuf2, -1); if (time >= 0) { g_snprintf (buf1, max_event_length, "\n[%02d:%02d] %s", time / 3600, time / 60 % 60, wbuf2); } else { g_snprintf (buf1, max_event_length, "\n%s", wbuf2); } g_strlcat (buffer, buf1, BUFFER_SIZE); g_free (wbuf2); } g_free (wbuf1); gtk_tree_path_next (path); } gtk_tree_path_free (path); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /* birthdays */ if (config.cal_print_birthdays) { model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_if_fail (model != NULL); date = g_date_new (); g_return_if_fail (date != NULL); sdate = g_date_new_julian (julian); g_return_if_fail (sdate != NULL); syear = g_date_get_year (sdate); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_BIRTH_DAY_DATE, &tsk_julian, -1); if (g_date_valid_julian (tsk_julian)) { gint age; g_date_set_julian (date, tsk_julian); age = syear - g_date_get_year (date); if (age >= 0) { if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), syear) == FALSE) { g_date_subtract_days (date, 1); } g_date_set_year (date, syear); if (g_date_compare (date, sdate) == 0) { gchar buf2[BUFFER_SIZE]; gtk_tree_model_get (model, &iter, COLUMN_FIRST_NAME, &wbuf1, COLUMN_LAST_NAME, &wbuf2, -1); utl_name_strcat (wbuf1, wbuf2, buf2); g_snprintf (buf1, max_event_length, "\n%s (%d)", buf2, age); g_strlcat (buffer, buf1, BUFFER_SIZE); } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (sdate); g_date_free (date); } /* name days */ if (config.cal_print_namedays) { model = GTK_TREE_MODEL (appGUI->cnt->contacts_list_store); g_return_if_fail (model != NULL); date = NULL; date = g_date_new (); g_return_if_fail (date != NULL); sdate = NULL; sdate = g_date_new_julian (julian); g_return_if_fail (sdate != NULL); syear = g_date_get_year (sdate); path = gtk_tree_path_new_first (); while (gtk_tree_model_get_iter (model, &iter, path) == TRUE) { gtk_tree_model_get (model, &iter, COLUMN_NAME_DAY_DATE, &tsk_julian, -1); if (g_date_valid_julian (tsk_julian)) { g_date_set_julian (date, tsk_julian); if (g_date_valid_dmy (g_date_get_day (date), g_date_get_month (date), syear) == TRUE) { g_date_set_year (date, syear); if (g_date_compare (date, sdate) == 0) { gchar buf2[BUFFER_SIZE]; gtk_tree_model_get (model, &iter, COLUMN_FIRST_NAME, &wbuf1, COLUMN_LAST_NAME, &wbuf2, -1); utl_name_strcat (wbuf1, wbuf2, buf1); g_snprintf (buf2, max_event_length, "\n%s (%s)", buf1, _("Name day")); g_strlcat (buffer, buf2, BUFFER_SIZE); } } } gtk_tree_path_next (path); } gtk_tree_path_free (path); g_date_free (sdate); g_date_free (date); } #endif /* CONTACTS_ENABLED */ /* day note */ if (config.cal_print_day_notes) { wbuf1 = NULL; if (appGUI->cal->notes_list != NULL) { reg = g_regex_new ("\n", 0, 0, NULL); for (i = 0, lnode = appGUI->cal->notes_list; lnode != NULL; lnode = lnode->next, i++) { a = g_slist_nth_data (appGUI->cal->notes_list, i); stripped = utl_gui_text_strip_tags (a->note); if (a->date == julian) { wbuf1 = g_regex_replace_literal (reg, stripped, -1, 0, " ", 0, NULL); g_free (stripped); break; } g_free (stripped); } g_regex_unref (reg); } if (wbuf1 != NULL) { g_strstrip (wbuf1); g_snprintf (buf1, max_event_length, "\n%s", wbuf1); g_strlcat (buffer, buf1, BUFFER_SIZE); g_free (wbuf1); } } #ifdef HAVE_LIBICAL /* ical */ if (config.cal_print_ical) { } #endif /* HAVE_LIBICAL */ g_strstrip (buffer); } /*------------------------------------------------------------------------------*/ void calendar_draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint npage, gpointer user_data) { PangoLayout *layout; PangoFontDescription *month_name_font, *day_name_font, *day_num_font, *event_font; cairo_t *cr; GDate *date; gdouble page_width, page_height, day_width, day_height; gint text_width, text_height, header_height, event_height, mnf_height, dnf_height, duf_height; gint day, month, i, j; guint32 julian; gboolean monday, actual; gchar buffer[BUFFER_SIZE]; gint padding = config.cal_print_padding; GUI *appGUI = (GUI *) user_data; date = g_date_new_julian (g_date_get_julian (appGUI->cal->date)); g_return_if_fail (date != NULL); cr = gtk_print_context_get_cairo_context (context); layout = gtk_print_context_create_pango_layout (context); month_name_font = pango_font_description_from_string (config.cal_print_month_name_font); day_name_font = pango_font_description_from_string (config.cal_print_day_name_font); day_num_font = pango_font_description_from_string (config.cal_print_day_num_font); event_font = pango_font_description_from_string (config.cal_print_event_font); pango_layout_set_text (layout, "Aj", -1); pango_layout_set_font_description (layout, month_name_font); pango_layout_get_pixel_size (layout, NULL, &mnf_height); mnf_height *= 1.2; pango_layout_set_font_description (layout, day_name_font); pango_layout_get_pixel_size (layout, NULL, &dnf_height); dnf_height *= 1.2; pango_layout_set_font_description (layout, day_num_font); pango_layout_get_pixel_size (layout, NULL, &duf_height); page_width = gtk_print_context_get_width (context); day_width = page_width / 7; page_height = gtk_print_context_get_height (context); header_height = mnf_height + dnf_height; day_height = (page_height - header_height) / 6; event_height = day_height - duf_height - padding * 3; cairo_set_line_width (cr, 1); monday = (config.display_options & GUI_CALENDAR_WEEK_START_MONDAY) ? TRUE : FALSE; /* Month and year */ pango_layout_set_font_description (layout, month_name_font); g_date_strftime (buffer, BUFFER_SIZE, "%B %Y", date); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, NULL); cairo_move_to (cr, (page_width - text_width) / 2, 0); pango_cairo_show_layout (cr, layout); /* Day names */ pango_layout_set_font_description (layout, day_name_font); for (i = 0; i < 7; i++) { g_snprintf (buffer, BUFFER_SIZE, "%s", utl_get_day_name (i + 7 + monday, FALSE)); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_size (layout, &text_width, NULL); cairo_move_to (cr, day_width * i + (day_width - text_width) / 2, mnf_height); pango_cairo_show_layout (cr, layout); } /* Day */ g_date_set_day (date, 1); day = g_date_get_weekday (date); month = g_date_get_month (date); day = monday ? day - 1 : day % 7; if (day > 0) g_date_subtract_days (date, day); day = g_date_get_day (date); julian = g_date_get_julian (date); pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR); pango_layout_set_width (layout, (day_width - padding * 2) * PANGO_SCALE); #ifdef HAVE_PANGO_1_20 pango_layout_set_height (layout, event_height * PANGO_SCALE); #endif /* HAVE_PANGO_1_20 */ pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); pango_layout_set_indent (layout, -4 * PANGO_SCALE); for (i = 0; i < 6; i++) { for (j = 0; j < 7; j++) { actual = (month == g_date_get_month (date)) ? TRUE : FALSE; day = g_date_get_day (date); cairo_rectangle (cr, day_width * j, header_height + day_height * i, day_width, day_height); if (actual) { cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); } else { if (config.cal_print_disable_background == FALSE){ cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); } else { cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* disabled background */ } } cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_stroke (cr); pango_layout_set_font_description (layout, day_num_font); if (actual) { cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding); if ((j == 0 && !monday) || (j == 5 && monday) || j == 6) { g_snprintf (buffer, BUFFER_SIZE, "%d", day); } else { g_snprintf (buffer, BUFFER_SIZE, "%d", day); } pango_layout_set_markup (layout, buffer, -1); pango_cairo_show_layout (cr, layout); cal_print_get_events (buffer, julian, appGUI); pango_layout_set_markup (layout, "", -1); pango_layout_set_text (layout, buffer, -1); pango_layout_set_font_description (layout, event_font); pango_layout_get_pixel_size (layout, NULL, &text_height); cairo_move_to (cr, day_width * j + padding, header_height + day_height * (i + 1) - text_height - padding); pango_cairo_show_layout (cr, layout); } else { cairo_move_to (cr, day_width * j + padding, header_height + day_height * i + padding); if (config.cal_print_disable_background == FALSE){ g_snprintf (buffer, BUFFER_SIZE, "%d", day); } else { g_snprintf (buffer, BUFFER_SIZE, "%d", day); /* disabled background */ } pango_layout_set_markup (layout, buffer, -1); pango_cairo_show_layout (cr, layout); } g_date_add_days (date, 1); julian++; } } g_date_free (date); pango_font_description_free (month_name_font); pango_font_description_free (day_name_font); pango_font_description_free (day_num_font); pango_font_description_free (event_font); g_object_unref (layout); } /*------------------------------------------------------------------------------*/ void calendar_print_start_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *) user_data; GtkPrintOperation *print; GtkPrintOperationResult result; GError *error = NULL; gchar buffer[BUFFER_SIZE]; g_strlcpy (config.cal_print_month_name_font, gtk_entry_get_text (GTK_ENTRY (appGUI->cal->print_month_name_font_entry)), MAXFONTNAME); g_strlcpy (config.cal_print_day_name_font, gtk_entry_get_text (GTK_ENTRY (appGUI->cal->print_day_name_font_entry)), MAXFONTNAME); g_strlcpy (config.cal_print_day_num_font, gtk_entry_get_text (GTK_ENTRY (appGUI->cal->print_day_num_font_entry)), MAXFONTNAME); g_strlcpy (config.cal_print_event_font, gtk_entry_get_text (GTK_ENTRY (appGUI->cal->print_event_font_entry)), MAXFONTNAME); config.cal_print_event_length = gtk_spin_button_get_value (GTK_SPIN_BUTTON (appGUI->cal->print_event_length_spinbutton)); config.cal_print_padding = gtk_spin_button_get_value (GTK_SPIN_BUTTON (appGUI->cal->print_padding_spinbutton)); config.cal_print_page_orientation = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_portrait_radiobutton)) ? PORTRAIT : LANDSCAPE; config.cal_print_tasks = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_tasks_checkbutton)); config.cal_print_birthdays = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_birthdays_checkbutton)); config.cal_print_namedays = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_namedays_checkbutton)); config.cal_print_day_notes = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_day_notes_checkbutton)); /* config.cal_print_ical = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_ical_checkbutton)); */ config.cal_print_disable_background = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->cal->disable_background_checkbutton)); gtk_widget_destroy (appGUI->cal->window_print_options); print = gtk_print_operation_new (); appGUI->print_lines_per_page = 0; appGUI->print_nlines = 0; appGUI->print_npages = 0; g_signal_connect (print, "begin_print", G_CALLBACK (calendar_begin_print), appGUI); g_signal_connect (print, "draw_page", G_CALLBACK (calendar_draw_page), appGUI); result = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (appGUI->main_window), &error); if (result == GTK_PRINT_OPERATION_RESULT_ERROR) { g_snprintf (buffer, BUFFER_SIZE, "%s: %s", _("Error printing"), error->message); utl_gui_create_dialog (GTK_MESSAGE_ERROR, buffer, GTK_WINDOW (appGUI->main_window)); g_error_free (error); } g_object_unref (print); } /*------------------------------------------------------------------------------*/ void calendar_create_print_window (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *frame1; GtkWidget *table_fonts; GtkWidget *month_name_font_button; GtkWidget *day_name_font_button; GtkWidget *day_number_font_button; GtkWidget *event_font_button; GtkWidget *label; GtkWidget *hbox1; GtkWidget *frame2; GtkWidget *vbox2; GtkWidget *vseparator1; GtkWidget *frame3; GtkWidget *table5; GtkAdjustment *spinbutton_adj; GtkWidget *hseparator1; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *ok_button; GtkWidget *landscape_radiobutton; GSList *radiobutton_group = NULL; gchar buffer[BUFFER_SIZE]; static FONT_SEL sel1, sel2, sel3, sel4; sel1.appGUI = sel2.appGUI = sel3.appGUI = sel4.appGUI = appGUI; sel1.font = sel2.font = sel3.font = sel4.font = NULL; sel1.widget = sel2.widget = sel3.widget = sel4.widget = NULL; sel1.save = sel2.save = sel3.save = sel4.save = FALSE; appGUI->cal->window_print_options = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->window_print_options), _("Printing properties")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->window_print_options), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->window_print_options), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->window_print_options), "delete_event", G_CALLBACK (window_cal_print_opt_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->window_print_options), "key_press_event", G_CALLBACK (cal_print_opt_key_press_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for (GTK_WINDOW (appGUI->cal->window_print_options), GTK_WINDOW (appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->window_print_options), 4); /*---------------------------------------------------------------------------------*/ vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->window_print_options), vbox1); frame1 = gtk_frame_new (NULL); gtk_widget_show (frame1); gtk_box_pack_start (GTK_BOX (vbox1), frame1, FALSE, FALSE, 2); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_NONE); table_fonts = gtk_grid_new (); gtk_widget_show (table_fonts); gtk_widget_set_margin_left(table_fonts, 12); gtk_container_add (GTK_CONTAINER (frame1), table_fonts); gtk_grid_set_row_spacing (GTK_GRID (table_fonts), 4); gtk_grid_set_column_spacing (GTK_GRID (table_fonts), 4); /* table_fonts: row 1 */ g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Month name")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table_fonts), label, 0, 0, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cal->print_month_name_font_entry = gtk_entry_new (); gtk_widget_set_can_focus (appGUI->cal->print_month_name_font_entry, FALSE); gtk_widget_show (appGUI->cal->print_month_name_font_entry); gtk_widget_set_hexpand(appGUI->cal->print_month_name_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table_fonts), appGUI->cal->print_month_name_font_entry, 1, 0, 1, 1); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->print_month_name_font_entry), config.cal_print_month_name_font); sel1.config = config.cal_print_month_name_font; sel1.entry = appGUI->cal->print_month_name_font_entry; month_name_font_button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (month_name_font_button, FALSE); gtk_widget_show (month_name_font_button); g_signal_connect (G_OBJECT (month_name_font_button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel1); gtk_grid_attach (GTK_GRID (table_fonts), month_name_font_button, 2, 0, 1, 1); /* table_fonts: row 2 */ g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Day name")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table_fonts), label, 0, 1, 1,1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cal->print_day_name_font_entry = gtk_entry_new (); gtk_widget_set_can_focus (appGUI->cal->print_day_name_font_entry, FALSE); gtk_widget_show (appGUI->cal->print_day_name_font_entry); gtk_widget_set_hexpand(appGUI->cal->print_day_name_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table_fonts), appGUI->cal->print_day_name_font_entry, 1, 1, 1, 1); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->print_day_name_font_entry), config.cal_print_day_name_font); sel2.config = config.cal_print_day_name_font; sel2.entry = appGUI->cal->print_day_name_font_entry; day_name_font_button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (day_name_font_button, FALSE); gtk_widget_show (day_name_font_button); g_signal_connect (G_OBJECT (day_name_font_button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel2); gtk_grid_attach (GTK_GRID (table_fonts), day_name_font_button, 2, 1, 1, 1); /* table_fonts: row 3 */ g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Day number")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table_fonts), label, 0, 2, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cal->print_day_num_font_entry = gtk_entry_new (); gtk_widget_set_can_focus (appGUI->cal->print_day_num_font_entry, FALSE); gtk_widget_show (appGUI->cal->print_day_num_font_entry); gtk_widget_set_hexpand(appGUI->cal->print_day_num_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table_fonts), appGUI->cal->print_day_num_font_entry, 1, 2, 1, 1); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->print_day_num_font_entry), config.cal_print_day_num_font); sel3.config = config.cal_print_day_num_font; sel3.entry = appGUI->cal->print_day_num_font_entry; day_number_font_button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (day_number_font_button, FALSE); gtk_widget_show (day_number_font_button); g_signal_connect (G_OBJECT (day_number_font_button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel3); gtk_grid_attach (GTK_GRID (table_fonts), day_number_font_button, 2, 2, 1, 1); /* table_fonts: row 4 */ g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Events")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table_fonts), label, 0, 3, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cal->print_event_font_entry = gtk_entry_new (); gtk_widget_set_can_focus (appGUI->cal->print_event_font_entry, FALSE); gtk_widget_show (appGUI->cal->print_event_font_entry); gtk_widget_set_hexpand(appGUI->cal->print_event_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table_fonts), appGUI->cal->print_event_font_entry, 1, 3, 1, 1); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->print_event_font_entry), config.cal_print_event_font); sel4.config = config.cal_print_event_font; sel4.entry = appGUI->cal->print_event_font_entry; event_font_button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_widget_set_can_focus (event_font_button, FALSE); gtk_widget_show (event_font_button); g_signal_connect (G_OBJECT (event_font_button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel4); gtk_grid_attach (GTK_GRID (table_fonts), event_font_button, 2, 3, 1, 1); /* table_fonts: END */ g_snprintf (buffer, BUFFER_SIZE, "%s", _("Fonts")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame1), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); frame2 = gtk_frame_new (NULL); gtk_widget_show (frame2); gtk_box_pack_start (GTK_BOX (hbox1), frame2, TRUE, TRUE, 2); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_widget_set_margin_left(vbox2, 12); gtk_container_add (GTK_CONTAINER (frame2), vbox2); appGUI->cal->print_tasks_checkbutton = gtk_check_button_new_with_mnemonic (_("Tasks")); gtk_widget_set_can_focus (appGUI->cal->print_tasks_checkbutton, FALSE); gtk_widget_show (appGUI->cal->print_tasks_checkbutton); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->print_tasks_checkbutton, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_tasks_checkbutton), config.cal_print_tasks); appGUI->cal->print_birthdays_checkbutton = gtk_check_button_new_with_mnemonic (_("Birthdays")); gtk_widget_set_can_focus (appGUI->cal->print_birthdays_checkbutton, FALSE); gtk_widget_show (appGUI->cal->print_birthdays_checkbutton); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->print_birthdays_checkbutton, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_birthdays_checkbutton), config.cal_print_birthdays); appGUI->cal->print_namedays_checkbutton = gtk_check_button_new_with_mnemonic (_("Namedays")); gtk_widget_set_can_focus (appGUI->cal->print_namedays_checkbutton, FALSE); gtk_widget_show (appGUI->cal->print_namedays_checkbutton); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->print_namedays_checkbutton, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_namedays_checkbutton), config.cal_print_namedays); appGUI->cal->print_day_notes_checkbutton = gtk_check_button_new_with_mnemonic (_("Day notes")); gtk_widget_set_can_focus (appGUI->cal->print_day_notes_checkbutton, FALSE); gtk_widget_show (appGUI->cal->print_day_notes_checkbutton); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->print_day_notes_checkbutton, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_day_notes_checkbutton), config.cal_print_day_notes); /* appGUI->cal->print_ical_checkbutton = gtk_check_button_new_with_mnemonic (_("ICal")); GTK_WIDGET_UNSET_FLAGS (appGUI->cal->print_ical_checkbutton, GTK_CAN_FOCUS); gtk_widget_show (appGUI->cal->print_ical_checkbutton); gtk_box_pack_start (GTK_BOX (vbox2), appGUI->cal->print_ical_checkbutton, FALSE, FALSE, 0); gtk_widget_set_sensitive (appGUI->cal->print_ical_checkbutton, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_ical_checkbutton), config.cal_print_ical); */ g_snprintf (buffer, BUFFER_SIZE, "%s", _("Visible events")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame2), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); vseparator1 = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_widget_show (vseparator1); gtk_box_pack_start (GTK_BOX (hbox1), vseparator1, TRUE, TRUE, 0); frame3 = gtk_frame_new (NULL); gtk_widget_show (frame3); gtk_box_pack_start (GTK_BOX (hbox1), frame3, TRUE, TRUE, 2); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_NONE); g_snprintf (buffer, BUFFER_SIZE, "%s", _("Options")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame3), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); table5 = gtk_grid_new (); gtk_widget_show (table5); gtk_widget_set_margin_left(table5, 12); gtk_container_add (GTK_CONTAINER (frame3), table5); gtk_grid_set_row_spacing (GTK_GRID (table5), 4); gtk_grid_set_column_spacing (GTK_GRID (table5), 4); g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Padding")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table5), label, 0, 0, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); g_snprintf (buffer, BUFFER_SIZE, "%s:", _("Event maximum length")); label = gtk_label_new (buffer); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table5), label, 0, 1, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); spinbutton_adj = gtk_adjustment_new (config.cal_print_padding, 1, 16, 1, 10, 0); appGUI->cal->print_padding_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->print_padding_spinbutton); gtk_widget_set_hexpand(appGUI->cal->print_padding_spinbutton, TRUE); gtk_grid_attach (GTK_GRID (table5), appGUI->cal->print_padding_spinbutton, 1, 0, 1, 1); spinbutton_adj = gtk_adjustment_new (config.cal_print_event_length, 6, 256, 1, 10, 0); appGUI->cal->print_event_length_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cal->print_event_length_spinbutton); gtk_widget_set_hexpand(appGUI->cal->print_event_length_spinbutton, TRUE); gtk_grid_attach (GTK_GRID (table5), appGUI->cal->print_event_length_spinbutton, 1, 1, 1, 1); label = gtk_label_new (_("Page orientation:")); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (table5), label, 0, 2, 1, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->cal->print_portrait_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Portrait")); gtk_widget_set_can_focus (appGUI->cal->print_portrait_radiobutton, FALSE); gtk_widget_show (appGUI->cal->print_portrait_radiobutton); gtk_grid_attach (GTK_GRID (table5), appGUI->cal->print_portrait_radiobutton, 1, 2, 1, 1); gtk_radio_button_set_group (GTK_RADIO_BUTTON (appGUI->cal->print_portrait_radiobutton), radiobutton_group); radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (appGUI->cal->print_portrait_radiobutton)); landscape_radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("Landscape")); gtk_widget_set_can_focus (landscape_radiobutton, FALSE); gtk_widget_show (landscape_radiobutton); gtk_grid_attach (GTK_GRID (table5), landscape_radiobutton, 1, 3, 1, 1); gtk_radio_button_set_group (GTK_RADIO_BUTTON (landscape_radiobutton), radiobutton_group); radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (landscape_radiobutton)); appGUI->cal->disable_background_checkbutton = gtk_check_button_new_with_mnemonic (_("Disable background colors")); gtk_widget_set_can_focus (appGUI->cal->disable_background_checkbutton, FALSE); gtk_widget_show (appGUI->cal->disable_background_checkbutton); gtk_grid_attach (GTK_GRID (table5), appGUI->cal->disable_background_checkbutton, 0, 4, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->disable_background_checkbutton), config.cal_print_disable_background); if (config.cal_print_page_orientation == PORTRAIT) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->cal->print_portrait_radiobutton), TRUE); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (landscape_radiobutton), TRUE); } hseparator1 = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator1); gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox), 4); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 16); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); g_signal_connect (cancel_button, "clicked", G_CALLBACK (window_button_cal_print_opt_close_cb), appGUI); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_show (ok_button); g_signal_connect (ok_button, "clicked", G_CALLBACK (calendar_print_start_cb), appGUI); gtk_container_add (GTK_CONTAINER (hbuttonbox), ok_button); gtk_widget_show (appGUI->cal->window_print_options); } /*------------------------------------------------------------------------------*/ #endif /* PRINTING_SUPPORT */ osmo-0.4.2/src/calendar_jumpto.c0000664000175000017500000002503513066543472013536 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_jumpto.h" #include "i18n.h" #include "calendar.h" #include "calendar_utils.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "options_prefs.h" #include "stock_icons.h" /*------------------------------------------------------------------------------*/ gboolean check_number (const gchar *str) { gint i, n; n = strlen(str); if (!n) return FALSE; for(i=0;ical->jumpto_window); } /*------------------------------------------------------------------------------*/ gint jumpto_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Escape) { jumpto_window_close_cb (NULL, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint day_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { char tmpbuf[BUFFER_SIZE]; gint a; GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Return) { if (check_number(gtk_entry_get_text(GTK_ENTRY(appGUI->cal->day_entry))) == FALSE) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_date_get_current_day ()); gtk_entry_set_text (GTK_ENTRY(appGUI->cal->day_entry), tmpbuf); } a = atoi(gtk_entry_get_text(GTK_ENTRY(appGUI->cal->day_entry))); if (a > 31) gtk_entry_set_text (GTK_ENTRY(appGUI->cal->day_entry), "31"); if (a < 1) gtk_entry_set_text (GTK_ENTRY(appGUI->cal->day_entry), "1"); gtk_widget_grab_focus(GTK_WIDGET(appGUI->cal->month_entry)); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ gint month_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { char tmpbuf[BUFFER_SIZE]; gint a; GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Return) { if (check_number(gtk_entry_get_text(GTK_ENTRY(appGUI->cal->month_entry))) == FALSE) { g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_date_get_current_month ()); gtk_entry_set_text (GTK_ENTRY(appGUI->cal->month_entry), tmpbuf); } a = atoi(gtk_entry_get_text(GTK_ENTRY(appGUI->cal->month_entry))); if (a > 12) gtk_entry_set_text (GTK_ENTRY(appGUI->cal->month_entry), "12"); if (a < 1) gtk_entry_set_text (GTK_ENTRY(appGUI->cal->month_entry), "1"); gtk_widget_grab_focus(GTK_WIDGET(appGUI->cal->year_entry)); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void jumpto_go_window_close_cb (GtkButton *button, gpointer user_data) { GDate *cdate; GUI *appGUI = (GUI *)user_data; appGUI->cal->jday = atoi (gtk_entry_get_text (GTK_ENTRY (appGUI->cal->day_entry))); appGUI->cal->jmonth = atoi (gtk_entry_get_text (GTK_ENTRY (appGUI->cal->month_entry))); appGUI->cal->jyear = atoi (gtk_entry_get_text (GTK_ENTRY (appGUI->cal->year_entry))); if ((appGUI->cal->jyear > JULIAN_GREGORIAN_YEAR) && (appGUI->cal->jmonth > 0 && appGUI->cal->jmonth <= 12)) { if (appGUI->cal->jday > 0 && appGUI->cal->jday <= g_date_get_days_in_month (appGUI->cal->jmonth, appGUI->cal->jyear)) { cdate = g_date_new_dmy (appGUI->cal->jday, appGUI->cal->jmonth, appGUI->cal->jyear); g_return_if_fail (cdate != NULL); cal_jump_to_date (cdate, appGUI); update_aux_calendars (appGUI); g_date_free (cdate); } } jumpto_window_close_cb (GTK_WIDGET (button), NULL, user_data); } /*------------------------------------------------------------------------------*/ void button_jumpto_window_close_cb (GtkButton *button, gpointer user_data) { jumpto_window_close_cb (GTK_WIDGET(button), NULL, user_data); } /*------------------------------------------------------------------------------*/ gint year_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; if (event->keyval == GDK_KEY_Return) { jumpto_go_window_close_cb (NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void calendar_create_jumpto_window (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *label; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *jumpto_button; gint win_xpos, win_ypos; gchar tmpbuf[BUFFER_SIZE]; appGUI->cal->jumpto_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cal->jumpto_window), _("Jump to date")); gtk_window_set_position (GTK_WINDOW (appGUI->cal->jumpto_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_modal (GTK_WINDOW (appGUI->cal->jumpto_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cal->jumpto_window), "delete_event", G_CALLBACK(jumpto_window_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cal->jumpto_window), "key_press_event", G_CALLBACK (jumpto_key_press_cb), appGUI); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cal->jumpto_window), GTK_WINDOW(appGUI->main_window)); } gtk_container_set_border_width (GTK_CONTAINER (appGUI->cal->jumpto_window), 8); gtk_window_set_resizable (GTK_WINDOW (appGUI->cal->jumpto_window), FALSE); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cal->jumpto_window), vbox1); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 6); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Day")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_widget_set_margin_right (label, 8); appGUI->cal->day_entry = gtk_entry_new (); gtk_widget_show (appGUI->cal->day_entry); gtk_entry_set_max_length (GTK_ENTRY(appGUI->cal->day_entry), 2); g_signal_connect (G_OBJECT (appGUI->cal->day_entry), "key_press_event", G_CALLBACK (day_key_press_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->day_entry, FALSE, TRUE, 1); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Month")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); appGUI->cal->month_entry = gtk_entry_new (); gtk_widget_show (appGUI->cal->month_entry); gtk_entry_set_max_length (GTK_ENTRY(appGUI->cal->month_entry), 2); g_signal_connect (G_OBJECT (appGUI->cal->month_entry), "key_press_event", G_CALLBACK (month_key_press_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->month_entry, FALSE, TRUE, 1); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Year")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); appGUI->cal->year_entry = gtk_entry_new (); gtk_widget_show (appGUI->cal->year_entry); gtk_entry_set_max_length (GTK_ENTRY(appGUI->cal->year_entry), 4); g_signal_connect (G_OBJECT (appGUI->cal->year_entry), "key_press_event", G_CALLBACK (year_key_press_cb), appGUI); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cal->year_entry, FALSE, TRUE, 1); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_date_get_current_day ()); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->day_entry), tmpbuf); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_date_get_current_month ()); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->month_entry), tmpbuf); g_snprintf (tmpbuf, BUFFER_SIZE, "%d", utl_date_get_current_year ()); gtk_entry_set_text (GTK_ENTRY (appGUI->cal->year_entry), tmpbuf); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_jumpto_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), cancel_button); jumpto_button = gtk_button_new_with_mnemonic (_("_Jump to")); gtk_widget_show (jumpto_button); g_signal_connect(jumpto_button, "clicked", G_CALLBACK(jumpto_go_window_close_cb), appGUI); gtk_container_add(GTK_CONTAINER(hbuttonbox), jumpto_button); gtk_widget_grab_focus(GTK_WIDGET(appGUI->cal->day_entry)); gtk_window_get_position (GTK_WINDOW(appGUI->cal->jumpto_window), &win_xpos, &win_ypos); gtk_window_move (GTK_WINDOW (appGUI->cal->jumpto_window), win_xpos-5, win_ypos-40); gtk_widget_show(appGUI->cal->jumpto_window); } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/tasks_export.h0000664000175000017500000000172213066543472013117 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _TASKS_EXPORT_H #define _TASKS_EXPORT_H #include "gui.h" gboolean export_tasks_to_file (GUI *appGUI); #endif /* _TASKS_EXPORT_H */ osmo-0.4.2/src/gtksourceiter.h0000664000175000017500000000343013066543472013261 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * gtksourceiter.h * * Copyright (C) 2000 - 2005 Paolo Maggi * Copyright (C) 2002, 2003 Jeroen Zwartepoorte * * This program 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 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 Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __GTK_SOURCE_ITER_H__ #define __GTK_SOURCE_ITER_H__ #include G_BEGIN_DECLS typedef enum { GTK_SOURCE_SEARCH_VISIBLE_ONLY = 1 << 0, GTK_SOURCE_SEARCH_TEXT_ONLY = 1 << 1, GTK_SOURCE_SEARCH_CASE_INSENSITIVE = 1 << 2 /* Possible future plans: SEARCH_REGEXP */ } GtkSourceSearchFlags; gboolean gtk_source_iter_forward_search (const GtkTextIter *iter, const gchar *str, GtkSourceSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit); gboolean gtk_source_iter_backward_search (const GtkTextIter *iter, const gchar *str, GtkSourceSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit); G_END_DECLS #endif /* __GTK_SOURCE_ITER_H__ */ osmo-0.4.2/src/gtksourceiter.c0000664000175000017500000004247513066543472013270 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * gtksourceiter.c * * Copyright (C) 2000 - 2005 Paolo Maggi * Copyright (C) 2002, 2003 Jeroen Zwartepoorte * * This program 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 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 Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * Parts of this file are copied from the gedit and glimmer project. */ #ifdef HAVE_CONFIG_H #include #endif #include #include "gtksourceiter.h" #define GTK_TEXT_UNKNOWN_CHAR 0xFFFC /* this function acts like g_utf8_offset_to_pointer() except that if it finds a * decomposable character it consumes the decomposition length from the given * offset. So it's useful when the offset was calculated for the normalized * version of str, but we need a pointer to str itself. */ static const gchar * pointer_from_offset_skipping_decomp (const gchar *str, gint offset) { gchar *casefold, *normal; const gchar *p, *q; p = str; while (offset > 0) { q = g_utf8_next_char (p); casefold = g_utf8_casefold (p, q - p); normal = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); offset -= g_utf8_strlen (normal, -1); g_free (casefold); g_free (normal); p = q; } return p; } static const gchar * g_utf8_strcasestr (const gchar *haystack, const gchar *needle) { gsize needle_len; gsize haystack_len; const gchar *ret = NULL; gchar *p; gchar *casefold; gchar *caseless_haystack; gint i; g_return_val_if_fail (haystack != NULL, NULL); g_return_val_if_fail (needle != NULL, NULL); casefold = g_utf8_casefold (haystack, -1); caseless_haystack = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); needle_len = g_utf8_strlen (needle, -1); haystack_len = g_utf8_strlen (caseless_haystack, -1); if (needle_len == 0) { ret = (gchar *)haystack; goto finally_1; } if (haystack_len < needle_len) { ret = NULL; goto finally_1; } p = (gchar*)caseless_haystack; needle_len = strlen (needle); i = 0; while (*p) { if ((strncmp (p, needle, needle_len) == 0)) { ret = pointer_from_offset_skipping_decomp (haystack, i); goto finally_1; } p = g_utf8_next_char (p); i++; } finally_1: g_free (caseless_haystack); return ret; } static const gchar * g_utf8_strrcasestr (const gchar *haystack, const gchar *needle) { gsize needle_len; gsize haystack_len; const gchar *ret = NULL; gchar *p; gchar *casefold; gchar *caseless_haystack; gint i; g_return_val_if_fail (haystack != NULL, NULL); g_return_val_if_fail (needle != NULL, NULL); casefold = g_utf8_casefold (haystack, -1); caseless_haystack = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); needle_len = g_utf8_strlen (needle, -1); haystack_len = g_utf8_strlen (caseless_haystack, -1); if (needle_len == 0) { ret = (gchar *)haystack; goto finally_1; } if (haystack_len < needle_len) { ret = NULL; goto finally_1; } i = haystack_len - needle_len; p = g_utf8_offset_to_pointer (caseless_haystack, i); needle_len = strlen (needle); while (1) { if (strncmp (p, needle, needle_len) == 0) { ret = pointer_from_offset_skipping_decomp (haystack, i); goto finally_1; } if (p > caseless_haystack) p = g_utf8_prev_char (p); else goto finally_1; i--; } finally_1: g_free (caseless_haystack); return ret; } static gboolean g_utf8_caselessnmatch (const char *s1, const char *s2, gssize n1, gssize n2) { gchar *casefold; gchar *normalized_s1; gchar *normalized_s2; gint len_s1; gint len_s2; gboolean ret = FALSE; g_return_val_if_fail (s1 != NULL, FALSE); g_return_val_if_fail (s2 != NULL, FALSE); g_return_val_if_fail (n1 > 0, FALSE); g_return_val_if_fail (n2 > 0, FALSE); casefold = g_utf8_casefold (s1, n1); normalized_s1 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); casefold = g_utf8_casefold (s2, n2); normalized_s2 = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); len_s1 = strlen (normalized_s1); len_s2 = strlen (normalized_s2); if (len_s1 < len_s2) goto finally_2; ret = (strncmp (normalized_s1, normalized_s2, len_s2) == 0); finally_2: g_free (normalized_s1); g_free (normalized_s2); return ret; } static void forward_chars_with_skipping (GtkTextIter *iter, gint count, gboolean skip_invisible, gboolean skip_nontext, gboolean skip_decomp) { gint i; g_return_if_fail (count >= 0); i = count; while (i > 0) { gboolean ignored = FALSE; /* minimal workaround to avoid the infinite loop of bug #168247. * It doesn't fix the problemjust the symptom... */ if (gtk_text_iter_is_end (iter)) return; if (skip_nontext && gtk_text_iter_get_char (iter) == GTK_TEXT_UNKNOWN_CHAR) ignored = TRUE; #if 0 if (!ignored && skip_invisible && /* _gtk_text_btree_char_is_invisible (iter)*/ FALSE) ignored = TRUE; #endif if (!ignored && skip_decomp) { /* being UTF8 correct sucks; this accounts for extra offsets coming from canonical decompositions of UTF8 characters (e.g. accented characters) which g_utf8_normalize() performs */ gchar *normal; gchar buffer[6]; gint buffer_len; buffer_len = g_unichar_to_utf8 (gtk_text_iter_get_char (iter), buffer); normal = g_utf8_normalize (buffer, buffer_len, G_NORMALIZE_NFD); i -= (g_utf8_strlen (normal, -1) - 1); g_free (normal); } gtk_text_iter_forward_char (iter); if (!ignored) --i; } } static gboolean lines_match (const GtkTextIter *start, const gchar **lines, gboolean visible_only, gboolean slice, GtkTextIter *match_start, GtkTextIter *match_end) { GtkTextIter next; gchar *line_text; const gchar *found; gint offset; if (*lines == NULL || **lines == '\0') { if (match_start) *match_start = *start; if (match_end) *match_end = *start; return TRUE; } next = *start; gtk_text_iter_forward_line (&next); /* No more text in buffer, but *lines is nonempty */ if (gtk_text_iter_equal (start, &next)) return FALSE; if (slice) { if (visible_only) line_text = gtk_text_iter_get_visible_slice (start, &next); else line_text = gtk_text_iter_get_slice (start, &next); } else { if (visible_only) line_text = gtk_text_iter_get_visible_text (start, &next); else line_text = gtk_text_iter_get_text (start, &next); } if (match_start) /* if this is the first line we're matching */ { found = g_utf8_strcasestr (line_text, *lines); } else { /* If it's not the first line, we have to match from the * start of the line. */ if (g_utf8_caselessnmatch (line_text, *lines, strlen (line_text), strlen (*lines))) found = line_text; else found = NULL; } if (found == NULL) { g_free (line_text); return FALSE; } /* Get offset to start of search string */ offset = g_utf8_strlen (line_text, found - line_text); next = *start; /* If match start needs to be returned, set it to the * start of the search string. */ forward_chars_with_skipping (&next, offset, visible_only, !slice, FALSE); if (match_start) { *match_start = next; } /* Go to end of search string */ forward_chars_with_skipping (&next, g_utf8_strlen (*lines, -1), visible_only, !slice, TRUE); g_free (line_text); ++lines; if (match_end) *match_end = next; /* pass NULL for match_start, since we don't need to find the * start again. */ return lines_match (&next, lines, visible_only, slice, NULL, match_end); } static gboolean backward_lines_match (const GtkTextIter *start, const gchar **lines, gboolean visible_only, gboolean slice, GtkTextIter *match_start, GtkTextIter *match_end) { GtkTextIter line, next; gchar *line_text; const gchar *found; gint offset; if (*lines == NULL || **lines == '\0') { if (match_start) *match_start = *start; if (match_end) *match_end = *start; return TRUE; } line = next = *start; if (gtk_text_iter_get_line_offset (&next) == 0) { if (!gtk_text_iter_backward_line (&next)) return FALSE; } else gtk_text_iter_set_line_offset (&next, 0); if (slice) { if (visible_only) line_text = gtk_text_iter_get_visible_slice (&next, &line); else line_text = gtk_text_iter_get_slice (&next, &line); } else { if (visible_only) line_text = gtk_text_iter_get_visible_text (&next, &line); else line_text = gtk_text_iter_get_text (&next, &line); } if (match_start) /* if this is the first line we're matching */ { found = g_utf8_strrcasestr (line_text, *lines); } else { /* If it's not the first line, we have to match from the * start of the line. */ if (g_utf8_caselessnmatch (line_text, *lines, strlen (line_text), strlen (*lines))) found = line_text; else found = NULL; } if (found == NULL) { g_free (line_text); return FALSE; } /* Get offset to start of search string */ offset = g_utf8_strlen (line_text, found - line_text); forward_chars_with_skipping (&next, offset, visible_only, !slice, FALSE); /* If match start needs to be returned, set it to the * start of the search string. */ if (match_start) { *match_start = next; } /* Go to end of search string */ forward_chars_with_skipping (&next, g_utf8_strlen (*lines, -1), visible_only, !slice, TRUE); g_free (line_text); ++lines; if (match_end) *match_end = next; /* try to match the rest of the lines forward, passing NULL * for match_start so lines_match will try to match the entire * line */ return lines_match (&next, lines, visible_only, slice, NULL, match_end); } /* strsplit () that retains the delimiter as part of the string. */ static gchar ** strbreakup (const char *string, const char *delimiter, gint max_tokens) { GSList *string_list = NULL, *slist; gchar **str_array, *s, *casefold, *new_string; guint i, n = 1; g_return_val_if_fail (string != NULL, NULL); g_return_val_if_fail (delimiter != NULL, NULL); if (max_tokens < 1) max_tokens = G_MAXINT; s = strstr (string, delimiter); if (s) { guint delimiter_len = strlen (delimiter); do { guint len; len = s - string + delimiter_len; new_string = g_new (gchar, len + 1); strncpy (new_string, string, len); new_string[len] = 0; casefold = g_utf8_casefold (new_string, -1); g_free (new_string); new_string = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); string_list = g_slist_prepend (string_list, new_string); n++; string = s + delimiter_len; s = strstr (string, delimiter); } while (--max_tokens && s); } if (*string) { n++; casefold = g_utf8_casefold (string, -1); new_string = g_utf8_normalize (casefold, -1, G_NORMALIZE_NFD); g_free (casefold); string_list = g_slist_prepend (string_list, new_string); } str_array = g_new (gchar*, n); i = n - 1; str_array[i--] = NULL; for (slist = string_list; slist; slist = slist->next) str_array[i--] = slist->data; g_slist_free (string_list); return str_array; } /** * gtk_source_iter_forward_search: * @iter: start of search. * @str: a search string. * @flags: flags affecting how the search is done. * @match_start: return location for start of match, or %%NULL. * @match_end: return location for end of match, or %%NULL. * @limit: bound for the search, or %%NULL for the end of the buffer. * * Searches forward for @str. Any match is returned by setting * @match_start to the first character of the match and @match_end to the * first character after the match. The search will not continue past * @limit. Note that a search is a linear or O(n) operation, so you * may wish to use @limit to avoid locking up your UI on large * buffers. * * If the #GTK_SOURCE_SEARCH_VISIBLE_ONLY flag is present, the match may * have invisible text interspersed in @str. i.e. @str will be a * possibly-noncontiguous subsequence of the matched range. similarly, * if you specify #GTK_SOURCE_SEARCH_TEXT_ONLY, the match may have * pixbufs or child widgets mixed inside the matched range. If these * flags are not given, the match must be exact; the special 0xFFFC * character in @str will match embedded pixbufs or child widgets. * If you specify the #GTK_SOURCE_SEARCH_CASE_INSENSITIVE flag, the text will * be matched regardless of what case it is in. * * Same as gtk_text_iter_forward_search(), but supports case insensitive * searching. * * Return value: whether a match was found. **/ gboolean gtk_source_iter_forward_search (const GtkTextIter *iter, const gchar *str, GtkSourceSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit) { gchar **lines = NULL; GtkTextIter match; gboolean retval = FALSE; GtkTextIter search; gboolean visible_only; gboolean slice; g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (str != NULL, FALSE); if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0) return gtk_text_iter_forward_search (iter, str, flags, match_start, match_end, limit); if (limit && gtk_text_iter_compare (iter, limit) >= 0) return FALSE; if (*str == '\0') { /* If we can move one char, return the empty string there */ match = *iter; if (gtk_text_iter_forward_char (&match)) { if (limit && gtk_text_iter_equal (&match, limit)) return FALSE; if (match_start) *match_start = match; if (match_end) *match_end = match; return TRUE; } else { return FALSE; } } visible_only = (flags & GTK_SOURCE_SEARCH_VISIBLE_ONLY) != 0; slice = (flags & GTK_SOURCE_SEARCH_TEXT_ONLY) == 0; /* locate all lines */ lines = strbreakup (str, "\n", -1); search = *iter; do { /* This loop has an inefficient worst-case, where * gtk_text_iter_get_text () is called repeatedly on * a single line. */ GtkTextIter end; if (limit && gtk_text_iter_compare (&search, limit) >= 0) break; if (lines_match (&search, (const gchar**)lines, visible_only, slice, &match, &end)) { if (limit == NULL || (limit && gtk_text_iter_compare (&end, limit) <= 0)) { retval = TRUE; if (match_start) *match_start = match; if (match_end) *match_end = end; } break; } } while (gtk_text_iter_forward_line (&search)); g_strfreev ((gchar**)lines); return retval; } /** * gtk_source_iter_backward_search: * @iter: a #GtkTextIter where the search begins. * @str: search string. * @flags: bitmask of flags affecting the search. * @match_start: return location for start of match, or %%NULL. * @match_end: return location for end of match, or %%NULL. * @limit: location of last possible @match_start, or %%NULL for start of buffer. * * Same as gtk_text_iter_backward_search(), but supports case insensitive * searching. * * Return value: whether a match was found. **/ gboolean gtk_source_iter_backward_search (const GtkTextIter *iter, const gchar *str, GtkSourceSearchFlags flags, GtkTextIter *match_start, GtkTextIter *match_end, const GtkTextIter *limit) { gchar **lines = NULL; GtkTextIter match; gboolean retval = FALSE; GtkTextIter search; gboolean visible_only; gboolean slice; g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (str != NULL, FALSE); if ((flags & GTK_SOURCE_SEARCH_CASE_INSENSITIVE) == 0) return gtk_text_iter_backward_search (iter, str, flags, match_start, match_end, limit); if (limit && gtk_text_iter_compare (iter, limit) <= 0) return FALSE; if (*str == '\0') { /* If we can move one char, return the empty string there */ match = *iter; if (gtk_text_iter_backward_char (&match)) { if (limit && gtk_text_iter_equal (&match, limit)) return FALSE; if (match_start) *match_start = match; if (match_end) *match_end = match; return TRUE; } else { return FALSE; } } visible_only = (flags & GTK_SOURCE_SEARCH_VISIBLE_ONLY) != 0; slice = (flags & GTK_SOURCE_SEARCH_TEXT_ONLY) == 0; /* locate all lines */ lines = strbreakup (str, "\n", -1); search = *iter; while (TRUE) { /* This loop has an inefficient worst-case, where * gtk_text_iter_get_text () is called repeatedly on * a single line. */ GtkTextIter end; if (limit && gtk_text_iter_compare (&search, limit) <= 0) break; if (backward_lines_match (&search, (const gchar**)lines, visible_only, slice, &match, &end)) { if (limit == NULL || (limit && gtk_text_iter_compare (&end, limit) > 0)) { retval = TRUE; if (match_start) *match_start = match; if (match_end) *match_end = end; } break; } if (gtk_text_iter_get_line_offset (&search) == 0) { if (!gtk_text_iter_backward_line (&search)) break; } else { gtk_text_iter_set_line_offset (&search, 0); } } g_strfreev ((gchar**)lines); return retval; } osmo-0.4.2/src/contacts_import.c0000664000175000017500000011244013066543472013574 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "contacts_import.h" #include "contacts_import_csv.h" #include "i18n.h" #include "utils.h" #include "utils_date.h" #include "utils_gui.h" #include "contacts.h" #include "calendar_utils.h" #include "stock_icons.h" #include "options_prefs.h" #ifdef CONTACTS_ENABLED /*-------------------------------------------------------------------------------------*/ gboolean import_contacts_select_file (GUI *appGUI) { GtkWidget *dialog; GtkFileFilter *filter_1, *filter_2; gboolean ret = FALSE; dialog = utl_gui_create_open_file_dialog(_("Select CSV file"), GTK_WINDOW(appGUI->main_window)); filter_1 = gtk_file_filter_new(); gtk_file_filter_add_pattern(filter_1, "*"); gtk_file_filter_set_name(GTK_FILE_FILTER(filter_1), _("All Files")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_1); filter_2 = gtk_file_filter_new(); gtk_file_filter_add_pattern(filter_2, "*.[cC][sS][vV]"); gtk_file_filter_set_name(GTK_FILE_FILTER(filter_2), _("CSV (comma-separated values) files (*.csv)")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_2); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter_2); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { gtk_widget_hide(dialog); while (g_main_context_iteration(NULL, FALSE)); ret = add_csv_records(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)), appGUI); } gtk_widget_destroy(dialog); return ret; } /*-------------------------------------------------------------------------------------*/ gboolean import_contacts_from_csv_file (GUI *appGUI) { return import_contacts_select_file (appGUI); } /*-------------------------------------------------------------------------------------*/ void import_sel_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gdk_window_get_root_origin (gtk_widget_get_window(appGUI->cnt->import_sel_window), &config.contacts_import_sel_win_x, &config.contacts_import_sel_win_y); /* import_store_values (appGUI);*/ gtk_widget_destroy(appGUI->cnt->import_sel_window); } /*-------------------------------------------------------------------------------------*/ gint import_sel_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: import_sel_window_close_cb (widget, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void button_import_sel_window_close_cb (GtkWidget *widget, gpointer data) { GUI *appGUI = (GUI *)data; import_sel_window_close_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ void import_type_selected_cb (GtkComboBox *widget, gpointer user_data) { gint import_type; GUI *appGUI = (GUI *)user_data; import_type = gtk_combo_box_get_active (widget); switch (import_type) { case IMPORT_TYPE_FILE: gtk_widget_set_sensitive(appGUI->cnt->file_import_vbox, TRUE); gtk_widget_set_sensitive(appGUI->cnt->import_vbox, FALSE); break; case IMPORT_TYPE_SYNCML: gtk_widget_set_sensitive(appGUI->cnt->import_vbox, TRUE); gtk_widget_set_sensitive(appGUI->cnt->file_import_vbox, FALSE); break; } } /*------------------------------------------------------------------------------*/ gboolean import_sel_combo_box_focus_cb (GtkWidget *widget, GtkDirectionType *arg1, gpointer user_data) { return TRUE; } /*------------------------------------------------------------------------------*/ void import_sel_cb (GtkWidget *widget, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gchar *text; gchar tmpbuf[BUFFER_SIZE]; /* import_store_values (appGUI);*/ if (config.import_type == IMPORT_TYPE_FILE) { /* FILE */ text = (gchar *)gtk_entry_get_text (GTK_ENTRY(appGUI->cnt->input_file_entry)); if (!strlen(text)) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Please select file first.")); utl_gui_create_dialog (GTK_MESSAGE_ERROR, tmpbuf, GTK_WINDOW(appGUI->cnt->import_sel_window)); return; } add_csv_records(text, appGUI); } import_sel_window_close_cb (NULL, NULL, appGUI); } /*------------------------------------------------------------------------------*/ void import_contacts_show_dialog (GUI *appGUI) { GtkWidget *vbox1; GtkWidget *hseparator; GtkWidget *hbox1; GtkWidget *label; GtkWidget *frame; GtkWidget *hbox4; GtkWidget *vbox4; GtkWidget *hbox6; GtkWidget *cancel_button; GtkWidget *hbuttonbox; gchar tmpbuf[BUFFER_SIZE]; appGUI->cnt->import_sel_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->import_sel_window), 6); gtk_window_set_title (GTK_WINDOW (appGUI->cnt->import_sel_window), _("Import contacts")); gtk_window_move (GTK_WINDOW (appGUI->cnt->import_sel_window), config.contacts_import_sel_win_x, config.contacts_import_sel_win_y); gtk_window_set_default_size (GTK_WINDOW(appGUI->cnt->import_sel_window), 450, -1); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cnt->import_sel_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_modal(GTK_WINDOW(appGUI->cnt->import_sel_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cnt->import_sel_window), "key_press_event", G_CALLBACK (import_sel_key_press_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cnt->import_sel_window), "delete_event", G_CALLBACK(import_sel_window_close_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cnt->import_sel_window), vbox1); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, FALSE, 4); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Import type")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 5); appGUI->cnt->import_type_combobox = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cnt->import_type_combobox); gtk_box_pack_start (GTK_BOX (hbox1), appGUI->cnt->import_type_combobox, FALSE, FALSE, 8); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->import_type_combobox), NULL, _("File")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->import_type_combobox), NULL, "SyncML"); g_signal_connect (G_OBJECT (appGUI->cnt->import_type_combobox), "changed", G_CALLBACK (import_type_selected_cb), appGUI); g_signal_connect(G_OBJECT(appGUI->cnt->import_type_combobox), "focus", G_CALLBACK(import_sel_combo_box_focus_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); appGUI->cnt->file_import_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (appGUI->cnt->file_import_vbox); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->cnt->file_import_vbox, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->cnt->file_import_vbox), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); hbox4 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox4); gtk_widget_set_margin_left(hbox4, 12); gtk_container_add (GTK_CONTAINER (frame), hbox4); appGUI->cnt->input_file_entry = gtk_entry_new (); gtk_widget_show (appGUI->cnt->input_file_entry); gtk_box_pack_start (GTK_BOX (hbox4), appGUI->cnt->input_file_entry, TRUE, TRUE, 0); gtk_widget_set_can_focus(appGUI->cnt->input_file_entry, FALSE); gtk_editable_set_editable (GTK_EDITABLE(appGUI->cnt->input_file_entry), FALSE); appGUI->cnt->contacts_browse_button = gtk_button_new_with_mnemonic (_("_Open")); gtk_widget_set_can_focus(appGUI->cnt->contacts_browse_button, FALSE); gtk_widget_show (appGUI->cnt->contacts_browse_button); gtk_box_pack_start (GTK_BOX (hbox4), appGUI->cnt->contacts_browse_button, FALSE, TRUE, 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Input filename")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); appGUI->cnt->import_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (appGUI->cnt->import_vbox); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->cnt->import_vbox, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (appGUI->cnt->import_vbox), frame, TRUE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); vbox4 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox4); gtk_widget_set_margin_left(vbox4, 12); gtk_container_add (GTK_CONTAINER (frame), vbox4); hbox6 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox6); gtk_box_pack_start (GTK_BOX (vbox4), hbox6, TRUE, TRUE, 2); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 8); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_import_sel_window_close_cb), appGUI); appGUI->cnt->import_button = gtk_button_new_with_mnemonic (_("Import")); gtk_widget_show (appGUI->cnt->import_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->cnt->import_button); g_signal_connect(appGUI->cnt->import_button, "clicked", G_CALLBACK(import_sel_cb), appGUI); /* setup fields */ gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->import_type_combobox), config.import_type); gtk_widget_show (appGUI->cnt->import_sel_window); } /*------------------------------------------------------------------------------*/ void import_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_window_get_size (GTK_WINDOW(appGUI->cnt->import_window), &config.contacts_import_win_w, &config.contacts_import_win_h); gdk_window_get_root_origin (gtk_widget_get_window(appGUI->cnt->import_window), &config.contacts_import_win_x, &config.contacts_import_win_y); gtk_widget_destroy(appGUI->cnt->import_window); if(appGUI->cnt->file_buffer != NULL) { g_free(appGUI->cnt->file_buffer); appGUI->cnt->file_buffer = NULL; appGUI->cnt->file_length = 0; } } /*------------------------------------------------------------------------------*/ void button_import_window_close_cb (GtkWidget *widget, gpointer data) { GUI *appGUI = (GUI *)data; import_window_close_cb (widget, NULL, appGUI); } /*------------------------------------------------------------------------------*/ gint import_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer data) { GUI *appGUI = (GUI *)data; switch(event->keyval) { case GDK_KEY_Escape: import_window_close_cb (widget, NULL, appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void record_changed_cb (GtkSpinButton *spinbutton, gpointer user_data) { gint i; gchar *str, *field_str; GUI *appGUI = (GUI *)user_data; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->cnt->first_row_as_header_check_button)) == TRUE) { str = csv_get_line(gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinbutton))+1, appGUI); } else { str = csv_get_line(gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spinbutton)), appGUI); } if (str != NULL) { i = 1; while ((field_str = csv_get_field(str, i)) != NULL) { gtk_label_set_text (GTK_LABEL(appGUI->cnt->value_labels[i-1]), field_str); g_free(field_str); i++; } g_free(str); } } /*------------------------------------------------------------------------------*/ void type_changed_cb (GtkComboBox *widget, gpointer user_data) { gint *field = (gint *)user_data; gint value = gtk_combo_box_get_active (widget); *field = value; } /*------------------------------------------------------------------------------*/ void start_import_cb (GtkWidget *widget, gpointer data) { gint i, j, k, n, m, p, w; guint n_records; gchar *str, *field_str, *item, *text; gchar ch[2] = { 0, 0 }; GtkTreeIter iter, g_iter; gboolean g_flag; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)data; n_records = get_number_of_records (appGUI); for(i = k = 0; i < appGUI->cnt->max_fields; i++) { k += appGUI->cnt->field_type[i]; } if (!k) { utl_gui_create_dialog(GTK_MESSAGE_WARNING, _("Nothing to import."), GTK_WINDOW(appGUI->cnt->import_window)); return; } /* add records */ n = (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(appGUI->cnt->first_row_as_header_check_button)) == TRUE) ? 1:0; for(j=n; j < n_records; j++) { str = csv_get_line(j+1, appGUI); if (str != NULL) { gtk_list_store_append(appGUI->cnt->contacts_list_store, &iter); for(i=0; i < appGUI->cnt->max_fields; i++) { if (appGUI->cnt->field_type[i]) { if ((field_str = csv_get_field(str, i+1)) != NULL) { if (g_utf8_validate(field_str, -1, NULL) == FALSE) { text = g_convert_with_fallback(field_str, -1, "utf-8", "iso-8859-1", "?", NULL, NULL, NULL); g_free(field_str); field_str = text; } p = strlen(field_str); for (w = 0; w < p; w++) { /* remove control chars */ ch[0] = field_str[w]; if (g_unichar_iscntrl(g_utf8_get_char(ch))) field_str[w] = ' '; } if (appGUI->cnt->field_type[i]-1 == COLUMN_FIRST_NAME){ if (p) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_FIRST_NAME, field_str, -1); } } else if (appGUI->cnt->field_type[i]-1 == COLUMN_LAST_NAME) { if (p) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_LAST_NAME, field_str, -1); } } else if (appGUI->cnt->field_type[i]-1 == COLUMN_GROUP) { /* set group */ if(p) { m = 0; g_flag = TRUE; while (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->contacts_group_store), &g_iter, NULL, m++)) { gtk_tree_model_get(GTK_TREE_MODEL(appGUI->opt->contacts_group_store), &g_iter, 0, &item, -1); if (!strcmp(field_str, item)) { g_free(item); g_flag = FALSE; break; } g_free(item); } if (g_flag == TRUE) { gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(appGUI->opt->contacts_group_store), &g_iter, NULL, 0); gtk_list_store_append(appGUI->opt->contacts_group_store, &g_iter); gtk_list_store_set(appGUI->opt->contacts_group_store, &g_iter, 0, field_str, -1); } gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, appGUI->cnt->field_type[i]-1, field_str, -1); } } else if (appGUI->cnt->field_type[i]-1 == COLUMN_BIRTH_DAY_DATE) { /* convert birth day date field */ if (p) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, appGUI->cnt->field_type[i]-1, str_to_julian(field_str, DATE_DD_MM_YYYY), -1); } } else if (appGUI->cnt->field_type[i]-1 == COLUMN_NAME_DAY_DATE) { /* convert name day date field */ if (p) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, appGUI->cnt->field_type[i]-1, str_to_julian(field_str, DATE_DD_MM_YYYY), -1); } } else if (p) { /* remaining fields */ gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, appGUI->cnt->field_type[i]-1, field_str, -1); } g_free(field_str); } } gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, COLUMN_FIRST_NAME, &item, -1); if (item == NULL) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_FIRST_NAME, _("None"), -1); } g_free(item); gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, COLUMN_LAST_NAME, &item, -1); if (item == NULL) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_LAST_NAME, _("None"), -1); } g_free(item); gtk_tree_model_get(GTK_TREE_MODEL(appGUI->cnt->contacts_list_store), &iter, COLUMN_GROUP, &item, -1); if (item == NULL) { gtk_list_store_set(appGUI->cnt->contacts_list_store, &iter, COLUMN_GROUP, _("None"), -1); } g_free(item); } } g_free(str); } g_snprintf(tmpbuf, BUFFER_SIZE, "%d %s.\n", n_records-n, ngettext ("contact added", "contacts added", n_records-n)); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW (appGUI->cnt->import_window)); import_window_close_cb (NULL, NULL, appGUI); } /*------------------------------------------------------------------------------*/ void first_row_as_header_cb (GtkToggleButton *button, gpointer user_data) { gint i, j; guint n_records; gchar *str, *field_str; gchar tmpbuf[BUFFER_SIZE]; GUI *appGUI = (GUI *)user_data; n_records = get_number_of_records (appGUI); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)) == TRUE) { if(n_records > 1) { --n_records; } } gtk_adjustment_set_upper(appGUI->cnt->current_record_spinbutton_adj, n_records); gtk_adjustment_set_value (GTK_ADJUSTMENT(appGUI->cnt->current_record_spinbutton_adj), 1.0); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", n_records); gtk_label_set_text (GTK_LABEL(appGUI->cnt->n_records_label), tmpbuf); record_changed_cb (GTK_SPIN_BUTTON (appGUI->cnt->current_record_spinbutton), appGUI); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)) == TRUE) { str = csv_get_line(1, appGUI); if (str != NULL) { for(i=0; i < appGUI->cnt->max_fields; i++) { if ((field_str = csv_get_field(str, i+1)) != NULL) { for(j=0; j < CONTACTS_NUM_COLUMNS; j++) { if (j != COLUMN_PHOTO && j != COLUMN_ID) { if (!strcmp(field_str, appGUI->cnt->contact_fields_tags_name[j*2])) { gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->field_type_comboboxes[i]), j+1); appGUI->cnt->field_type[i] = j+1; break; } } } g_free(field_str); } } g_free(str); } } else { for(i=0; i < appGUI->cnt->max_fields; i++) { gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->field_type_comboboxes[i]), 0); appGUI->cnt->field_type[i] = 0; } } } /*------------------------------------------------------------------------------*/ gboolean add_csv_records (gchar *filename, GUI *appGUI) { GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *hbox1; GtkWidget *label; GtkWidget *max_fields_label; GtkWidget *fields_scrolledwindow; GtkWidget *fields_table; GtkWidget *hseparator; GtkWidget *hbuttonbox; GtkWidget *cancel_button; GtkWidget *import_button; gchar *str, *field_str, *text; guint record, fields, n_records, i, j; gchar tmpbuf[BUFFER_SIZE]; if (g_access (filename, R_OK) != -1) { appGUI->cnt->file_buffer = NULL; appGUI->cnt->file_length = 0; if (g_file_get_contents (filename, &appGUI->cnt->file_buffer, &appGUI->cnt->file_length, NULL) == TRUE) { /* get maximum number of fields */ n_records = get_number_of_records (appGUI); if (n_records) { record = 1; appGUI->cnt->max_fields = 0; for (record = 1; record <= n_records; record++) { str = csv_get_line(record, appGUI); if (str != NULL) { fields = 0; while ((field_str = csv_get_field(str, fields+1)) != NULL) { g_free(field_str); fields++; } g_free(str); if (fields > appGUI->cnt->max_fields) { appGUI->cnt->max_fields = fields; } } } if (appGUI->cnt->max_fields > CONTACTS_NUM_COLUMNS) { appGUI->cnt->max_fields = CONTACTS_NUM_COLUMNS; } /* create gui */ appGUI->cnt->import_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (appGUI->cnt->import_window), _("Import contacts")); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->import_window), 6); gtk_window_move (GTK_WINDOW (appGUI->cnt->import_window), config.contacts_import_win_x, config.contacts_import_win_y); gtk_window_set_default_size (GTK_WINDOW(appGUI->cnt->import_window), config.contacts_import_win_w, config.contacts_import_win_h); if (config.fullscreen == FALSE) { gtk_window_set_transient_for(GTK_WINDOW(appGUI->cnt->import_window), GTK_WINDOW(appGUI->main_window)); } gtk_window_set_modal(GTK_WINDOW(appGUI->cnt->import_window), TRUE); g_signal_connect (G_OBJECT (appGUI->cnt->import_window), "key_press_event", G_CALLBACK (import_key_press_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->cnt->import_window), "delete_event", G_CALLBACK(import_window_close_cb), appGUI); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (appGUI->cnt->import_window), vbox1); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0); hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", n_records); appGUI->cnt->n_records_label = gtk_label_new (tmpbuf); gtk_widget_show (appGUI->cnt->n_records_label); gtk_box_pack_end (GTK_BOX (hbox1), appGUI->cnt->n_records_label, FALSE, FALSE, 0); gtk_widget_set_margin_left (appGUI->cnt->n_records_label, 6); gtk_widget_set_margin_right (appGUI->cnt->n_records_label, 6); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("of")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_end (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_margin_left (label, 6); gtk_widget_set_margin_right (label, 6); appGUI->cnt->current_record_spinbutton_adj = gtk_adjustment_new (1, 1, n_records, 1, 10, 0); appGUI->cnt->current_record_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (appGUI->cnt->current_record_spinbutton_adj), 1, 0); gtk_widget_show (appGUI->cnt->current_record_spinbutton); g_signal_connect (G_OBJECT (appGUI->cnt->current_record_spinbutton), "value-changed", G_CALLBACK(record_changed_cb), appGUI); gtk_box_pack_end (GTK_BOX (hbox1), appGUI->cnt->current_record_spinbutton, FALSE, FALSE, 0); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Record")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_end (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_margin_left (label, 6); gtk_widget_set_margin_right (label, 6); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Number fields per record")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_margin_left (label, 6); gtk_widget_set_margin_right (label, 6); g_snprintf(tmpbuf, BUFFER_SIZE, "%d", appGUI->cnt->max_fields); max_fields_label = gtk_label_new (tmpbuf); gtk_widget_show (max_fields_label); gtk_box_pack_start (GTK_BOX (hbox1), max_fields_label, FALSE, FALSE, 0); gtk_widget_set_margin_left (max_fields_label, 6); gtk_widget_set_margin_right (max_fields_label, 6); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox2), hseparator, FALSE, TRUE, 8); fields_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (fields_scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox2), fields_scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (fields_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); fields_table = gtk_grid_new (); gtk_widget_show (fields_table); gtk_container_set_border_width (GTK_CONTAINER (fields_table), 4); gtk_container_add(GTK_CONTAINER(fields_scrolledwindow), fields_table); gtk_grid_set_row_spacing (GTK_GRID (fields_table), 4); gtk_grid_set_column_spacing (GTK_GRID (fields_table), 4); g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Use first record as header")); appGUI->cnt->first_row_as_header_check_button = gtk_check_button_new_with_mnemonic (tmpbuf); gtk_widget_show (appGUI->cnt->first_row_as_header_check_button); gtk_box_pack_start (GTK_BOX (vbox1), appGUI->cnt->first_row_as_header_check_button, FALSE, TRUE, 4); gtk_widget_set_can_focus(appGUI->cnt->first_row_as_header_check_button, FALSE); g_signal_connect (G_OBJECT (appGUI->cnt->first_row_as_header_check_button), "toggled", G_CALLBACK (first_row_as_header_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hseparator); gtk_box_pack_start (GTK_BOX (vbox1), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_show (hbuttonbox); gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox, FALSE, TRUE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 8); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_widget_show (cancel_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); gtk_widget_set_can_default (cancel_button, TRUE); g_signal_connect(cancel_button, "clicked", G_CALLBACK(button_import_window_close_cb), appGUI); import_button = gtk_button_new_with_mnemonic (_("Import")); gtk_widget_show (import_button); gtk_container_add (GTK_CONTAINER (hbuttonbox), import_button); gtk_widget_set_can_default (import_button, TRUE); g_signal_connect(import_button, "clicked", G_CALLBACK(start_import_cb), appGUI); gtk_widget_show(appGUI->cnt->import_window); gtk_widget_set_sensitive (fields_table, FALSE); gtk_widget_set_sensitive (appGUI->cnt->current_record_spinbutton, FALSE); gtk_widget_set_sensitive (appGUI->cnt->first_row_as_header_check_button, FALSE); gtk_widget_set_sensitive (cancel_button, FALSE); gtk_widget_set_sensitive (import_button, FALSE); while (g_main_context_iteration(NULL, FALSE)); str = csv_get_line(1, appGUI); for(i=0; i < appGUI->cnt->max_fields; i++) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Field type")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (fields_table), label, 0, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Value")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_grid_attach (GTK_GRID (fields_table), label, 2, i, 1, 1); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); gtk_widget_set_margin_left (label, 8); gtk_widget_set_margin_right (label, 8); appGUI->cnt->value_labels[i] = gtk_label_new (""); gtk_widget_show (appGUI->cnt->value_labels[i]); gtk_widget_set_hexpand(appGUI->cnt->value_labels[i], TRUE); gtk_grid_attach (GTK_GRID (fields_table), appGUI->cnt->value_labels[i], 3, i, 1, 1); gtk_widget_set_size_request (appGUI->cnt->value_labels[i], 50, -1); gtk_widget_set_valign(appGUI->cnt->value_labels[i], GTK_ALIGN_START); gtk_widget_set_halign(appGUI->cnt->value_labels[i], GTK_ALIGN_CENTER); gtk_widget_set_margin_left (appGUI->cnt->value_labels[i], 8); gtk_widget_set_margin_right (appGUI->cnt->value_labels[i], 8); appGUI->cnt->field_type_comboboxes[i] = gtk_combo_box_text_new (); gtk_widget_show (appGUI->cnt->field_type_comboboxes[i]); gtk_widget_set_hexpand(appGUI->cnt->field_type_comboboxes[i], TRUE); gtk_grid_attach (GTK_GRID (fields_table), appGUI->cnt->field_type_comboboxes[i], 1, i, 1, 1); gtk_container_set_border_width (GTK_CONTAINER (appGUI->cnt->field_type_comboboxes[i]), 4); g_snprintf(tmpbuf, BUFFER_SIZE, "[%s]", _("None")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->field_type_comboboxes[i]), NULL, tmpbuf); for(j = 0; j < CONTACTS_NUM_COLUMNS; j++) { gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (appGUI->cnt->field_type_comboboxes[i]), NULL, gettext(appGUI->cnt->contact_fields_tags_name[j*2])); } gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->field_type_comboboxes[i]), 0); appGUI->cnt->field_type[i] = 0; gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (appGUI->cnt->field_type_comboboxes[i]), 4); g_signal_connect (G_OBJECT (appGUI->cnt->field_type_comboboxes[i]), "changed", G_CALLBACK(type_changed_cb), &(appGUI->cnt->field_type[i])); if (str != NULL) { if ((field_str = csv_get_field(str, i+1)) != NULL) { if (g_utf8_validate(field_str, -1, NULL) == FALSE) { text = g_convert_with_fallback(field_str, -1, "utf-8", "iso-8859-1", "?", NULL, NULL, NULL); g_free(field_str); field_str = text; } gtk_label_set_text (GTK_LABEL(appGUI->cnt->value_labels[i]), field_str); g_free(field_str); } } while (g_main_context_iteration(NULL, FALSE)); } if (str != NULL) { g_free(str); } gtk_widget_set_sensitive (fields_table, TRUE); gtk_widget_set_sensitive (appGUI->cnt->current_record_spinbutton, TRUE); gtk_widget_set_sensitive (appGUI->cnt->first_row_as_header_check_button, TRUE); gtk_widget_set_sensitive (cancel_button, TRUE); gtk_widget_set_sensitive (import_button, TRUE); } else { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("No records found in selected file."), GTK_WINDOW(appGUI->main_window)); return FALSE; } } else { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot read file."), GTK_WINDOW(appGUI->main_window)); return FALSE; } } else { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot open file."), GTK_WINDOW(appGUI->main_window)); return FALSE; } return TRUE; } /*------------------------------------------------------------------------------*/ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/gui.c0000664000175000017500000020114013161167413011135 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "gui.h" #include "about.h" #include "i18n.h" #include "utils.h" #include "utils_gui.h" #include "utils_date.h" #include "calendar.h" #include "calendar_notes.h" #include "calendar_fullyear.h" #include "calendar_widget.h" #include "calendar_jumpto.h" #include "calendar_calc.h" #ifdef HAVE_LIBICAL #include "calendar_ical.h" #endif /* HAVE_LIBICAL */ #include "calendar_utils.h" #include "notes.h" #include "notes_items.h" #include "tasks.h" #include "tasks_items.h" #include "tasks_utils.h" #include "notes_items.h" #include "contacts.h" #include "contacts_items.h" #include "options_prefs.h" #include "check_events.h" #include "stock_icons.h" #include "preferences_gui.h" #include "calendar_preferences_gui.h" #include "config.h" #include "gui_icon.h" #ifndef WIN32 #include #endif /* WIN32 */ struct osmo_prefs config; /*------------------------------------------------------------------------------*/ void gui_quit_osmo_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; gui_quit_osmo(appGUI); } /*------------------------------------------------------------------------------*/ void gui_show_about_window_cb(GtkToolButton *toolbutton, gpointer data) { GUI *appGUI = (GUI *) data; GtkWidget *window = opt_create_about_window(appGUI); gtk_widget_show(window); } /*------------------------------------------------------------------------------*/ void gui_save_data_and_run_command (gchar *command, GUI *appGUI) { gui_save_all_data (appGUI); utl_run_command (command, FALSE); } /*------------------------------------------------------------------------------*/ void gui_save_all_data (GUI *appGUI) { cal_write_notes (appGUI); #ifdef TASKS_ENABLED store_task_columns_info (appGUI); write_tasks_entries (appGUI); #endif /* TASKS_ENABLED */ #ifdef HAVE_LIBICAL write_ical_entries (appGUI); ics_calendar_refresh (appGUI); #endif /* HAVE_LIBICAL */ #ifdef CONTACTS_ENABLED store_contact_columns_info (appGUI); write_contacts_entries (appGUI); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED store_note_columns_info (appGUI); write_notes_entries (appGUI); #endif /* NOTES_ENABLED */ prefs_write_config (appGUI); } /*------------------------------------------------------------------------------*/ void gui_toggle_window_visibility (GUI *appGUI) { if (appGUI->no_tray == FALSE) { appGUI->window_visible = !appGUI->window_visible; if (appGUI->window_visible == TRUE) { gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_window_set_default_size (GTK_WINDOW(appGUI->main_window), config.window_size_x, config.window_size_y); gtk_window_move (GTK_WINDOW (appGUI->main_window), config.window_x, config.window_y); gtk_widget_show (appGUI->main_window); } else { if (appGUI->calendar_only == FALSE) { gui_save_all_data (appGUI); gtk_window_get_size (GTK_WINDOW(appGUI->main_window), &config.window_size_x, &config.window_size_y); gdk_window_get_root_origin (gtk_widget_get_window(appGUI->main_window), &config.window_x, &config.window_y); } gtk_widget_hide (appGUI->main_window); } } } /*------------------------------------------------------------------------------*/ void gui_toggle_fullscreen (GUI *appGUI) { if (config.fullscreen == FALSE) { gtk_window_fullscreen (GTK_WINDOW(appGUI->main_window)); config.fullscreen = TRUE; } else { gtk_window_unfullscreen (GTK_WINDOW(appGUI->main_window)); config.fullscreen = FALSE; } } /*------------------------------------------------------------------------------*/ void gui_quit_osmo (GUI *appGUI) { #ifdef NOTES_ENABLED if (appGUI->nte->editor_active == TRUE) { editor_close_cb (NULL, appGUI); } #endif /* NOTES_ENABLED */ if (appGUI->osmo_trayicon != NULL) { gtk_status_icon_set_visible (appGUI->osmo_trayicon, FALSE); } if (appGUI->calendar_only == FALSE) { if (appGUI->current_tab == PAGE_CALENDAR #ifdef TASKS_ENABLED || appGUI->current_tab == PAGE_TASKS #endif /* TASKS ENABLED */ #if defined(NOTES_ENABLED) && defined(CONTACTS_ENABLED) || appGUI->current_tab == PAGE_CONTACTS || appGUI->current_tab == PAGE_NOTES) { #elif CONTACTS_ENABLED || appGUI->current_tab == PAGE_CONTACTS) { #else ) { #endif /* NOTES_ENABLED && CONTACTS_ENABLED */ config.latest_tab = appGUI->current_tab; } #ifdef CONTACTS_ENABLED config.find_mode = gtk_combo_box_get_active (GTK_COMBO_BOX(appGUI->cnt->contacts_find_combobox)); #endif /* CONTACTS_ENABLED */ #ifdef TASKS_ENABLED config.current_category_in_tasks = gtk_combo_box_get_active (GTK_COMBO_BOX(appGUI->tsk->cf_combobox)); #endif /* TASKS_ENABLED */ #ifdef NOTES_ENABLED config.current_category_in_notes = gtk_combo_box_get_active (GTK_COMBO_BOX(appGUI->nte->cf_combobox)); #endif /* NOTES_ENABLED */ gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), FALSE); if (appGUI->window_visible == TRUE) { if (!config.fullscreen) { gtk_window_get_size (GTK_WINDOW(appGUI->main_window), &config.window_size_x, &config.window_size_y); } } } if (appGUI->window_visible == TRUE) { gdk_window_get_root_origin (gtk_widget_get_window(appGUI->main_window), &config.window_x, &config.window_y); } pango_font_description_free(appGUI->cal->fd_day_name_font); pango_font_description_free(appGUI->cal->fd_cal_font); pango_font_description_free(appGUI->cal->fd_notes_font); if (appGUI->calendar_only == FALSE) { g_source_remove(appGUI->timer); config.lastrun_date = utl_date_get_current_julian (); config.lastrun_time = utl_time_get_current_seconds (); gui_save_all_data (appGUI); #ifdef HAVE_LIBNOTIFY #ifdef TASKS_ENABLED free_notifications_list (appGUI); #endif /* TASKS_ENABLED */ #endif /* HAVE_LIBNOTIFY */ cal_free_notes_list (appGUI); } utl_gui_url_remove_links (&appGUI->about_links_list, &appGUI->about_link_index); gtk_main_quit (); } /*------------------------------------------------------------------------------*/ void gui_window_close_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } else { gui_quit_osmo (appGUI); } } /*------------------------------------------------------------------------------*/ void gui_activate_find_fields (GUI *appGUI) { #ifdef NOTES_ENABLED if (appGUI->current_tab == PAGE_NOTES) { gtk_widget_grab_focus (GTK_WIDGET(appGUI->nte->notes_find_entry)); } #endif /* NOTES_ENABLED */ #ifdef TASKS_ENABLED if (appGUI->current_tab == PAGE_TASKS) { gtk_widget_grab_focus (GTK_WIDGET(appGUI->tsk->tasks_find_entry)); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (appGUI->current_tab == PAGE_CONTACTS) { gtk_widget_grab_focus (GTK_WIDGET(appGUI->cnt->contacts_find_entry)); } #endif /* CONTACTS_ENABLED */ } /*------------------------------------------------------------------------------*/ gint get_first_active_page (GUI *appGUI) { if (!config.hide_calendar) return PAGE_CALENDAR; #ifdef TASKS_ENABLED if (!config.hide_tasks) return PAGE_TASKS; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (!config.hide_contacts) return PAGE_CONTACTS; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED if (!config.hide_notes) return PAGE_NOTES; #endif /* NOTES_ENABLED */ return PAGE_CALENDAR; } /*------------------------------------------------------------------------------*/ void set_visible_page (gint page, gboolean dir, GUI *appGUI) { gboolean flag; gint n = 1; if (dir == FALSE) n = -1; page += n; flag = TRUE; while (flag) { flag = FALSE; switch (page) { case PAGE_CALENDAR: if (config.hide_calendar) { page += n; flag = TRUE; } break; #ifdef TASKS_ENABLED case PAGE_TASKS: if (config.hide_tasks) { page += n; flag = TRUE; } break; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED case PAGE_CONTACTS: if (config.hide_contacts) { page += n; flag = TRUE; } break; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED case PAGE_NOTES: if (config.hide_notes) { page += n; flag = TRUE; } break; #endif /* NOTES_ENABLED */ } } if (dir == FALSE) { appGUI->current_tab = (page < 0) ? appGUI->number_of_tabs-1:page; } else { appGUI->current_tab = (page == appGUI->number_of_tabs) ? get_first_active_page(appGUI):page; } gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), appGUI->current_tab); gui_activate_find_fields (appGUI); } /*------------------------------------------------------------------------------*/ static gint get_visible_tabs (GUI *appGUI) { gint i = 0; if (!config.hide_calendar) i++; #ifdef TASKS_ENABLED if (!config.hide_tasks) i++; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (!config.hide_contacts) i++; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED if (!config.hide_notes) i++; #endif /* NOTES_ENABLED */ return i; } /*------------------------------------------------------------------------------*/ static void select_tab (gint tab, GUI *appGUI) { gint i, n = 0; if (tab >= get_visible_tabs (appGUI)) return; for (i = PAGE_CALENDAR; i < NUMBER_OF_TABS; i++) { if (i == PAGE_CALENDAR && !config.hide_calendar) n++; #ifdef TASKS_ENABLED if (i == PAGE_TASKS && !config.hide_tasks) n++; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (i == PAGE_CONTACTS && !config.hide_contacts) n++; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED if (i == PAGE_NOTES && !config.hide_notes) n++; #endif /* NOTES_ENABLED */ if (n == tab + 1) { gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), i); break; } } gui_activate_find_fields (appGUI); } /*------------------------------------------------------------------------------*/ void key_counter_add (gint value, GUI *appGUI) { GtkWidget *dialog; GtkWidget *image; gchar *tmpbuff; appGUI->key_counter += value; if (appGUI->key_counter == 57) { tmpbuff = g_strdup_printf("%d times!", config.run_counter); dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(appGUI->main_window), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, tmpbuff, NULL); gtk_window_set_title (GTK_WINDOW(dialog), _("Counter")); image = gtk_image_new_from_icon_name(OSMO_STOCK_INFO_HELP, GTK_ICON_SIZE_DIALOG); gtk_widget_show (image); gtk_message_dialog_set_image(GTK_MESSAGE_DIALOG(dialog), image); gtk_widget_show (dialog); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); g_free(tmpbuff); } else if (appGUI->key_counter == 41) { appGUI->cal->datecal_bio = TRUE; } } /*------------------------------------------------------------------------------*/ gint key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { gint page; page = gtk_notebook_get_current_page (GTK_NOTEBOOK(appGUI->notebook)); /************************************************************************/ /*** CALENDAR PAGE ***/ /************************************************************************/ if(page == PAGE_CALENDAR) { if (!config.day_notes_visible) { switch (event->keyval) { case GDK_KEY_Left: calendar_btn_prev_day(appGUI); return TRUE; case GDK_KEY_Right: calendar_btn_next_day(appGUI); return TRUE; case GDK_KEY_Up: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Up */ utl_gui_sw_vscrollbar_move_position (appGUI->cal->day_info_scrolledwindow, SW_MOVE_UP); return TRUE; } else { calendar_btn_prev_week(appGUI); return TRUE; } return FALSE; case GDK_KEY_Down: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Up */ utl_gui_sw_vscrollbar_move_position (appGUI->cal->day_info_scrolledwindow, SW_MOVE_DOWN); return TRUE; } else { calendar_btn_next_week(appGUI); return TRUE; } return FALSE; case GDK_KEY_Home: calendar_btn_prev_year(appGUI); return TRUE; case GDK_KEY_End: calendar_btn_next_year(appGUI); return TRUE; case GDK_KEY_Return: if (appGUI->calendar_only == FALSE) { gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), !gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button))); } return TRUE; case GDK_KEY_space: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Space */ config.enable_day_mark = !config.enable_day_mark; cal_refresh_marks (appGUI); cal_set_day_info (appGUI); update_aux_calendars (appGUI); return TRUE; } else { calendar_set_today (appGUI); return TRUE; } case GDK_KEY_Delete: if (appGUI->calendar_only == FALSE) { calendar_clear_text_cb (NULL, appGUI); } return TRUE; case GDK_KEY_g: calendar_create_jumpto_window (appGUI); return TRUE; case GDK_KEY_f: calendar_create_fullyear_window (appGUI); return TRUE; case GDK_KEY_c: calendar_create_color_selector_window (TRUE, appGUI); key_counter_add (13, appGUI); return TRUE; case GDK_KEY_d: calendar_create_calc_window (appGUI); return TRUE; case GDK_KEY_a: if (!config.gui_layout) { gtk_expander_set_expanded (GTK_EXPANDER (appGUI->cal->aux_cal_expander), !gtk_expander_get_expanded (GTK_EXPANDER (appGUI->cal->aux_cal_expander))); } key_counter_add (5, appGUI); return TRUE; case GDK_KEY_b: if (appGUI->calendar_only == FALSE) { cal_notes_browser (appGUI); } key_counter_add (11, appGUI); return TRUE; case GDK_KEY_i: key_counter_add (9, appGUI); return TRUE; case GDK_KEY_o: key_counter_add (21, appGUI); return TRUE; } } switch (event->keyval) { case GDK_KEY_Escape: if (appGUI->calendar_only == FALSE) { if (gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button)) == FALSE) { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } else { gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(appGUI->cal->notes_button), FALSE); } } return TRUE; case GDK_KEY_Left: if (event->state & GDK_MOD1_MASK) { /* ALT + Left */ calendar_btn_prev_day(appGUI); return TRUE; } return FALSE; case GDK_KEY_Right: if (event->state & GDK_MOD1_MASK) { /* ALT + Right */ calendar_btn_next_day(appGUI); return TRUE; } return FALSE; case GDK_KEY_Up: if (event->state & GDK_MOD1_MASK) { /* ALT + Up */ calendar_btn_prev_week(appGUI); return TRUE; } return FALSE; case GDK_KEY_Down: if (event->state & GDK_MOD1_MASK) { /* ALT + Down */ calendar_btn_next_week(appGUI); return TRUE; } return FALSE; case GDK_KEY_b: if (event->state & GDK_CONTROL_MASK) { /* CTRL + b */ g_signal_emit_by_name(G_OBJECT(appGUI->cal->ta_bold_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_i: if (event->state & GDK_CONTROL_MASK) { /* CTRL + i */ g_signal_emit_by_name(G_OBJECT(appGUI->cal->ta_italic_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_m: if (event->state & GDK_CONTROL_MASK) { /* CTRL + m */ g_signal_emit_by_name(G_OBJECT(appGUI->cal->ta_highlight_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_u: if (event->state & GDK_CONTROL_MASK) { /* CTRL + u */ g_signal_emit_by_name(G_OBJECT(appGUI->cal->ta_underline_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_t: if (event->state & GDK_CONTROL_MASK) { /* CTRL + t */ g_signal_emit_by_name(G_OBJECT(appGUI->cal->ta_strikethrough_button), "clicked"); return TRUE; } return FALSE; } } #ifdef TASKS_ENABLED /************************************************************************/ /*** TASKS PAGE ***/ /************************************************************************/ if(page == PAGE_TASKS) { switch (event->keyval) { case GDK_KEY_Escape: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } else { if (strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->tsk->tasks_find_entry)))) { gtk_entry_set_text(GTK_ENTRY(appGUI->tsk->tasks_find_entry), ""); } else { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } } return TRUE; case GDK_KEY_Return: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (event->state & GDK_CONTROL_MASK) { /* CTRL + Enter */ if (gtk_tree_selection_count_selected_rows (appGUI->tsk->tasks_list_selection) == 1) { tasks_add_edit_dialog_show (TRUE, 0, utl_time_get_current_seconds (), appGUI); return TRUE; } } return TRUE; } else { gtk_widget_grab_focus(GTK_WIDGET(appGUI->tsk->tasks_list)); return TRUE; } case GDK_KEY_space: /* don't use space key for marking task as done */ if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { return TRUE; } else { return FALSE; } case GDK_KEY_h: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (event->state & GDK_CONTROL_MASK) { /* CTRL + h */ config.hide_completed = !config.hide_completed; gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(appGUI->tsk->tasks_filter)); } return TRUE; } return FALSE; case GDK_KEY_Delete: if (gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (gtk_tree_selection_count_selected_rows(appGUI->tsk->tasks_list_selection) > 0) { tasks_remove_dialog_show(appGUI); return TRUE; } } return FALSE; case GDK_KEY_Insert: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { tasks_add_edit_dialog_show (FALSE, 0, utl_time_get_current_seconds (), appGUI); return TRUE; } return FALSE; case GDK_KEY_Left: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (appGUI->tsk->filter_index > 0) { appGUI->tsk->filter_index--; gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->tsk->cf_combobox), appGUI->tsk->filter_index); } return TRUE; } return FALSE; case GDK_KEY_Right: if(gtk_widget_is_focus(appGUI->tsk->tasks_find_entry) == FALSE) { if (appGUI->tsk->filter_index < utl_gui_get_combobox_items(GTK_COMBO_BOX(appGUI->tsk->cf_combobox))-1) { appGUI->tsk->filter_index++; gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->tsk->cf_combobox), appGUI->tsk->filter_index); } return TRUE; } return FALSE; case GDK_KEY_y: key_counter_add (26, appGUI); return FALSE; case GDK_KEY_l: if (event->state & GDK_CONTROL_MASK) { /* CTRL + l */ gtk_widget_grab_focus(GTK_WIDGET(appGUI->tsk->tasks_find_entry)); return TRUE; } return FALSE; } } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED /************************************************************************/ /*** CONTACTS PAGE ***/ /************************************************************************/ if(page == PAGE_CONTACTS) { switch (event->keyval) { case GDK_KEY_Escape: if (gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } else { if (strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->cnt->contacts_find_entry)))) { gtk_entry_set_text(GTK_ENTRY(appGUI->cnt->contacts_find_entry), ""); } else { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } } return TRUE; case GDK_KEY_Return: if(gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { if (event->state & GDK_CONTROL_MASK) { /* CTRL + Enter */ if (gtk_tree_selection_count_selected_rows (appGUI->cnt->contacts_list_selection) == 1) { contacts_add_edit_dialog_show (TRUE, appGUI); return TRUE; } } if (gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { utl_gui_sw_vscrollbar_move_position (appGUI->cnt->contacts_panel_scrolledwindow, SW_MOVE_DOWN); return TRUE; } return TRUE; } else { gtk_widget_grab_focus(GTK_WIDGET(appGUI->cnt->contacts_list)); return TRUE; } return FALSE; case GDK_KEY_BackSpace: if(gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { utl_gui_sw_vscrollbar_move_position (appGUI->cnt->contacts_panel_scrolledwindow, SW_MOVE_UP); return TRUE; } return FALSE; case GDK_KEY_Delete: if(gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { if (gtk_tree_selection_count_selected_rows(appGUI->cnt->contacts_list_selection) > 0) { contacts_remove_dialog_show(appGUI); return TRUE; } } return FALSE; case GDK_KEY_Insert: if(gtk_widget_is_focus(appGUI->cnt->contacts_find_entry) == FALSE) { contacts_add_edit_dialog_show (FALSE, appGUI); return TRUE; } return FALSE; case GDK_KEY_Down: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Down */ if (config.find_mode < CONTACTS_FF_ALL_FIELDS) { config.find_mode++; } gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->contacts_find_combobox), config.find_mode); return TRUE; } return FALSE; case GDK_KEY_Up: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Up */ if (config.find_mode > CONTACTS_FF_FIRST_NAME) { config.find_mode--; } gtk_combo_box_set_active (GTK_COMBO_BOX (appGUI->cnt->contacts_find_combobox), config.find_mode); return TRUE; } return FALSE; case GDK_KEY_l: if (event->state & GDK_CONTROL_MASK) { /* CTRL + l */ gtk_widget_grab_focus(GTK_WIDGET(appGUI->cnt->contacts_find_entry)); return TRUE; } return FALSE; } } #endif /* CONTACTS_ENABLED */ /************************************************************************/ /*** NOTES PAGE ***/ /************************************************************************/ #ifdef NOTES_ENABLED if(page == PAGE_NOTES) { if (appGUI->nte->editor_active == FALSE) { /* SELECTOR */ switch (event->keyval) { case GDK_KEY_Return: if(gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { if (gtk_tree_selection_count_selected_rows (appGUI->nte->notes_list_selection) == 1) { if (event->state & GDK_CONTROL_MASK) { /* CTRL + Enter */ notes_edit_dialog_show(appGUI->nte->notes_list, appGUI->nte->notes_filter, appGUI); } else { notes_enter_password (appGUI); } return TRUE; } return FALSE; } else { gtk_widget_grab_focus(GTK_WIDGET(appGUI->nte->notes_list)); return TRUE; } case GDK_KEY_Delete: if (gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { if (gtk_tree_selection_count_selected_rows(appGUI->nte->notes_list_selection) > 0) { notes_remove_dialog_show(appGUI); return TRUE; } } return FALSE; case GDK_KEY_Insert: if(gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { notes_add_entry (appGUI); return TRUE; } return FALSE; case GDK_KEY_Left: if(gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { if (appGUI->nte->filter_index > 0) { appGUI->nte->filter_index--; gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->nte->cf_combobox), appGUI->nte->filter_index); } return TRUE; } return FALSE; case GDK_KEY_Right: if(gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { if (appGUI->nte->filter_index < utl_gui_get_combobox_items(GTK_COMBO_BOX(appGUI->nte->cf_combobox))-1) { appGUI->nte->filter_index++; gtk_combo_box_set_active(GTK_COMBO_BOX(appGUI->nte->cf_combobox), appGUI->nte->filter_index); } return TRUE; } return FALSE; case GDK_KEY_Escape: if(gtk_widget_is_focus(appGUI->nte->notes_find_entry) == FALSE) { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } else { if (strlen(gtk_entry_get_text(GTK_ENTRY(appGUI->nte->notes_find_entry)))) { gtk_entry_set_text(GTK_ENTRY(appGUI->nte->notes_find_entry), ""); } else { if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } } } return TRUE; case GDK_KEY_l: if (event->state & GDK_CONTROL_MASK) { /* CTRL + l */ gtk_widget_grab_focus(GTK_WIDGET(appGUI->nte->notes_find_entry)); return TRUE; } return FALSE; } } else { /* EDITOR */ switch (event->keyval) { case GDK_KEY_w: if (event->state & GDK_CONTROL_MASK) { /* CTRL + w */ editor_close_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_Escape: if (appGUI->nte->find_hbox_visible == FALSE) { editor_close_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_b: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + b */ g_signal_emit_by_name(G_OBJECT(appGUI->nte->bold_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_i: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + i */ g_signal_emit_by_name(G_OBJECT(appGUI->nte->italic_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_m: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + m */ g_signal_emit_by_name(G_OBJECT(appGUI->nte->highlight_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_u: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + u */ g_signal_emit_by_name(G_OBJECT(appGUI->nte->underline_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_t: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + t */ g_signal_emit_by_name(G_OBJECT(appGUI->nte->strikethrough_button), "clicked"); return TRUE; } return FALSE; case GDK_KEY_s: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + s */ editor_save_buffer_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_f: if (event->state & GDK_CONTROL_MASK) { /* CTRL + f */ editor_find_text_show_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_n: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + n */ clear_text_attributes_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_o: if ((event->state & GDK_CONTROL_MASK) && !appGUI->nte->note_read_only) { /* CTRL + o */ open_url_links_cb (NULL, appGUI); return TRUE; } return FALSE; case GDK_KEY_period: if ((event->state & GDK_CONTROL_MASK)) { /* CTRL + . */ text_info_cb (NULL, appGUI); return TRUE; } return FALSE; } } } #endif /* NOTES_ENABLED */ /************************************************************************/ /*** GLOBAL SHORTCUTS ***/ /************************************************************************/ switch (event->keyval) { case GDK_KEY_Escape: if (config.enable_systray == TRUE && appGUI->no_tray == FALSE && appGUI->calendar_only == FALSE) { gui_toggle_window_visibility (appGUI); } return FALSE; case GDK_KEY_q: if (event->state & GDK_CONTROL_MASK) { /* CTRL + Q */ gui_quit_osmo (appGUI); } return FALSE; case GDK_KEY_Page_Up: #ifdef NOTES_ENABLED if (appGUI->nte->editor_active == FALSE) { #endif /* NOTES_ENABLED */ if (event->state & GDK_CONTROL_MASK) { /* CTRL + Page_Up */ set_visible_page(appGUI->current_tab, FALSE, appGUI); return TRUE; } else if (page == PAGE_CALENDAR) { if (config.day_notes_visible) { if (event->state & GDK_MOD1_MASK) { /* ALT + Page_Up */ calendar_btn_prev_month(appGUI); return TRUE; } } else { calendar_btn_prev_month(appGUI); return TRUE; } } #ifdef NOTES_ENABLED } #endif /* NOTES_ENABLED */ return FALSE; case GDK_KEY_Page_Down: #ifdef NOTES_ENABLED if (appGUI->nte->editor_active == FALSE) { #endif /* NOTES_ENABLED */ if (event->state & GDK_CONTROL_MASK) { /* CTRL + Page_Down */ set_visible_page(appGUI->current_tab, TRUE, appGUI); return TRUE; } else if (page == PAGE_CALENDAR) { if (config.day_notes_visible) { if (event->state & GDK_MOD1_MASK) { /* ALT + Page_Down */ calendar_btn_next_month(appGUI); return TRUE; } } else { calendar_btn_next_month(appGUI); return TRUE; } } #ifdef NOTES_ENABLED } #endif /* NOTES_ENABLED */ return FALSE; case GDK_KEY_F1: select_tab (0, appGUI); return TRUE; case GDK_KEY_1: if ((event->state & GDK_MOD1_MASK)) { /* ALT + 1 */ #if defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) if (event->state & GDK_CONTROL_MASK) { /* CTRL + ALT + 1 */ opt_hide_modules (!config.hide_calendar, config.hide_tasks, config.hide_contacts, config.hide_notes, FALSE, appGUI); select_tab (0, appGUI); } else { #endif select_tab (0, appGUI); #if defined(TASKS_ENABLED) || defined(CONTACTS_ENABLED) || defined(NOTES_ENABLED) } #endif return TRUE; } return FALSE; case GDK_KEY_F2: select_tab (1, appGUI); return TRUE; case GDK_KEY_2: if ((event->state & GDK_MOD1_MASK)) { /* ALT + 2 */ #ifdef TASKS_ENABLED if (event->state & GDK_CONTROL_MASK) { /* CTRL + ALT + 2 */ opt_hide_modules (config.hide_calendar, !config.hide_tasks, config.hide_contacts, config.hide_notes, FALSE, appGUI); select_tab (0, appGUI); } else { #endif /* TASKS_ENABLED */ select_tab (1, appGUI); #ifdef TASKS_ENABLED } #endif /* TASKS_ENABLED */ return TRUE; } return FALSE; case GDK_KEY_F3: select_tab (2, appGUI); return TRUE; case GDK_KEY_3: if ((event->state & GDK_MOD1_MASK)) { /* ALT + 3 */ #ifdef CONTACTS_ENABLED if (event->state & GDK_CONTROL_MASK) { /* CTRL + ALT + 3 */ opt_hide_modules (config.hide_calendar, config.hide_tasks, !config.hide_contacts, config.hide_notes, FALSE, appGUI); select_tab (0, appGUI); } else { #endif /* CONTACTS_ENABLED */ select_tab (2, appGUI); #ifdef CONTACTS_ENABLED } #endif /* CONTACTS_ENABLED */ return TRUE; } return FALSE; case GDK_KEY_F4: select_tab (3, appGUI); return TRUE; case GDK_KEY_4: if ((event->state & GDK_MOD1_MASK)) { /* ALT + 4 */ #ifdef NOTES_ENABLED if (event->state & GDK_CONTROL_MASK) { /* CTRL + ALT + 4 */ opt_hide_modules (config.hide_calendar, config.hide_tasks, config.hide_contacts, !config.hide_notes, FALSE, appGUI); select_tab (0, appGUI); } else { #endif /* NOTES_ENABLED */ select_tab (3, appGUI); #ifdef NOTES_ENABLED } #endif /* NOTES_ENABLED */ return TRUE; } return FALSE; case GDK_KEY_F5: gtk_widget_show (GTK_WIDGET(opt_create_preferences_window (appGUI))); return TRUE; case GDK_KEY_F6: gtk_widget_show (GTK_WIDGET(opt_create_about_window (appGUI))); return TRUE; case GDK_KEY_F11: /* full screen */ gui_toggle_fullscreen (appGUI); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void notebook_sw_cb (GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data) { GUI *appGUI = (GUI *)user_data; #ifdef NOTES_ENABLED if (appGUI->nte->editor_active == TRUE) { editor_close_cb (NULL, appGUI); } #endif /* NOTES_ENABLED */ appGUI->current_tab = page_num; } /*------------------------------------------------------------------------------*/ gboolean trayicon_clicked_cb (GtkStatusIcon *status_icon, GdkEventButton *event, gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (event->button == 1) { /* LMB */ gui_toggle_window_visibility (appGUI); return TRUE; } else if (event->button == 2) { /* MMB */ gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ void trayicon_popup_cb (GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) { GUI *appGUI = (GUI *)user_data; gtk_menu_popup(GTK_MENU(appGUI->trayicon_popup_menu), NULL, NULL, NULL, NULL, button, activate_time); } void systray_popup_menu_quit_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *)user_data; gui_quit_osmo (appGUI); } void systray_popup_menu_show_calendar_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } gtk_window_deiconify (GTK_WINDOW(appGUI->main_window)); gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_CALENDAR); } #ifdef TASKS_ENABLED void systray_popup_menu_show_tasks_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } gtk_window_deiconify (GTK_WINDOW(appGUI->main_window)); gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_TASKS); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED void systray_popup_menu_show_contacts_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } gtk_window_deiconify (GTK_WINDOW(appGUI->main_window)); gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_CONTACTS); } #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED void systray_popup_menu_show_notes_selected_cb (gpointer user_data) { GUI *appGUI = (GUI *)user_data; if (appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } gtk_window_deiconify (GTK_WINDOW(appGUI->main_window)); gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_notebook_set_current_page (GTK_NOTEBOOK (appGUI->notebook), PAGE_NOTES); } #endif /* NOTES_ENABLED */ void systray_popup_menu_show_options_selected_cb (GUI *appGUI) { if (appGUI->window_visible == FALSE) { gtk_widget_show (appGUI->main_window); appGUI->window_visible = TRUE; } gtk_window_deiconify (GTK_WINDOW (appGUI->main_window)); gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); gtk_widget_show (opt_create_preferences_window (appGUI)); } /*------------------------------------------------------------------------------*/ void gui_systray_tooltip_update (GUI *appGUI) { gchar *tstr, *dstr, *text; if (appGUI->osmo_trayicon == NULL) return; dstr = utl_date_print_j (utl_date_get_current_julian (), DATE_FULL, config.override_locale_settings); tstr = utl_time_print_default (utl_time_get_current_seconds (), FALSE); text = g_strdup_printf ("%s, %s", dstr, tstr); gtk_status_icon_set_tooltip_text (appGUI->osmo_trayicon, text); g_free (tstr); g_free (dstr); g_free (text); } /*------------------------------------------------------------------------------*/ void gui_systray_update_icon (GUI *appGUI) { guint32 julian_day; gboolean flag = FALSE; if (appGUI->window_visible == TRUE) return; julian_day = utl_date_get_current_julian (); if (config.ignore_day_note_events == FALSE) { if (cal_check_note (julian_day, appGUI) == TRUE) { gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NOTE); flag = TRUE; } } #ifdef TASKS_ENABLED if (tsk_check_tasks (julian_day, julian_day, STATE_NONE, appGUI)) { gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_TASK); flag = TRUE; } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED if (check_contacts(julian_day, appGUI) == TRUE) { gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_BIRTHDAY); flag = TRUE; } #endif /* CONTACTS_ENABLED */ if (flag == FALSE) { gtk_status_icon_set_from_icon_name (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_NORMAL); } } /*------------------------------------------------------------------------------*/ static GtkWidget * create_menu_item(const gchar *text, GtkWidget *image) { GtkWidget *menu_item = gtk_menu_item_new(); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); GtkWidget *label = gtk_label_new(text); gtk_widget_set_margin_left(label, 6); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_box_pack_start(GTK_BOX(box), image, FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(box), label, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(menu_item), box); gtk_widget_show_all(menu_item); return menu_item; } /*------------------------------------------------------------------------------*/ void gui_systray_initialize (GUI *appGUI) { GtkWidget *menu_entry; GtkWidget *systray_menu_separator; if (appGUI->calendar_only == TRUE) { return; } appGUI->trayicon_popup_menu = gtk_menu_new(); appGUI->trayicon_menu_calendar_item = create_menu_item (_("Show calendar"), gtk_image_new_from_icon_name(OSMO_STOCK_SYSTRAY_MENU_CALENDAR, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL(appGUI->trayicon_popup_menu), appGUI->trayicon_menu_calendar_item); g_signal_connect_swapped (G_OBJECT(appGUI->trayicon_menu_calendar_item), "activate", G_CALLBACK(systray_popup_menu_show_calendar_selected_cb), appGUI); if (config.hide_calendar == FALSE) { gtk_widget_show (appGUI->trayicon_menu_calendar_item); } #ifdef TASKS_ENABLED appGUI->trayicon_menu_tasks_item = create_menu_item (_("Show tasks"), gtk_image_new_from_icon_name(OSMO_STOCK_SYSTRAY_MENU_TASKS, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL(appGUI->trayicon_popup_menu), appGUI->trayicon_menu_tasks_item); g_signal_connect_swapped (G_OBJECT(appGUI->trayicon_menu_tasks_item), "activate", G_CALLBACK(systray_popup_menu_show_tasks_selected_cb), appGUI); if (config.hide_tasks == FALSE) { gtk_widget_show (appGUI->trayicon_menu_tasks_item); } #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED appGUI->trayicon_menu_contacts_item = create_menu_item (_("Show contacts"), gtk_image_new_from_icon_name(OSMO_STOCK_SYSTRAY_MENU_CONTACTS, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL(appGUI->trayicon_popup_menu), appGUI->trayicon_menu_contacts_item); g_signal_connect_swapped (G_OBJECT(appGUI->trayicon_menu_contacts_item), "activate", G_CALLBACK(systray_popup_menu_show_contacts_selected_cb), appGUI); if (config.hide_contacts == FALSE) { gtk_widget_show (appGUI->trayicon_menu_contacts_item); } #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED appGUI->trayicon_menu_notes_item = create_menu_item (_("Show notes"), gtk_image_new_from_icon_name(OSMO_STOCK_SYSTRAY_MENU_NOTES, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL(appGUI->trayicon_popup_menu), appGUI->trayicon_menu_notes_item); g_signal_connect_swapped (G_OBJECT(appGUI->trayicon_menu_notes_item), "activate", G_CALLBACK(systray_popup_menu_show_notes_selected_cb), appGUI); if (config.hide_notes == FALSE) { gtk_widget_show (appGUI->trayicon_menu_notes_item); } #endif /* NOTES_ENABLED */ systray_menu_separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->trayicon_popup_menu), systray_menu_separator); gtk_widget_show(systray_menu_separator); menu_entry = create_menu_item (_("Show options"), gtk_image_new_from_icon_name("preferences-system", GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->trayicon_popup_menu), menu_entry); g_signal_connect_swapped(G_OBJECT(menu_entry), "activate", G_CALLBACK(systray_popup_menu_show_options_selected_cb), appGUI); gtk_widget_show(menu_entry); systray_menu_separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->trayicon_popup_menu), systray_menu_separator); gtk_widget_show(systray_menu_separator); menu_entry = create_menu_item (_("Quit"), gtk_image_new_from_icon_name("application-exit", GTK_ICON_SIZE_MENU)); gtk_menu_shell_append(GTK_MENU_SHELL(appGUI->trayicon_popup_menu), menu_entry); g_signal_connect_swapped(G_OBJECT(menu_entry), "activate", G_CALLBACK(systray_popup_menu_quit_selected_cb), appGUI); gtk_widget_show(menu_entry); /* create tray icon */ appGUI->osmo_trayicon = gtk_status_icon_new_from_icon_name(OSMO_STOCK_SYSTRAY_NORMAL); g_signal_connect(G_OBJECT(appGUI->osmo_trayicon), "button-release-event", G_CALLBACK(trayicon_clicked_cb), appGUI); g_signal_connect(G_OBJECT(appGUI->osmo_trayicon), "popup-menu", G_CALLBACK(trayicon_popup_cb), appGUI); appGUI->window_visible = TRUE; if (config.enable_systray == TRUE) { gtk_status_icon_set_visible (appGUI->osmo_trayicon, TRUE); while (g_main_context_iteration (NULL, FALSE)); if (gtk_status_icon_is_embedded (appGUI->osmo_trayicon) == FALSE) { appGUI->no_tray = TRUE; gtk_status_icon_set_visible (appGUI->osmo_trayicon, FALSE); gtk_widget_show(appGUI->main_window); } else { appGUI->no_tray = FALSE; gtk_status_icon_set_visible (appGUI->osmo_trayicon, TRUE); if (config.start_minimised_in_systray) { appGUI->window_visible = FALSE; } else { gtk_widget_show (appGUI->main_window); } } } else { gtk_status_icon_set_visible (appGUI->osmo_trayicon, FALSE); gtk_widget_show (appGUI->main_window); } gui_systray_update_icon (appGUI); gui_systray_tooltip_update (appGUI); } /*------------------------------------------------------------------------------*/ #ifndef WIN32 static gboolean deliver_signal(gpointer data) { GUI *appGUI = data; gui_quit_osmo(appGUI); return G_SOURCE_CONTINUE; } static void register_signal_handler(GUI *appGUI) { if(g_unix_signal_add(SIGINT, deliver_signal, appGUI) <= 0 || g_unix_signal_add(SIGTERM, deliver_signal, appGUI) <= 0 || g_unix_signal_add(SIGHUP, deliver_signal, appGUI) <= 0) { g_warning("Failed to install the signal handler"); } } #endif /* WIN32 */ /*------------------------------------------------------------------------------*/ gboolean gui_create_window (GUI *appGUI) { GdkScreen *screen; gint sw, sh; gint fdSTDERR, fdSTDERRn; GdkPixbuf *icon; /* disable STDERR temporary - to suppress messages from webkit */ fdSTDERR = dup (STDERR_FILENO); fdSTDERRn = open("/dev/null", O_WRONLY); dup2 (fdSTDERRn, STDERR_FILENO); close (fdSTDERRn); appGUI->all_pages_added = FALSE; appGUI->cal->fd_day_name_font = pango_font_description_from_string(config.day_name_font); appGUI->cal->fd_cal_font = pango_font_description_from_string(config.calendar_font); appGUI->cal->fd_notes_font = pango_font_description_from_string(config.notes_font); appGUI->main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); #ifndef REV gtk_window_set_title (GTK_WINDOW (appGUI->main_window), "Osmo " VERSION_MAJOR "." VERSION_MINOR "." VERSION_MICRO); #else gtk_window_set_title (GTK_WINDOW (appGUI->main_window), "Osmo (development)"); #endif gtk_widget_set_events(appGUI->main_window, GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); icon = gdk_pixbuf_new_from_inline(-1, osmo_icon, FALSE, NULL); gtk_window_set_icon (GTK_WINDOW(appGUI->main_window), icon); g_object_unref(icon); screen = gdk_screen_get_default (); if (screen != NULL) { sw = gdk_screen_get_width (screen); sh = gdk_screen_get_height (screen); if (config.window_x >= sw || config.window_x < 0) config.window_x = 0; if (config.window_y >= sh || config.window_y < 0) config.window_y = 0; } gtk_window_move (GTK_WINDOW (appGUI->main_window), config.window_x, config.window_y); gtk_widget_realize (appGUI->main_window); if (appGUI->calendar_only == FALSE) { gtk_window_set_default_size (GTK_WINDOW(appGUI->main_window), config.window_size_x, config.window_size_y); } else { gtk_window_set_default_size (GTK_WINDOW(appGUI->main_window), 500, -1); } gtk_window_set_resizable (GTK_WINDOW (appGUI->main_window), TRUE); g_signal_connect (G_OBJECT (appGUI->main_window), "delete-event", G_CALLBACK(gui_window_close_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->main_window), "key_press_event", G_CALLBACK (key_press_cb), appGUI); osmo_register_theme_icons (); utl_gui_url_initialize (appGUI); appGUI->notebook = gtk_notebook_new (); gtk_widget_set_can_focus (appGUI->notebook, FALSE); gtk_widget_show (appGUI->notebook); gtk_notebook_set_tab_pos (GTK_NOTEBOOK(appGUI->notebook), config.tabs_position); gtk_container_add (GTK_CONTAINER(appGUI->main_window), appGUI->notebook); g_signal_connect (G_OBJECT(appGUI->notebook), "switch-page", G_CALLBACK(notebook_sw_cb), appGUI); gtk_notebook_set_scrollable (GTK_NOTEBOOK(appGUI->notebook), FALSE); if (appGUI->calendar_only == TRUE) { gtk_notebook_set_show_tabs (GTK_NOTEBOOK(appGUI->notebook), FALSE); } appGUI->opt->calendar_ical_files_store = gtk_list_store_new (ICAL_NUMBER_OF_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); appGUI->opt->calendar_category_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); gui_create_calendar(appGUI->notebook, appGUI); if (appGUI->calendar_only == FALSE) { #ifdef TASKS_ENABLED appGUI->opt->tasks_category_store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); gui_create_tasks (appGUI); #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED appGUI->opt->contacts_group_store = gtk_list_store_new (1, G_TYPE_STRING); gui_create_contacts (appGUI); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED gui_create_notes (appGUI); #endif /* NOTES_ENABLED */ if (!config.gui_layout) { if (config.enable_auxilary_calendars == TRUE) { gtk_widget_show (appGUI->cal->aux_cal_expander); } else { gtk_widget_hide (appGUI->cal->aux_cal_expander); } } cal_read_notes (appGUI); #ifdef HAVE_LIBICAL ics_initialize_timezone (); read_ical_entries (appGUI); #endif /* HAVE_LIBICAL */ #ifdef TASKS_ENABLED read_tasks_entries (appGUI); set_categories (appGUI); refresh_tasks (appGUI); #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED read_contacts_entries (appGUI); set_export_active (appGUI); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED appGUI->opt->notes_category_store = gtk_list_store_new (1, G_TYPE_STRING); read_notes_entries (appGUI); utl_gui_create_category_combobox (GTK_COMBO_BOX (appGUI->nte->cf_combobox), appGUI->opt->notes_category_store, FALSE); if (config.remember_category_in_notes == TRUE) { gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->nte->cf_combobox), config.current_category_in_notes); } else { gtk_combo_box_set_active (GTK_COMBO_BOX(appGUI->nte->cf_combobox), 0); } #endif /* NOTES_ENABLED */ #ifndef WIN32 register_signal_handler(appGUI); #endif /* WIN32 */ #ifdef TASKS_ENABLED refresh_tasks (appGUI); appGUI->tsk->notifications_enable = TRUE; #endif /* TASKS_ENABLED */ appGUI->number_of_tabs = NUMBER_OF_TABS; if(config.remember_latest_tab == TRUE) { appGUI->current_tab = config.latest_tab; } else { appGUI->current_tab = PAGE_CALENDAR; } } else { appGUI->number_of_tabs = 1; appGUI->current_tab = 0; } appGUI->all_pages_added = TRUE; calendar_set_today (appGUI); update_aux_calendars (appGUI); if (config.toolbar_exit_button == FALSE) { if (appGUI->calendar_only == FALSE) { gtk_widget_hide (GTK_WIDGET(appGUI->cal->quit_button)); #ifdef CONTACTS_ENABLED gtk_widget_hide (GTK_WIDGET(appGUI->cnt->quit_toolbar_button)); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED gtk_widget_hide (GTK_WIDGET(appGUI->nte->quit_button)); #endif /* NOTES_ENABLED */ #ifdef TASKS_ENABLED gtk_widget_hide (GTK_WIDGET(appGUI->tsk->quit_button)); #endif /* TASKS_ENABLED */ } } if (config.fullscreen == TRUE) { gtk_window_fullscreen (GTK_WINDOW(appGUI->main_window)); } if (appGUI->check_events == TRUE) { return create_event_checker_window (appGUI); } else { gui_systray_initialize (appGUI); } if (appGUI->calendar_only == TRUE) { gtk_widget_show (appGUI->main_window); } gtk_notebook_set_current_page(GTK_NOTEBOOK(appGUI->notebook), appGUI->current_tab); /* enable STDERR */ dup2 (fdSTDERR, STDERR_FILENO); close (fdSTDERR); return TRUE; } /*------------------------------------------------------------------------------*/ void gui_add_to_notebook (GtkWidget *widget, gchar *text, GUI *appGUI) { GtkWidget *label; label = gtk_label_new(NULL); if (config.tabs_position == GTK_POS_LEFT) { gtk_label_set_angle (GTK_LABEL(label), 90.0); } else if (config.tabs_position == GTK_POS_RIGHT) { gtk_label_set_angle (GTK_LABEL(label), -90.0); } gtk_label_set_markup (GTK_LABEL (label), text); gtk_notebook_append_page(GTK_NOTEBOOK(appGUI->notebook), widget, label); } /*------------------------------------------------------------------------------*/ GtkToolItem * gui_create_toolbar_button(GUI *appGUI, const gchar *icon_name, const gchar *label, void(*click_callback) (GtkToolButton *, gpointer)) { GtkToolItem *button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (button), icon_name); gtk_tool_button_set_label (GTK_TOOL_BUTTON (button), label); gtk_widget_set_tooltip_text(GTK_WIDGET(button), label); gtk_widget_show(GTK_WIDGET(button)); g_signal_connect(button, "clicked", G_CALLBACK(click_callback), appGUI); return button; } /*------------------------------------------------------------------------------*/ GtkToolItem * gui_create_toolbar_toggle_button(GUI *appGUI, const gchar *icon_name, const gchar *label, void(*toggle_callback) (GtkToggleToolButton *, gpointer)) { GtkToolItem *button = gtk_toggle_tool_button_new (); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (button), icon_name); gtk_tool_button_set_label (GTK_TOOL_BUTTON (button), label); gtk_widget_set_tooltip_text(GTK_WIDGET(button), label); gtk_widget_show(GTK_WIDGET(button)); g_signal_connect(button, "toggled", G_CALLBACK(toggle_callback), appGUI); return button; } /*------------------------------------------------------------------------------*/ void gui_append_toolbar_spring(GtkToolbar *toolbar) { GValue expand = G_VALUE_INIT; GtkToolItem *spring = gtk_separator_tool_item_new(); g_value_init(&expand, G_TYPE_BOOLEAN); g_value_set_boolean(&expand, TRUE); gtk_separator_tool_item_set_draw(GTK_SEPARATOR_TOOL_ITEM(spring), FALSE); gtk_container_child_set_property(GTK_CONTAINER(toolbar), GTK_WIDGET(spring), "expand", &expand); gtk_toolbar_insert(toolbar, spring, -1); } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_preferences_gui.h0000664000175000017500000000213013066543472015426 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _CONTACTS_PREFERENCES_GUI_H #define _CONTACTS_PREFERENCES_GUI_H #include "gui.h" GtkWidget * cnt_create_preferences_page (GtkWidget *notebook, GUI *appGUI); #endif /* _CONTACTS_PREFERENCES_GUI_H */ osmo-0.4.2/src/Makefile.am0000664000175000017500000000602613161167412012246 00000000000000AUTOMAKE_OPTIONS = -Wno-portability ISREPO := "$(shell git rev-parse --is-inside-work-tree 2> /dev/null)" REVISION := "$(shell git rev-parse --short HEAD 2>/dev/null)" VERSION_MAJOR := $(shell echo $(VERSION) | awk -F "." '{print $$1}') VERSION_MINOR := $(shell echo $(VERSION) | awk -F "." '{print $$2}') VERSION_MICRO := $(shell echo $(VERSION) | awk -F "." '{print $$3}') AM_CPPFLAGS = -DREPO=$(ISREPO) -DREVISION=$(REVISION) -DLOCALEDIR=\"$(datadir)/locale\" -DDATADIR=\"$(datadir)\" \ -DVERSION_MAJOR=\"$(VERSION_MAJOR)\" -DVERSION_MINOR=\"$(VERSION_MINOR)\" -DVERSION_MICRO=\"$(VERSION_MICRO)\" \ -DSOUNDSDIR=\"$(datadir)/sounds\" @GTK_CFLAGS@ @XML_CPPFLAGS@ -Wall -DGDK_DISABLE_DEPRECATION_WARNINGS \ -DG_DISABLE_CAST_CHECKS AM_CFLAGS = @CFLAGS@ bin_PROGRAMS = osmo osmo_SOURCES = about.c about.h \ backup.c backup.h \ calendar.c calendar.h \ calendar_calc.c calendar_calc.h \ calendar_fullyear.c calendar_fullyear.h \ calendar_ical.c calendar_ical.h \ calendar_jumpto.c calendar_jumpto.h \ calendar_moon_a.h calendar_moon_b.h \ calendar_notes.c calendar_notes.h \ calendar_print.c calendar_print.h \ calendar_preferences_gui.c calendar_preferences_gui.h \ calendar_timeline.c calendar_timeline.h \ calendar_utils.c calendar_utils.h \ calendar_widget.c calendar_widget.h \ check_events.c check_events.h \ contacts.c contacts.h \ contacts_birthdays.c contacts_birthdays.h \ contacts_import.c contacts_import.h \ contacts_import_csv.c contacts_import_csv.h \ contacts_export.c contacts_export.h \ contacts_items.c contacts_items.h \ contacts_preferences_gui.c contacts_preferences_gui.h \ gui.c gui.h \ gui_icon.h gui_logo.h \ gtksourceiter.c gtksourceiter.h \ i18n.h \ main.c \ notes.c notes.h \ notes_items.c notes_items.h \ notes_preferences_gui.c notes_preferences_gui.h \ options_prefs.c options_prefs.h \ preferences_gui.c preferences_gui.h \ stock_icons.c stock_icons.h stock_icons_data.h \ tasks.c tasks.h \ tasks_export.c tasks_export.h \ tasks_items.c tasks_items.h \ tasks_print.c tasks_print.h \ tasks_preferences_gui.c tasks_preferences_gui.h \ tasks_utils.c tasks_utils.h \ utils.c utils.h \ utils_gui.c utils_gui.h \ utils_date.c utils_date.h \ utils_date_time.c utils_date_time.h \ utils_time.c utils_time.h \ vcf.c vcf.h AM_CFLAGS += @LIBNOTIFY_CFLAGS@ LIBS += @LIBNOTIFY_LIBS@ if HAVE_LIBWEBKIT AM_CFLAGS += @LIBWEBKIT_CFLAGS@ LIBS += @LIBWEBKIT_LIBS@ endif if HAVE_LIBICAL AM_CFLAGS += @LIBICAL_CFLAGS@ LIBS += @LIBICAL_LIBS@ endif if HAVE_GSPELL AM_CFLAGS += @GSPELL_CFLAGS@ LIBS += @GSPELL_LIBS@ endif if CONFIGPATH AM_CFLAGS += -DCONFIG_PATH=\"$(configpath)\" endif if CONFIGDIR AM_CFLAGS += -DCONFIG_DIR=\"$(configdir)\" endif osmo_LDADD = $(LIBINTL) @GTK_LIBS@ -lm @XML_LIBS@ @GTHREAD_LIBS@ #if WIN32 #AM_CFLAGS = \ # -mms-bitfields \ # -mwindows #endif osmo-0.4.2/src/stock_icons_data.h0000664000175000017500000204627513066543472013716 00000000000000/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_add) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_add[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_add[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (681) */ "\0\0\2\301" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\233\377\377\377\0\2\4$^z\1\36]\374\202\0\36\\\377\2\1\36]\374\4$^z\216" "\377\377\377\0\2\3!^\376\272\311\333\377\202\303\321\341\377\2\263\304" "\327\377\6$`\376\216\377\377\377\0\2\7$`\377\300\317\340\377\202\226" "\257\313\377\2\300\317\340\377\20,f\377\216\377\377\377\0\2\7$`\377\300" "\317\340\377\202\226\257\313\377\2\300\317\340\377\20,f\377\216\377\377" "\377\0\2\7$`\377\300\317\340\377\202\226\257\313\377\2\300\317\340\377" "\20,f\377\216\377\377\377\0\2\7$`\377\300\317\340\377\202\226\257\313" "\377\2\300\317\340\377\20,f\377\210\377\377\377\0\2\4$^z\4\"_\376\204" "\12'b\377\2!\362\335\275\213" "\377\300\232Z\377\266\225\\\377\216zS\377OH0\264\215\377\377\377\0\7" "KE0R{mO\362\326\266\201\377\273\225U\377\271\234j\377^U;\364KE0E\211" "\377\377\377\0\12\0\0\0\1jV\0IqZ\0H\0\0\0\1KE0s\224\202_\372\320\256" "w\377\272\227\\\377\241\213a\377OG0\337\212\377\377\377\0\12jV\2\203" "oY\14\376oY\14\377iS\2\376eS\16\360\224\200M\377\306\244i\377\275\237" "j\377nbE\364KE0`\212\377\377\377\0\12lV\4\361\247\215X\377\255\222b\377" "\237\205Q\377\214s5\377xb\34\377hS\4\377zd\36\377XL\35\370gP\10!\211" "\377\377\377\0\15g[)9e_B\377\255\231t\377\270\223V\377\264\221V\377\260" "\220Z\377\255\221_\377\245\213Z\377\222y\77\377}f\"\377iT\5\377iT\2\343" "dQ\0E\207\377\377\377\0\15sc#\242~~v\377\226\227\220\377ywm\377}ve\377" "\234\206_\377\265\222W\377\265\222T\377\261\220W\377\255\220]\377\252" "\220_\377\223y@\377gQ\2\360\207\377\377\377\0\15\214s\3\231\245\237u" "\376\216\215|\377\216\216\202\377\244\245\240\377\237\240\233\377\200" "\200v\377vqd\377\221\202c\377\256\217Z\377\273\230^\377\256\224]\377" "jT\3\355\207\377\377\377\0\15\215t\4\344\353\344\263\377\342\325o\377" "\317\302S\377\257\247a\377\222\217t\377\212\212|\377\230\230\221\377" "\225\227\223\377\177\177w\377qod\377woW\377kX\23\305\206\377\377\377" "\0\16ye\2r\247\225;\370\365\360\311\377\344\326j\377\342\324c\377\340" "\321]\377\335\316V\377\326\307P\377\273\262Y\377\226\223l\377\206\204" "t\377\206\205}\377qrj\377oa%\237\205\377\377\377\0\17\203k\0J\216u\11" "\370\362\354\304\377\347\335\220\377\261\2364\377\352\336z\377\350\333" "t\377\345\330l\377\342\325d\377\337\321[\377\334\315R\377\330\311N\377" "\333\330\266\377\206t\30\371\204i\0\35\202\377\377\377\0\21\271\230\0" "\7\377\377\377\0\207m\0""1\212q\3\372\314\277l\377\372\366\331\377\257" "\234G\377\345\334\241\377\366\356\257\377\324\305l\377\311\270S\377\353" "\336z\377\347\332q\377\344\326g\377\346\332{\377\347\340\253\377\215" "u\5\337\205\377\377\377\0\17\205m\0I\206m\5\245\207q\10\350\211r\5\373" "\245\2237\367\316\302\200\375\352\342\264\377\257\235J\377\370\363\324" "\377\370\363\305\377\312\274i\377\317\300b\377\362\353\260\377\317\302" "}\375\213t\4\221\206\377\377\377\0\16\0\0\0\1\0\0\0\27\40\33\0""8YH\0" "jjV\2\251\203n\11\332\211q\4\371\234\206(\370\301\263i\372\257\235G\377" "\361\354\306\377\357\351\302\377\217x\15\366\207p\0\40\207\377\377\377" "\0\14\0\0\0\3\0\0\0\10\0\0\0\13\0\0\0\27\0\0\0\40\5\5\0""64+\0u[J\0\233" "yf\6\311\210q\10\355\214t\11\346\214u\6x\214\377\377\377\0\7\0\0\0\6" "\0\0\0\13\0\0\0\15\0\0\0\35\0\0\0'\0\0\0)\0\0\0\13\206\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_close) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_close[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_close[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1115) */ "\0\0\4s" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\253\377\377\377\0\4\37\"\"aFHH\3578<<\331\33!!/\206\377\377\377\0\4" "\33!!/7;;\331ADD\357\37\"\"a\205\377\377\377\0\6!#%lwzz\370\306\307\307" "\377\277\300\300\376QST\364\33\40\40""8\204\377\377\377\0\6\33\40\40" "8PSS\364\271\271\271\376\275\276\275\377suv\370!#%l\204\377\377\377\0" "\7BFF\364\310\310\310\377\255\256\256\377\264\264\264\377\301\302\302" "\377Z\\]\367\33\37\37B\202\377\377\377\0\7\33\37\37BY[\\\367\273\274" "\273\377\250\251\250\377\235\236\235\377\275\277\276\377BFF\364\204\377" "\377\377\0\7""144\301\257\260\260\375\277\301\300\377\245\246\246\377" "\261\261\261\377\302\303\303\377acc\370\202\32\36\36M\7`bc\370\276\276" "\276\377\247\250\247\377\226\227\226\377\263\264\263\377\247\247\247" "\375144\301\204\377\377\377\0\20\40\40\40\20""578\324\252\254\254\374" "\300\301\301\377\243\244\244\377\255\256\256\377\302\303\303\377kmn\370" "kmm\370\300\300\300\377\246\250\247\377\231\231\231\377\266\267\266\377" "\243\244\244\374467\324\40\40\40\20\205\377\377\377\0\16\27\27\27\13" "022\311\243\244\245\374\301\302\301\377\243\244\244\377\252\253\253\377" "\301\303\302\377\301\301\301\377\246\246\246\377\233\234\233\377\272" "\272\272\377\235\236\237\374022\311\27\27\27\13\207\377\377\377\0\14" "$$$\7,//\275\233\235\235\373\301\302\301\377\241\242\242\377\235\236" "\235\377\233\235\234\377\235\235\235\377\274\275\274\377\224\227\227" "\373+..\275$$$\7\211\377\377\377\0\12\0\0\0\4+-.\337\261\262\261\376" "\257\257\257\377\235\236\235\377\233\235\234\377\243\243\243\377\220" "\221\221\376\35\37\40\335\0\0\0\4\211\377\377\377\0\14\0\0\0\2\35\40" "\40\235^_`\370\255\257\256\377\203\204\204\377|}|\377tvu\377hih\377\233" "\234\233\377WXX\370\35\40\40\235\0\0\0\2\207\377\377\377\0\16\0\0\0\4" "\35\40\"\255egg\370\242\243\243\377stt\377uwv\377\231\232\231\377\227" "\230\230\377opo\377gih\377\227\231\227\377_`_\370\35\40\"\255\0\0\0\4" "\205\377\377\377\0\20\40\40\40\10\36!\"\274pqq\371\242\244\243\377tv" "u\377z{{\377\241\242\241\377MQP\367MOP\367\235\236\235\377opp\377cdc" "\377\224\226\224\377fhg\371\36!\"\274\40\40\40\10\204\377\377\377\0\7" "\37\"#\253xz{\372\242\243\242\377uvv\377~\200\177\377\243\243\243\377" "BFF\370\202\33\36\40p\7ADE\370\233\235\234\377opo\377_`_\377\220\220" "\220\377mnn\372\37\"#\253\204\377\377\377\0\21$'(\365\253\253\253\377" "}\177~\377\204\205\205\377\242\243\243\377>@A\371\32\34\34l\0\0\0\33" "\0\0\0\34\31\34\34n<>\77\371\231\232\231\377prp\377ded\377\233\234\233" "\377$'(\365\0\0\0\1\202\377\377\377\0\22\0\0\0\1\35!#\203[^_\370\250" "\251\251\377\241\242\242\3777:;\370\23\25\30k\0\0\0""0\0\0\0""5\0\0\0" "6\0\0\0""4\22\24\27p589\370\226\227\226\377\230\231\230\377SUU\370\35" "\40\"\205\0\0\0\3\202\377\377\377\0\22\0\0\0\1\0\0\0\3\35\40\40\206-" "/0\370(+,\360\23\26\26^\0\0\0,\0\0\0""5\0\0\0:\0\0\0<\0\0\0:\0\0\0""4" "\22\24\24d(+,\360-/0\371\34\40\40\211\0\0\0\7\0\0\0\3\203\377\377\377" "\0\21\0\0\0\2\0\0\0\4\14\31\31\25\0\0\0\21\0\0\0\24\0\0\0\32\0\0\0\40" "\0\0\0%\0\0\0&\0\0\0#\0\0\0\37\0\0\0\31\0\0\0\25\12\24\24\31\0\0\0\7" "\0\0\0\3\0\0\0\1\204\377\377\377\0\6\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\6" "\0\0\0\10\0\0\0\12\202\0\0\0\14\6\0\0\0\13\0\0\0\12\0\0\0\7\0\0\0\5\0" "\0\0\3\0\0\0\2\212\377\377\377\0\202\0\0\0\1\203\0\0\0\2\202\0\0\0\1" "\206\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_edit) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_edit[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_edit[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1309) */ "\0\0\5""5" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\21\377\377\377\0\236\236\236\240\234\234\234\377\237\237\237\377\240" "\240\240\377\236\236\236\377\233\233\233\377\230\230\230\377\224\224" "\224\377\221\221\221\377\216\216\216\377\212\212\212\377\207\207\207" "\377\204\204\204\377\201\201\201\377}}}\377\200\200\200\240\204\377\377" "\377\0\2\231\231\231\377\373\373\373\377\202\376\376\376\377\203\375" "\375\375\377\202\374\374\374\377\203\373\373\373\377\202\372\372\372" "\377\2\366\366\366\377zzz\377\204\377\377\377\0\3\231\231\231\377\376" "\376\376\377\357\357\357\377\203\360\360\360\377\12\357\357\357\377\355" "\355\355\377\353\353\353\377\351\351\351\377\346\346\346\377\344\344" "\344\377\341\341\341\377\337\337\337\377\371\371\371\377zzz\377\204\377" "\377\377\0\20\227\227\227\377\376\376\376\377\361\361\361\377\362\362" "\362\377\363\363\363\377\362\362\362\377\360\360\360\377\356\356\356" "\377\354\354\354\377\352\352\352\377\347\347\347\377\344\344\344\377" "\342\342\342\377\337\337\337\377\371\371\371\377yyy\377\204\377\377\377" "\0\3\225\225\225\377\375\375\375\377\363\363\363\377\202\254\254\254" "\377\13\253\253\253\377\252\252\252\377\250\250\250\377\246\246\246\377" "\244\244\244\377\242\242\242\377\241\241\241\377\237\237\237\377\337" "\337\337\377\371\371\371\377yyy\377\203\377\377\377\0\4\217Y\2\5\222" "\222\222\377\375\375\375\377\365\365\365\377\202\367\367\367\377\13\365" "\365\365\377\363\363\363\377\360\360\360\377\355\355\355\377\352\352" "\352\377\350\350\350\377\345\345\345\377\342\342\342\377\337\337\337" "\377\371\371\371\377xxx\377\204\377\377\377\0\3\220\220\220\377\375\375" "\375\377\365\365\365\377\202\370\370\370\377\13\365\365\365\377\363\363" "\363\377\360\360\360\377\355\355\355\377\352\352\352\377\347\347\347" "\377\345\345\345\377\342\342\342\377\337\337\337\377\371\371\371\377" "www\377\204\377\377\377\0\3\215\215\215\377\374\374\374\377\365\365\365" "\377\202\255\255\255\377\15\253\253\253\377\252\252\252\377\250\250\250" "\377\246\246\246\377\244\244\244\377\242\242\242\377\240\240\240\377" "\236\236\236\377\337\337\337\377\371\371\371\377{lg\377\233\"\1\310\235" "\23\0K\202\377\377\377\0\3\212\212\212\377\374\374\374\377\363\363\363" "\377\202\364\364\364\377&\362\362\362\377\360\360\360\377\356\356\356" "\377\353\353\353\377\351\351\351\377\346\346\346\377\343\343\343\377" "\341\341\341\377\336\336\336\377\342\312\277\377\244\21\7\377\320KK\377" "\246\15\12\376\233\36\1F\377\377\377\0\207\207\207\377\374\374\374\377" "\361\361\361\377\362\362\362\377\361\361\361\377\360\360\360\377\356" "\356\356\377\354\354\354\377\352\352\352\377\350\350\350\377\345\345" "\345\377\342\342\342\377\340\340\340\377\313\276\251\377\234I\16\377" "\307`^\377\355de\377\30677\377\236\33\1\321\377\377\377\0\204\204\204" "\377\373\373\373\377\357\357\357\377\202\250\250\250\377\21\247\247\247" "\377\246\246\246\377\245\245\245\377\243\243\243\377\241\241\241\377" "\240\240\240\377\236\236\236\377\231\205e\377\232f\23\377\352\271`\377" "\322lG\377\307\77>\377\266\27\27\377\240\12\0\375\377\377\377\0\201\201" "\201\377\373\373\373\377\203\355\355\355\377!\354\354\354\377\352\352" "\352\377\351\351\351\377\347\347\347\377\345\345\345\377\342\342\342" "\377\270\233m\377\243o\33\377\362\302j\377\375\304\\\377\355\251;\377" "\252\30\13\377\241\5\0\376\231)\1r\377\377\377\0~~~\377\372\372\372\377" "\352\352\352\377\353\353\353\377\352\352\352\377\351\351\351\377\350" "\350\350\377\347\347\347\377\345\345\345\377\341\337\335\377\255\210" "J\377\261~)\377\367\307n\377\375\277O\377\352\260>\377\317\2311\377\234" "A\5\351\231'\1B\202\377\377\377\0\3zzz\377\372\372\372\377\350\350\350" "\377\202\243\243\243\377\14\242\242\242\377\241\241\241\377\240\240\240" "\377\236\232\223\377\227j\"\377\300\2157\377\372\310l\377\371\273F\377" "\343\254<\377\276\212(\377\212c#\377\217Y\2\14\203\377\377\377\0\2ww" "w\377\371\371\371\377\202\346\346\346\377\202\345\345\345\377\12\344" "\344\344\377\325\315\277\377\233k\33\377\323\241J\377\374\307d\377\366" "\266@\377\337\251;\377\251t\32\377\305\252}\377ooo\377\204\377\377\377" "\0\2ttt\377\371\371\371\377\203\343\343\343\377\13\342\342\342\377\327" "\321\307\377\231f\23\377\342\260X\377\375\303Y\377\360\263>\377\333\244" "8\377\235i\22\377\300\260\225\377\370\370\370\377ooo\377\204\377\377" "\377\0\2qqq\377\366\366\366\377\204\370\370\370\377\12\271\227^\377\322" "\240G\377\374\277O\377\351\257>\377\317\2301\377\240o\40\377\350\337" "\321\377\370\370\370\377\365\365\365\377ooo\377\204\377\377\377\0\1v" "vv\240\204ooo\377\7pja\377\213_\30\377\360\266H\377\341\253<\377\267" "\201!\377\213b\40\377qni\377\203ooo\377\1uuu\240\211\377\377\377\0\6" "m]\77\325]M0\376\247r\25\364\224\\\4\362\223]\4\206\217Y\2\2\215\377" "\377\377\0\5|R\14$SF-\353XE!\265wP\17B\217Y\2\2\202\377\377\377\0\1\217" "Y\2\5\207\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_down) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_down[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_down[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (775) */ "\0\0\3\37" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\231\377\377\377\0\1""8p\4\323\2075o\4\377\2""6o\4\3657o\0\27\212\377" "\377\377\0\5N\202\"\363\247\311\204\377\251\312\204\377\247\311\201\377" "\235\303r\377\202\221\274b\377\3\212\270Y\3779t\5\3623l\6(\212\377\377" "\377\0\5Y\2120\363\241\305{\377~\260G\377z\256A\377]\234\30\377\202Q" "\225\7\377\3\217\273`\377:u\7\3623l\6(\212\377\377\377\0\5[\2133\363" "\247\310\203\377\205\265Q\377\200\262J\377T\227\13\377\202Q\225\7\377" "\3\217\273`\377:u\7\3623l\6(\212\377\377\377\0\4_\2167\363\254\314\212" "\377\214\271[\377\203\264O\377\203Q\225\7\377\3\217\273`\377:u\7\362" "3l\6(\206\377\377\377\0\1@`\0\10\2030p\0\20\4a\216:\364\261\317\222\377" "\223\275d\377\207\266T\377\203Q\225\7\377\3\217\273`\377:u\7\3625o\5" "5\2020p\0\20\1@`\0\10\203\377\377\377\0\2""6q\4\3076o\4\374\2026p\4\370" "\5i\226B\367\267\323\231\377\231\301m\377\222\274c\377T\227\14\377\202" "Q\225\7\377\2\216\272^\377E\177\17\363\2026p\4\370\2""6o\4\3746p\4\303" "\203\377\377\377\0\11""6n\3QE{\26\366\274\325\240\377\307\335\260\377" "\304\333\253\377\256\316\215\377\236\304u\377\227\300k\377c\240\40\377" "\202Q\225\7\377\6q\2515\377\220\273`\377\221\274b\377\202\262N\3777r" "\5\3645n\4H\204\377\377\377\0\10""5p\4\213x\241R\367\311\337\262\377" "\262\320\220\377\252\313\206\377\244\307}\377\234\303r\377r\2517\377" "\203Q\225\7\377\4T\227\13\377\206\265S\377[\214,\3667q\4~\205\377\377" "\377\0\10\0\200\0\2""6r\4\303\236\276\177\373\310\336\261\377\260\317" "\216\377\250\312\203\377\237\305w\377\205\265Q\377\203Q\225\7\377\3|" "\257D\377l\234>\3717q\4\265\207\377\377\377\0\15""6k\0\23s\317Jp\245\377Ao\252\377\2044e\244\377\2\316" "\326\340\377\317\327\340\377\2044e\244\377\3Ao\252\377Jp\244\377\32\77" "t\306\204\377\377\377\0\3\31m\251\3774e\244\377=k\247\377\324\333\343\377\341\345\346" "\377\340\344\346\377\324\333\343\377m\251\377U|" "\257\377\33\77t\365\32;o'\205\377\377\377\0\6\30m\251\3774e\244\3776g\245\377\202@n\251\377\6""6g\245\3774e" "\244\377>m\251\377Y\201\264\377)N\202\366\30>tw\206\377\377\377\0\6\0" "\14\31\25\27;n\323*N\203\367U|\260\377Mx\257\377Ao\252\377\2028h\246" "\377\7Ao\252\377Mx\257\377U|\257\377*N\202\370\27""9i\324\0\0\6-\0\0" "\0\11\204\377\377\377\0\7\0\0\0\1\0\0\0!\0\0\4B\20+Q\253\34=q\372:_\224" "\376Ip\243\377\202W}\260\377\7Ip\243\377:_\224\376\32>r\373\17$F\267" "\0\0\0^\0\0\0=\0\0\0\26\205\377\377\377\0\6\0\0\0\13\0\0\0/\0\0\0K\10" "\22#}\20)N\302\26""6c\347\202\27:n\373\7\25""3a\351\17'I\312\5\16\35" "\216\0\0\0c\0\0\0H\0\0\0\35\0\0\0\2\207\377\377\377\0\13\0\0\0\11\0\0" "\0\34\0\0\0""1\0\0\0A\0\0\0M\0\0\0O\0\0\0G\0\0\0:\0\0\0'\0\0\0\21\0\0" "\0\3\230\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_cancel) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_cancel[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_cancel[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1071) */ "\0\0\4G" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\263\377\377\377\0\4\220\0\0e\233\27\27\326\220\0\0\277\216\0\0-\210" "\377\377\377\0\4\220\0\0'\222\4\4\302\231\26\26\370\217\0\0y\203\377" "\377\377\0\6\216\0\0-\24501\370\351\270\271\377\335\235\236\376\2475" "5\370\220\0\0\203\206\377\377\377\0\6\216\0\0_\237$$\367\337\241\242" "\376\351\264\265\377\254<=\367\217\0\0`\202\377\377\377\0\6\221\2\2\315" "\335\235\236\376\341\223\223\377\342\224\224\377\351\264\265\377\222" "\7\7\370\206\377\377\377\0\16\220\0\0\363\344\250\250\377\343\231\231" "\377\336\210\210\377\350\262\262\377\24733\367\215\0\0J\217\0\0]\273" "^_\370\350\254\254\377\332xx\377\344\234\234\377\317}}\374\220\0\0\247" "\206\377\377\377\0\16\220\0\0\207\272XX\370\352\263\263\377\334\177\177" "\377\340\215\215\377\346\260\261\377\242**\367\231\25\25\362\347\262" "\262\377\335\204\204\377\334\201\201\377\347\257\257\377\227\23\23\365" "\220\0\0\27\207\377\377\377\0\14\221\0\0\242\300cc\370\351\261\261\377" "\333}}\377\342\223\223\377\345\257\257\377\336\232\233\374\344\235\236" "\377\332ww\377\347\250\250\377\275]]\370\217\0\0r\210\377\377\377\0\14" "\200\0\0\2\220\0\0\257\304jk\371\351\260\260\377\333||\377\337\212\212" "\377\341\222\222\377\332xx\377\336\210\210\377\340\240\241\377\222\3" "\3\340\200\0\0\4\211\377\377\377\0\5\200\0\0\4\220\0\0\274\311rs\372" "\351\255\256\377\332zz\377\202\332ww\377\4\331uu\377\316nn\375\221\3" "\3\337\224\0\0\23\212\377\377\377\0\13\200\0\0\10\220\0\0\332\334\231" "\231\376\335\202\202\377\325gg\377\312\77\77\377\273\4\4\377\321VW\377" "\303WX\373\221\2\2\332\216\0\0\22\211\377\377\377\0\14\220\0\0""5\232" "\27\27\367\332\201\201\377\275\20\20\377\274\12\12\377\311::\377\300" "\30\30\377\272\3\3\377\321XY\377\301VV\372\221\2\2\327\217\0\0\20\207" "\377\377\377\0\16\222\0\0\16\223\6\6\347\316jk\377\305--\377\272\2\2" "\377\325gh\377\301UU\373\326uv\377\302\37\37\377\272\3\3\377\322ZZ\377" "\300TT\372\220\1\1\324\210\0\0\17\206\377\377\377\0\16\220\0\0\261\275" "PQ\372\316MN\377\271\0\0\377\31088\377\307^_\376\217\0\0\342\241##\365" "\326uu\377\300\31\31\377\272\4\4\377\322[\\\377\275PQ\371\221\0\0\300" "\205\377\377\377\0\17\220\0\0c\250//\367\325jj\377\272\5\5\377\275\16" "\16\377\327uv\377\227\23\23\367y\0\0*\214\0\0|\245**\366\327tu\377\277" "\26\26\377\317OO\377\314de\376\220\0\0\350\205\377\377\377\0\7\221\0" "\0\332\322tu\377\316KK\377\273\10\10\377\321WX\377\264AA\370\206\0\0" "\215\202\0\0\0\32\10\204\0\0\232\25222\367\333}~\377\305[\\\373\222\7" "\7\352\204\0\0""4\0\0\0\3\0\0\0\1\202\377\377\377\0\22\0\0\0\1\215\0" "\0i\231\27\27\367\275RS\372\327xy\377\315lm\377\216\3\3\347\17\0\0""4" "\0\0\0""4\0\0\0""5\0\0\0""3\203\0\0\264\227\23\23\373\215\1\1\317L\0" "\0(\0\0\0\15\0\0\0\6\0\0\0\2\202\377\377\377\0\22\0\0\0\1\0\0\0\4a\0" "\0\32\207\0\0\210\226\15\15\355\223\16\16\330V\0\0Y\0\0\0""6\0\0\0<\0" "\0\0>\0\0\0;\0\0\0""42\0\0=\7\0\0#\0\0\0\27\0\0\0\16\0\0\0\7\0\0\0\3" "\203\377\377\377\0\21\0\0\0\2\0\0\0\5\0\0\0\11\0\0\0\17\0\0\0\26\0\0" "\0\35\0\0\0#\0\0\0'\0\0\0(\0\0\0&\0\0\0\40\0\0\0\32\0\0\0\23\0\0\0\15" "\0\0\0\10\0\0\0\3\0\0\0\1\204\377\377\377\0\6\0\0\0\1\0\0\0\3\0\0\0\4" "\0\0\0\7\0\0\0\11\0\0\0\14\203\0\0\0\15\5\0\0\0\12\0\0\0\10\0\0\0\5\0" "\0\0\3\0\0\0\2\202\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_jumpto) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_jumpto[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_jumpto[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1165) */ "\0\0\4\245" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\210\377\377\377\0\1""4n\6,\223\377\377\377\0\2""5p\5\3378p\10\40\221" "\377\377\377\0\3""5q\6+M\201\40\3709s\6\300\217\377\377\377\0\14\0\0" "\0\1\377\377\377\0""6o\5p\206\257^\371p\234G\363^u\10p\300\205\25\240" "\301\206\25\331\303\210\32\366\301\207\25\331\301\206\25\240\301\204" "\24/\205\377\377\377\0\21""4n\6,8t\5\2468r\5\353By\22\3628r\6\3336q\4" "\351\246\307\204\376\253\313\213\377M{\24\376\314\255I\376\341\310_\377" "\350\324b\377\344\315`\377\331\270M\376\305\215!\364\300\205\25\202\301" "\204\24\3\202\377\377\377\0\40""6p\4""9;v\7\352\211\264Y\376\261\320" "\220\376\247\311\200\376\253\313\211\376\243\305\200\376\232\301o\377" "~\260F\377\215\262e\377\201\227\35\377\344\321;\377\347\327D\377\347" "\330F\377\347\325L\377\345\317_\377\312\2334\364\300\204\24\204\377\377" "\377\0@`\0\10Dz\23\352\261\321\204\376\247\315s\376m\252\37\376]\236" "\20\376Q\225\7\376Y\232\23\376S\226\11\377R\226\11\377\245\310\177\377" "^\214*\377\315\313A\377\202\356\351_\377\14\352\335L\377\344\3169\377" "\335\307^\377\303\213!\362\301\204\24/7q\5i\213\263\\\365\255\323r\376" "~\270)\376h\247\31\376Y\233\15\376Q\225\7\376\203Q\225\7\377\3h\243'" "\377\243\304\177\377[\211\26\377\202\364\365r\377&\354\343V\377\345\321" ":\377\333\302<\377\313\251K\376\300\205\24\236>y\11\273\275\331\221\376" "\243\317]\376\263\321\213\376\254\312\214\376\253\311\214\376\244\307" "\177\376e\241$\377Q\225\7\377S\226\11\377\177\261I\377\256\314\217\377" "S\204#\377\276\313K\377\360\354d\377\352\337P\377\344\3166\377\325\270" "'\377\315\262]\377\300\205\24\330L\202\33\324\316\345\252\376\301\334" "\230\376R\206&\3608r\5\2338s\4\261_\2168\371\226\277h\377m\246/\377\247" "\310\202\377\211\256_\377V\203\25\377\265\270.\377\202\351\333J\377\22" "\346\323=\377\340\306)\377\312\253#\377\305\254[\377\303\210\33\366J" "\200\32\346\324\351\261\376n\235>\3627q\5`\377\377\377\0""6q\4=i\230" ">\360\265\321\226\377\232\273v\377U\202!\377\203\210\25\377\315\257#" "\377\336\303&\377\202\342\312.\377\22\336\303&\377\316\260#\377\273\232" "#\377\310\251Y\377\303\207\23\334\361\330\321\240\377\345" "\326\201\377\202\354\331n\377\2\352\335\222\377\346\346\343\377\203\346" "\347\346\377\6R\205(\377\310\336\255\377\243\313n\377\203\2725\377a\220" "7\3665o\4(\204\377\377\377\0\6OOOrji[\357\325\315\246\377\343\324\177" "\377\354\336\220\377\352\353\347\377\204\352\353\352\377\10P\203%\377" "\310\336\255\377\243\313n\377\203\2725\377b\2216\3645o\4.5o\4\10""5o" "\4\4\202\377\377\377\0\22OOO\2JJJ\272pm]\360\305\302\244\377\317\317" "\315\377\333\334\333\377\345\345\345\377\334\337\332\377T\203,\377V\207" ".\377{\241Z\377\305\334\251\377\243\313n\377\200\270/\377w\240P\372R" "\204(\3766p\4\3635o\4+\203\377\377\377\0\20OOO\2OOOsAAA\360\207\210\207" "\366\240\241\240\377\250\253\251\377\241\244\242\377\210\221\202\376" "Gz\33\377\300\327\246\377\275\331\232\377\243\313n\377{\265'\377\232" "\306[\377V\210(\3655o\4N\206\377\377\377\0\15OOO'OOO\203LLL\271===\356" ">>>\356MMM\270E[2\242X\211-\371\304\333\250\377\243\313n\377\211\274" ">\377l\232>\3668r\6\203\216\377\377\377\0\6""6p\4gv\237Q\370\263\322" "\210\377}\250O\3719s\6\2715o\4\1\217\377\377\377\0\4""8r\5\232p\233I" "\373=v\15\3415o\4\15\220\377\377\377\0\3""5o\4\3""6p\5\2555o\4&\204\377" "\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_next_year) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_next_year[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_next_year[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1113) */ "\0\0\4q" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\274\377\377\377\0\3FJC\340X[U\372FJCX\203\377\377\377\0\3EJC\340X[U" "\372FKCX\203\377\377\377\0\3FJC\340X[U\372FJCX\205\377\377\377\0\4ad" "_\377\315\315\316\376z}y\354FJCS\202\377\377\377\0\4ad_\377\315\315\315" "\375z{y\354GJDS\202\377\377\377\0\4ad_\377\315\315\315\375z{y\354FJC" "S\204\377\377\377\0\21dgb\377\311\311\312\372\320\320\321\372z}x\355" "FJCM\377\377\377\0dgb\377\311\311\312\372\320\317\320\372y|w\355FIBM" "\377\377\377\0dgb\377\311\311\312\372\320\317\320\372y|w\355FJCM\203" "\377\377\377\0\22ehc\377\302\302\303\365\233\232\232\377\327\327\330" "\372y|w\355FJCHehc\377\302\302\302\365\233\232\232\377\326\326\327\372" "y{x\355GJCHehc\377\302\302\302\365\233\232\232\377\326\326\327\372y|" "x\355FJCH\202\377\377\377\0vcfa\377\302\302\303\365\214\212\212\377\242" "\241\241\377\336\336\337\372y{w\356[_Y\377\302\302\302\365\213\212\212" "\377\242\241\241\377\335\335\335\372y|w\356[^Z\377\302\302\302\365\213" "\212\212\377\242\241\241\377\335\335\335\372y|w\356FJCC\377\377\377\0" "`c^\377\300\300\301\364\214\212\212\377\221\217\217\377\250\250\250\377" "\345\345\346\371uxs\377\241\242\241\367\213\212\212\377\221\217\217\377" "\250\250\250\377\346\346\346\371txt\377\241\242\241\367\213\212\212\377" "\221\217\217\377\250\250\250\377\346\346\346\371wzu\356FJC>`c^\377\262" "\262\262\362\211\210\210\377\221\217\217\377\223\222\222\377\267\266" "\266\377\330\330\330\377Y\\V\375\211\207\210\377\221\217\217\377\223" "\222\222\377\266\265\265\377\327\330\330\377X\\V\375\211\207\210\377" "\221\217\217\377\223\222\222\377\266\265\265\377\341\341\341\356FJC\321" "`c^\377\242\242\243\357ROP\377[YY\377|{{\377\335\335\336\367qto\377\213" "\214\212\363ROP\377[YY\377|{{\377\335\335\336\367pto\377\212\214\212" "\363ROP\377[YY\377|{{\377\335\335\336\367rup\355FJC>`c^\377\242\242\243" "\357OLM\377rpp\377\322\322\323\367svq\355Y\\W\377\242\242\243\357OLM" "\377rpp\377\321\321\322\370svq\355Y\\W\377\242\242\243\357OLM\377rpp" "\377\321\321\322\370svq\355FJCC\377\377\377\0`c^\377\242\242\243\357" "gef\377\310\310\311\367rup\354FJCH`c^\377\242\242\243\357gef\377\307" "\307\310\370rtq\354GJCH`c^\377\242\242\243\357gef\377\307\307\310\370" "ruq\354FJCH\202\377\377\377\0\21`c^\377\256\256\257\367\275\275\276\367" "rup\354FJCM\377\377\377\0`c^\377\256\256\260\367\275\274\275\367rup\354" "FIBM\377\377\377\0`c^\377\256\256\260\367\275\274\275\367rup\354FJCM" "\203\377\377\377\0\20]`[\377\270\270\271\375qtp\353FJCS\377\377\377\0" "\0\0\0\1]`[\377\271\270\271\374qso\354CF@X\0\0\0\7\0\0\0\5]`[\377\271" "\270\271\374qsp\353FJCS\204\377\377\377\0\11FJC\340UXR\372\77C=a\0\0" "\0\25\0\0\0\33\0\0\0\40DIB\344TWQ\373492u\202\0\0\0,\7\0\0\0)EIB\344" "TXR\373;>8i\0\0\0\24\0\0\0\15\0\0\0\4\202\377\377\377\0\22\0\0\0\3\0" "\0\0\16\0\0\0\26\0\0\0\36\0\0\0&\0\0\0-\0\0\0""4\0\0\0<\0\0\0B\0\0\0" "F\0\0\0B\0\0\0;\0\0\0""4\0\0\0,\0\0\0%\0\0\0\35\0\0\0\23\0\0\0\5\204" "\377\377\377\0\6\0\0\0\2\0\0\0\5\0\0\0\11\0\0\0\15\0\0\0\22\0\0\0\26" "\202\0\0\0\33\6\0\0\0\27\0\0\0\23\0\0\0\17\0\0\0\12\0\0\0\7\0\0\0\3\254" "\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_no) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_no[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_no[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1447) */ "\0\0\5\277" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\3y\0\0>y\0\0\202{\1\0\303\202z\0\0\362\3z\0\0\303" "y\0\0\202y\0\0>\212\377\377\377\0\14y\0\0\17{\1\0\251\202\14\12\363\240" "+\"\374\256=1\377\271M\77\377\265K\77\377\24591\377\224&\"\374\177\12" "\12\363y\0\0\251y\0\0\17\207\377\377\377\0\16y\0\0""6{\1\0\352\234(\40" "\367\310UA\377\305K4\377\302B)\377\2740\25\377\267#\11\377\261+\30\377" "\2545(\377\251GA\377\213\40\40\367y\0\0\352y\0\0""6\205\377\377\377\0" "\20y\0\0\17{\1\0\352\260\77""2\377\311T\77\377\303I/\377\306U:\377\310" "Z@\377\305Q7\377\300\201\13\12\363\276" "QA\377\2763\30\377\307V;\377\322\177e\377\334\243\212\377\340\263\232" "\377\332\234\202\377\317v\\\377\304L1\377\270!\5\377\245\24\0\377\222" "\12\0\377\203\13\12\377\244AA\377\200\12\12\363y\0\0>\202\377\377\377" "\0\22y\0\0\202\230(\"\374\271;(\377\2740\25\377\310\\B\377\325\210n\377" "\341\264\234\377\352\325\275\377\336\252\221\377\322~d\377\306R7\377" "\271&\12\377\247\24\0\377\223\13\0\377\177\2\0\377\227((\377\225\"\"" "\374y\0\0\202\202\377\377\377\0\22z\0\0\303\24371\377\261+\30\377\272" "*\16\377\306T9\377\321|b\377\333\236\205\377\336\254\223\377\331\227" "~\377\317sY\377\303J/\377\270\40\4\377\245\23\0\377\221\12\0\377}\1\0" "\377\220\30\30\377\23711\377{\0\0\303\202\377\377\377\0\22y\0\0\362\252" "F\77\377\246\33\11\377\265\33\0\377\300\77#\377\311`E\377\320x^\377\322" "\200f\377\317sY\377\307Y>\377\2766\33\377\261\31\0\377\237\20\0\377\214" "\10\0\377{\0\0\377\213\11\11\377\250\77\77\377z\0\0\362\202\377\377\377" "\0\22y\0\0\362\245C\77\377\236\27\11\377\252\26\0\377\270!\5\377\277" "\177\12\12\363\240AA\377\202\13\12\377\207\5\0\377\216" "\11\0\377\222\13\0\377\224\13\0\377\222\12\0\377\215\10\0\377\205\4\0" "\377{\0\0\377\202\0\0\377\212\0\0\377\223\12\12\377\253AA\377\200\12" "\12\363y\0\0>\203\377\377\377\0\21z\0\0\251\220\40\40\367\23566\377\177" "\1\1\377{\0\0\377\177\1\0\377\200\2\0\377~\1\0\377{\0\0\377\177\0\0\377" "\205\0\0\377\214\0\0\377\217\1\1\377\24766\377\222\40\40\370x\0\0\253" "\0\0\0\4\202\377\377\377\0\6\0\0\0\1a\0\0\23y\0\0\354\23722\377\2436" "6\377\213\12\12\377\203\204\0\0\377\23\207\0\0\377\213\0\0\377\217\0" "\0\377\223\12\12\377\24766\377\24022\377x\0\0\3560\0\0&\0\0\0\7\0\0\0" "\1\377\377\377\0\0\0\0\1\0\0\0\10\\\0\0Gx\0\0\356\221\40\40\372\253A" "A\377\241((\377\232\30\30\377\202\223\11\11\377\22\232\30\30\377\241" "((\377\253AA\377\220\37\37\373v\0\0\363=\0\0l\0\0\0\"\0\0\0\14\0\0\0" "\2\377\377\377\0\0\0\0\1\0\0\0\10\0\0\0\27\35\0\0>h\0\0\305}\12\12\371" "\223\"\"\375\23711\377\202\250\77\77\377\35\23711\377\223\"\"\376|\12" "\12\373_\0\0\330\20\0\0r\0\0\0C\0\0\0\"\0\0\0\14\0\0\0\2\377\377\377" "\0\0\0\0\1\0\0\0\4\0\0\0\20\0\0\0#\0\0\0@8\0\0\206S\0\0\276h\0\0\345" "v\0\0\372v\0\0\373f\0\0\352M\0\0\316-\0\0\245\0\0\0n\0\0\0O\0\0\0/\0" "\0\0\26\0\0\0\7\0\0\0\1\202\377\377\377\0\21\0\0\0\1\0\0\0\6\0\0\0\21" "\0\0\0\40\0\0\0""4\0\0\0J\0\0\0\\\0\0\0j\0\0\0o\0\0\0n\0\0\0b\0\0\0R" "\0\0\0=\0\0\0)\0\0\0\26\0\0\0\11\0\0\0\2\204\377\377\377\0\17\0\0\0\1" "\0\0\0\4\0\0\0\11\0\0\0\22\0\0\0\34\0\0\0&\0\0\0-\0\0\0""0\0\0\0/\0\0" "\0*\0\0\0\40\0\0\0\26\0\0\0\15\0\0\0\4\0\0\0\1\202\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_ok) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_ok[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_ok[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1080) */ "\0\0\4P" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\257\377\377\377\0\2""0^\222\10""0^\222\1\203\377\377\377\0\2""0^\222" "\5""2`\224\260\2042_\223\361\2""2`\223\2410^\222\2\206\377\377\377\0" "\3""0^\222\31""0^\222\3120^\222\10\203\377\377\377\0\10""0^\222N^\203" "\253\366\304\322\341\377\311\326\344\377\312\327\345\377\313\327\345" "\377Js\240\3670^\222'\205\377\377\377\0\4""0^\222/4a\223\3532_\223\377" "0^\222\12\203\377\377\377\0\10""0^\222Lw\226\271\364\311\326\344\377" "\261\304\330\377\261\303\330\377\301\320\340\377Hq\237\3630^\222(\204" "\377\377\377\0\5""0^\222K;f\230\363\263\305\330\376=i\231\3720^\222\15" "\203\377\377\377\0\3""0^\222Iw\226\270\364\307\325\343\377\202\253\277" "\325\377\3\255\301\327\377Hq\237\3630^\222(\203\377\377\377\0\31""1_" "\223rJr\241\366\302\320\340\377\325\337\352\377Iq\237\3732_\223\3612" "_\223\3572`\223\3562`\223\3551_\223\361{\231\272\371\307\324\343\377" "\253\277\325\377\222\254\311\377\234\264\316\377Hq\237\3630^\222(\377" "\377\377\0""0^\222\3""2`\223\236`\204\254\366\313\327\345\377\275\315" "\336\377\277\316\337\377\317\332\347\377\205\315\331\346\377\14\317\332" "\347\377\270\311\334\377\233\263\315\377^\204\257\377\234\264\316\377" "Hq\237\3630^\222(0^\222\16""2`\223\303y\227\271\370\317\333\347\377\267" "\310\333\377\202\253\277\325\377\1\255\300\326\377\202\256\301\327\377" "\203\257\302\327\377\24\245\272\322\377\177\236\300\377Y\201\255\377" "X\200\254\377\234\264\316\377Hq\237\3630^\222(0^\222\215Al\233\372\265" "\306\332\377\234\264\316\377\177\236\300\377\205\242\302\377\211\245" "\304\377\212\246\305\377\206\243\303\377\202\240\301\377}\234\277\377" "y\231\275\377j\215\265\377\204X\200\254\377\10\234\264\316\377Hq\237" "\3630^\222(0^\222\2""2`\223\223Gp\237\365\235\264\316\377\203\240\301" "\377\213X\200\254\377\4]\204\257\377\242\270\321\377@k\232\3700^\222" "\34\202\377\377\377\0\11""1_\223f;g\230\366\223\254\310\377\216\251\307" "\377t\225\272\377\230\261\314\377\234\264\316\377\235\264\316\377\235" "\265\317\377\202\236\265\317\377\6\241\267\320\377\243\271\321\377\247" "\274\323\377\246\273\322\377{\231\273\3762`\224\317\204\377\377\377\0" "\10""0^\222A5b\225\362\204\240\300\376\253\277\325\377Y\177\251\371F" "p\236\364Eo\236\364Eo\235\364\202Dn\235\364\6\77j\233\366;g\230\3717" "c\225\3763`\223\3722`\223\2540^\222(\203\377\377\377\0\10\0\0\0\1\0\0" "\0\2-X\211)2_\223\345q\221\266\372:f\230\371)Q~5'Ku(\202&Js)\7&Kt'$F" "m\40\37=_\26\23&;\12\0\0\0\4\0\0\0\3\0\0\0\2\202\0\0\0\1\11\0\0\0\2\0" "\0\0\6\0\0\0\12\0\0\0\21\25*A(0]\217\3200^\222\377\16\33)8\0\0\0/\202" "\0\0\0""1\22\0\0\0/\0\0\0+\0\0\0%\0\0\0\37\0\0\0\27\0\0\0\21\0\0\0\12" "\0\0\0\6\0\0\0\2\0\0\0\6\0\0\0\14\0\0\0\24\0\0\0\36\0\0\0)\4\10\15""8" ")Q~\263\13\25!U\0\0\0N\202\0\0\0R\22\0\0\0N\0\0\0G\0\0\0>\0\0\0""4\0" "\0\0(\0\0\0\35\0\0\0\23\0\0\0\13\0\0\0\1\0\0\0\4\0\0\0\10\0\0\0\16\0" "\0\0\26\0\0\0\37\0\0\0(\0\0\0""0\1\2\3""9\0\0\0<\202\0\0\0\77\10\0\0" "\0<\0\0\0""7\0\0\0/\0\0\0&\0\0\0\35\0\0\0\24\0\0\0\14\0\0\0\7\202\377" "\377\377\0\10\0\0\0\1\0\0\0\3\0\0\0\5\0\0\0\7\0\0\0\12\0\0\0\15\0\0\0" "\17\0\0\0\21\202\0\0\0\22\10\0\0\0\20\0\0\0\16\0\0\0\13\0\0\0\11\0\0" "\0\6\0\0\0\4\0\0\0\2\0\0\0\1\210\377\377\377\0\205\0\0\0\1\233\377\377" "\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_open) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_open[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_open[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (951) */ "\0\0\3\317" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\224\0\0\0\0\1Y[WU\203Z\\X\377\202Y[W\377\3XZW\377Z\\W\314UWS\10\213" "\0\0\0\0\5yyu\364\367\367\364\377\356\356\351\377\353\354\346\377\351" "\351\342\377\202\346\347\337\377\2\223\224\215\367Y[V\227\213\0\0\0\0" "\2xxt\364\346\346\337\377\204\270\271\243\377\3\275\276\251\377\333\333" "\321\377~\200{\367\210UWS\377\5Y[V_UWS\2\0\0\0\0vws\364\344\344\334\377" "\202\270\271\243\377P\267\270\242\377\265\266\240\377\264\264\236\377" "\270\270\243\377\317\320\302\377\322\323\306\377\316\317\301\377\312" "\312\274\377\305\306\266\377\301\301\261\377\274\274\253\377\267\270" "\245\377\263\264\241\377XZV\374UWS\10\0\0\0\0uvr\364\341\342\330\377" "\265\266\237\377\263\264\235\377\261\262\233\377\257\260\231\377\255" "\256\227\377\253\254\225\377\251\252\223\377\247\250\221\377\245\246" "\216\377\243\244\214\377\241\242\212\377\237\240\210\377\236\236\206" "\377\234\234\204\377\250\250\223\377WYU\374UWS\10\0\0\0\0sup\364\334" "\334\322\377\256\257\230\377\254\255\226\377\252\253\224\377\250\251" "\222\377\246\247\220\377\245\245\216\377\243\243\214\377\241\241\211" "\377\237\237\207\377\235\235\205\377\233\233\203\377\231\231\201\377" "\227\227\177\377\225\226}\377\236\237\210\377WYU\374UWS\10\0\0\0\0qs" "n\363\326\326\313\377\250\250\221\377\246\246\217\377\244\244\215\377" "\242\242\213\377\240\241\211\377\236\237\206\377\234\235\204\377\232" "\233\202\377\230\231\200\377\226\227~\377\224\225|\377\222\223z\377\217" "\220x\377\216\216u\377\223\223{\377VXS\374UWS\16\0\0\0\0pql\363\276\276" "\263\377cd]\377WYU\377\202WYT\377\202VXT\377\1VXS\377\204UWS\377\1VX" "S\377\204VXT\377\35VXT\375Z\\W\237npk\363\205\206~\377\261\262\251\377" "\351\352\343\377\346\346\336\377\341\342\331\377\336\336\324\377\332" "\332\317\377\326\326\312\377\322\323\305\377\316\317\300\377\312\313" "\273\377\306\307\266\377\302\303\261\377\276\277\253\377\272\273\246" "\377\265\266\241\377\261\262\233\377\237\240\213\377Y[V\356lnh\363km" "f\377\333\333\323\377\300\301\257\377\261\262\234\377\261\262\233\377" "\260\261\233\377\202\260\261\232\377\1\257\260\232\377\203\257\260\231" "\377\205\256\257\230\377\6\216\220\177\377\\^X\267jlf\363\\]Y\377\353" "\353\345\377\263\264\235\377\216\260\261\231\377\5yzn\370UWSnfha\365" "|}w\377\343\344\333\377\217\261\262\233\377\5ac\\\362UWS1`b]\367\240" "\242\232\377\327\327\313\377\216\263\264\235\377\6\255\256\230\377XZ" "U\367UWS\3^`[\372\277\277\267\377\313\314\274\377\216\264\265\236\377" "\6\230\231\210\377]^Y\313\0\0\0\0^`Z\375\327\327\317\377\301\302\257" "\377\216\266\267\240\377\30\201\202v\377WYT\207\0\0\0\0Y[V\377\333\333" "\323\377\346\346\336\377\342\342\331\377\336\336\324\377\332\332\317" "\377\326\326\312\377\322\322\305\377\316\317\300\377\312\313\274\377" "\306\307\266\377\302\303\262\377\276\277\255\377\272\273\250\377\266" "\267\243\377\264\265\240\377\262\263\236\377ce^\377OQNM\0\0\0\0WYT\353" "\220VXT\377\7Y[U\360\37\40\36\13\0\0\0\0\0\0\0\26\0\0\0;\0\0\0E\0\0\0" "F\212\0\0\0G\202\0\0\0F\6\0\0\0\77\0\0\0\37\0\0\0\3\0\0\0\0\0\0\0\2\0" "\0\0\10\216\0\0\0\12\2\0\0\0\11\0\0\0\4\202\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_prev_year) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_prev_year[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_prev_year[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1113) */ "\0\0\4q" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\301\377\377\377\0\3FJCXX[U\372FJC\340\203\377\377\377\0\3FKCXX[U\372" "EJC\340\203\377\377\377\0\3FJCXX[U\372FJC\340\204\377\377\377\0\4FJC" "Sz{y\354\315\315\315\375ad_\377\202\377\377\377\0\4GJDSz{y\354\315\315" "\315\375ad_\377\202\377\377\377\0\4FJCSz}y\354\315\315\316\376ad_\377" "\203\377\377\377\0\21FJCMy|w\355\320\317\320\372\311\311\312\372dgb\377" "\377\377\377\0FIBMy|w\355\320\317\320\372\311\311\312\372dgb\377\377" "\377\377\0FJCMz}x\355\320\320\321\372\311\311\312\372dgb\377\202\377" "\377\377\0vFJCHy|x\355\326\326\327\372\233\232\232\377\302\302\302\365" "ehc\377GJCHy{x\355\326\326\327\372\233\232\232\377\302\302\302\365eh" "c\377FJCHy|w\355\327\327\330\372\233\232\232\377\302\302\303\365ehc\377" "\377\377\377\0FJCCy|w\356\335\335\335\372\242\241\241\377\213\212\212" "\377\302\302\302\365[^Z\377y|w\356\335\335\335\372\242\241\241\377\213" "\212\212\377\302\302\302\365[_Y\377y{w\356\336\336\337\372\242\241\241" "\377\214\212\212\377\302\302\303\365cfa\377FJC>wzu\356\346\346\346\371" "\250\250\250\377\221\217\217\377\213\212\212\377\241\242\241\367txt\377" "\346\346\346\371\250\250\250\377\221\217\217\377\213\212\212\377\241" "\242\241\367uxs\377\345\345\346\371\250\250\250\377\221\217\217\377\214" "\212\212\377\300\300\301\364`c^\377FJC\321\341\341\341\356\266\265\265" "\377\223\222\222\377\221\217\217\377\211\207\210\377X\\V\375\327\330" "\330\377\266\265\265\377\223\222\222\377\221\217\217\377\211\207\210" "\377Y\\V\375\330\330\330\377\267\266\266\377\223\222\222\377\221\217" "\217\377\211\210\210\377\262\262\262\362`c^\377FJC>rup\355\335\335\336" "\367|{{\377[YY\377ROP\377\212\214\212\363pto\377\335\335\336\367|{{\377" "[YY\377ROP\377\213\214\212\363qto\377\335\335\336\367|{{\377[YY\377R" "OP\377\242\242\243\357`c^\377\377\377\377\0FJCCsvq\355\321\321\322\370" "rpp\377OLM\377\242\242\243\357Y\\W\377svq\355\321\321\322\370rpp\377" "OLM\377\242\242\243\357Y\\W\377svq\355\322\322\323\367rpp\377OLM\377" "\242\242\243\357`c^\377\202\377\377\377\0\22FJCHruq\354\307\307\310\370" "gef\377\242\242\243\357`c^\377GJCHrtq\354\307\307\310\370gef\377\242" "\242\243\357`c^\377FJCHrup\354\310\310\311\367gef\377\242\242\243\357" "`c^\377\203\377\377\377\0\21FJCMrup\354\275\274\275\367\256\256\260\367" "`c^\377\377\377\377\0FIBMrup\354\275\274\275\367\256\256\260\367`c^\377" "\377\377\377\0FJCMrup\354\275\275\276\367\256\256\257\367`c^\377\204" "\377\377\377\0\20FJCSqsp\353\271\270\271\374]`[\377\0\0\0\3\0\0\0\5C" "F@Xqso\354\271\270\271\375]`[\377\0\0\0\3\0\0\0\1FJCSqtp\353\270\270" "\271\375]`[\377\203\377\377\377\0\21\0\0\0\7\0\0\0\15=@:eTXR\373EIB\344" "\0\0\0%\0\0\0)\0\0\0,492uTWQ\373DHB\345\0\0\0%\0\0\0\40\0\0\0\33=@:f" "UXR\372FJC\341\202\377\377\377\0\22\0\0\0\2\0\0\0\15\0\0\0\25\0\0\0\35" "\0\0\0%\0\0\0,\0\0\0""4\0\0\0;\0\0\0B\0\0\0F\0\0\0B\0\0\0<\0\0\0""4\0" "\0\0-\0\0\0&\0\0\0\36\0\0\0\25\0\0\0\7\204\377\377\377\0\16\0\0\0\1\0" "\0\0\4\0\0\0\10\0\0\0\14\0\0\0\21\0\0\0\26\0\0\0\32\0\0\0\33\0\0\0\30" "\0\0\0\24\0\0\0\17\0\0\0\13\0\0\0\7\0\0\0\3\252\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_remove) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_remove[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_remove[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (243) */ "\0\0\1\13" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\377\377\377\377\0\216\377\377\377\0\2\4$^z\0\36\\\376\216\0\36\\\377" "\2\0\36\\\376\4$^z\202\377\377\377\0\2\12&c\374\271\310\333\377\216\303" "\321\341\377\2\271\310\333\377\12&c\374\202\377\377\377\0\2\20,f\377" "\276\316\337\377\205\226\257\313\377\13\224\255\312\377\211\245\304\377" "\177\236\300\377y\231\274\377r\223\271\377k\216\265\377e\212\263\377" "f\213\263\377p\222\270\377\255\301\326\377\15*d\377\202\377\377\377\0" "\10\13(c\377\243\272\322\377w\227\273\377{\232\275\377u\226\273\377l" "\217\266\377a\207\261\377Y\200\254\377\210X\200\254\377\2\230\261\314" "\377\12'b\377\202\377\377\377\0\2\7#a\374\223\253\307\377\216\237\266" "\317\377\2\223\253\307\377\7#a\374\202\377\377\377\0\2\4$^z\0\36\\\376" "\216\0\36\\\377\2\0\36\\\376\4$^z\377\377\377\377\0\216\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_select_color) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_select_color[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_select_color[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (795) */ "\0\0\3""3" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\252\377\377\377\0\6""333\12""99;~::;\347::;\377;;<\377;.<\377\204;;" "<\377\6<+<\377;;<\377::;\377@=:\356]O9\234333\12\204\377\377\377\0\3" "RMS\232|u|\373\324\307\322\377\202\345\326\343\377\1\215}\215\377\204" "\312\340\267\377\6\215}\215\377\373\331\240\377\373\331\237\377\351\311" "\225\377\205wa\37099;~\204\377\377\377\0\3>=\77\356\325\310\323\377\326" "\300\324\377\202\322\271\317\377\1GH\371\20299:\377\1:-;\377\2049" "9:\377\1:3:\377\20299:\377\3""99:\34599;~333\12\252\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_select_date) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_select_date[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_select_date[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (940) */ "\0\0\3\304" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\2NMM\303ZYZ\377\212\\Z[\377\2TRS\377HGG\343\206\377\377\377\0\4\177" "~\177\377\303\302\302\377\351\351\351\377\335\335\335\377\210\271\271" "\271\377\2\256\256\256\377RPQ\377\206\377\377\377\0\4gff\377\232\230" "\231\377\273\272\272\377\255\253\254\377\210\230\226\227\377\2\211\211" "\211\377JHI\377\206\377\377\377\0\2WXU\377\221\220\220\377\212\224\223" "\223\377\2\221\217\220\377TUS\377\206\377\377\377\0\3Z\\X\377\373\373" "\373\377\345\345\343\377\210\344\344\342\377\3\346\346\344\377\372\372" "\371\377[]X\377\206\377\377\377\0\3UWS\377\374\374\374\377\346\346\343" "\377\210\345\345\342\377\3\347\347\344\377\373\373\373\377UWS\377\206" "\377\377\377\0\3UWS\377\374\374\374\377\346\346\343\377\202\345\345\342" "\377\1__]\377\203UUT\377\5\235\235\233\377\345\345\342\377\347\347\344" "\377\373\373\373\377UWS\377\206\377\377\377\0\3UWS\377\374\374\374\377" "\346\346\343\377\202\345\345\342\377\2ZZY\377\203\203\202\377\202\266" "\266\264\377\5\316\316\314\377\345\345\342\377lni\377\276\276\276\377" "UWS\377\206\377\377\377\0\3UWS\377\374\374\374\377\346\346\343\377\202" "\345\345\342\377\6ZZY\377hhg\377\202\202\200\377\253\253\250\377\335" "\335\332\377\345\345\342\377\202564\377\1JKI\377\206\377\377\377\0\3" "UWS\377\374\374\374\377\346\346\343\377\202\345\345\342\377\12\207\207" "\206\377\240\240\236\377\207\207\205\377QQP\377\224\224\223\377\353\353" "\351\377554\377}\227k\3778:7\377222R\205\377\377\377\0\3UWS\377\374\374" "\374\377\346\346\343\377\204\345\345\342\377\11\350\350\346\377aaa\377" "bba\377\362\362\361\377454\377\240\274\215\377~\236j\377896\371222S\204" "\377\377\377\0\21UWS\377\374\374\374\377\346\346\343\377\345\345\342" "\377\311\311\306\377\211\211\210\377\261\261\260\377\234\234\232\377" "QQP\377\227\227\226\377\362\362\361\377454\377\250\302\227\377P\214(" "\377\177\236j\377896\371222U\203\377\377\377\0\22UWS\377\374\374\374" "\377\346\346\343\377\350\350\346\377\333\333\331\377\210\210\207\377" "mml\377xxx\377\247\247\246\377\346\346\345\377\362\362\361\377443\377" "\271\316\253\377E\204\33\377P\214(\377\177\236j\3778:6\371222W\202\377" "\377\377\0\3VXT\375\367\367\366\377\375\375\375\377\210\376\376\376\377" "\13""343\377\274\320\257\377b\227>\377C\203\30\377P\214(\377\177\237" "i\3778:6\370222X\377\377\377\0Z\\XwVXT\375\211UWS\377\11""222\377\273" "\320\256\377\226\271}\377G\206\35\377N\212&\377\177\253b\377~\236i\377" "241\372222Z\213\377\377\377\0\11""222\376\273\320\255\377\264\315\242" "\377\240\300\212\377\200\250e\377AG=\370444\376222\376370\255\213\377" "\377\377\0\10""222\376\307\327\274\377\227\246\214\374\235\257\220\374" "\267\316\247\377DJB\367222_222\2\214\377\377\377\0\7""222\377LUF\371" "351\330<>;\372\303\325\266\377\211\240{\377361\321\215\377\377\377\0" "\10""351\342341\232222\6""361\265{\212q\375s\201h\373232\372222\12\214" "\377\377\377\0\1""222\1\202\377\377\377\0\4""2222361\341351\222222\"" "\202\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_select_font) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_select_font[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_select_font[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1402) */ "\0\0\5\222" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\3\237\237\237\257\234\234\234\377\236\236\236\377\202\240\240\240\377" "\21\236\236\236\377\234\234\234\377\231\231\231\377\227\227\227\377\225" "\225\224\377\222\222\222\377\220\220\220\377\216\216\215\377\213\213" "\213\377\211\211\210\377\206\206\206\377\204\204\203\377\202\202\201" "\377\177\177~\377\203\203\202\257\232\232\232\377\373\373\373\377\203" "\376\376\376\377\204\375\375\375\377\203\374\374\374\377\203\373\373" "\373\377\202\372\372\372\377\7\371\371\371\377\367\367\367\377}}|\377" "\232\232\232\377\376\376\376\377\356\356\356\377\357\357\357\377\202" "\360\360\360\377\202\357\357\357\377\20\356\356\356\377\354\354\354\377" "\353\353\353\377\351\351\351\377\347\347\347\377\345\345\345\377\343" "\343\343\377\341\341\341\377\337\337\337\377\335\335\335\377\371\371" "\371\377}}|\377\231\231\230\377\376\376\376\377\360\360\360\377\361\361" "\361\377\202\362\362\362\377\202\361\361\361\377\20\357\357\357\377\331" "\331\331\377___\377\0\0\0\377PPP\377ddd\377GGG\377<<<\377\214\214\214" "\377\336\336\336\377\371\371\371\377|||\377\227\227\227\377\376\376\376" "\377\362\362\362\377\363\363\363\377\202\364\364\364\377\22\363\363\363" "\377\362\362\362\377\360\360\360\377\356\356\356\377\264\264\264\377" "\2\2\2\377\333\333\333\377\346\346\346\377\344\344\344\377```\377!!!" "\377\336\336\336\377\371\371\371\377||{\377\225\225\225\377\375\375\375" "\377\363\363\363\377\365\365\365\377\202\366\366\366\377\22\365\365\365" "\377\363\363\363\377\361\361\361\377\357\357\357\377~~~\377)))\377\351" "\351\351\377\347\347\347\377\340\340\340\377,,,\377SSS\377\336\336\336" "\377\371\371\371\377{{{\377\223\223\222\377\375\375\375\377\364\364\364" "\377\366\366\366\377\202\370\370\370\377\22\366\366\366\377\364\364\364" "\377\361\361\361\377\357\357\357\377HHH\377$$$\377eee\377OOO\377!!!\377" "\203\203\203\377\327\327\327\377\336\336\336\377\371\371\371\377zzz\377" "\220\220\220\377\375\375\375\377\365\365\365\377\367\367\367\377\202" "\370\370\370\377\22\365\365\365\377\363\363\363\377\361\361\361\377\357" "\357\357\377\23\23\23\377\223\223\223\377\350\350\350\377\341\341\341" "\377\251\251\251\377\10\10\10\377\233\233\233\377\335\335\335\377\371" "\371\371\377zzy\377\216\216\216\377\374\374\374\377\364\364\364\377\365" "\365\365\377\202\366\366\366\377\21\364\364\364\377\362\362\362\377\360" "\360\360\377\313\313\313\377\0\0\0\377\311\311\311\377\350\350\350\377" "\346\346\346\377\344\344\344\377\24\24\24\377ccc\377\335\335\335\377" "\371\371\371\377xxx\377\214\214\213\377\374\374\374\377\363\363\363\377" "\203\364\364\364\377\21\362\362\362\377\361\361\361\377\357\357\357\377" "\224\224\224\377\25\25\25\377\351\351\351\377\347\347\347\377\345\345" "\345\377\226\226\226\377\3\3\3\377\251\251\251\377\334\334\334\377\371" "\371\371\377wwv\377\211\211\211\377\374\374\374\377\361\361\361\377\202" "\362\362\362\377\202\361\361\361\377\177\357\357\357\377~~~\377///\377" "\32\32\32\377eee\377bbb\377FFF\377EEE\377\244\244\244\377\336\336\336" "\377\334\334\334\377\370\370\370\377vvu\377\207\207\206\377\373\373\373" "\377\357\357\357\377\250\250\250\377@@@\377888\377www\377\322\322\322" "\377\354\354\354\377\352\352\352\377\351\351\351\377\347\347\347\377" "\345\345\345\377\343\343\343\377\341\341\341\377\337\337\337\377\335" "\335\335\377\333\333\333\377\370\370\370\377tts\377\204\204\203\377\373" "\373\373\377\355\355\355\377\306\306\306\377\337\337\337\377\346\346" "\346\377\202\202\202\377\\\\\\\377\352\352\352\377\351\351\351\377\347" "\347\347\377\345\345\345\377\344\344\344\377\342\342\342\377\340\340" "\340\377\336\336\336\377\334\334\334\377\332\332\332\377\370\370\370" "\377ssr\377\201\201\201\377\372\372\372\377\353\353\353\377\335\335\335" "\377\237\237\237\377lll\377\\\\\\\377\24\24\24\377\350\350\350\377\347" "\347\347\377\345\345\345\377\344\344\344\377\342\342\342\377\340\340" "\340\377\336\336\336\377\335\335\335\377\333\333\333\377\331\331\331" "\377\370\370\370\377ssr\377\177\177~\377\372\372\372\377\351\351\351" "\377ZZZ\377qqq\377\271\271\271\377\277\277\277\377\2\2\2\377\346\346" "\346\377\345\345\345\377\344\344\344\377\342\342\342\377\340\340\340" "\377\337\337\337\377\335\335\335\377\333\333\333\377\331\331\331\377" "\327\327\327\377\370\370\370\377ssr\377||{\377\372\372\372\377\347\347" "\347\377\33\33\33\377\317\317\317\377\347\347\347\377\215\215\215\377" "\0\0\0\377\344\344\344\377\343\343\343\377\342\342\342\377\340\340\340" "\377\337\337\337\377\335\335\335\377\333\333\333\377\332\332\332\377" "\330\330\330\377\326\326\326\377\370\370\370\377ssr\377zzy\377\371\371" "\371\377\345\345\345\377\203\203\203\377'''\377888\377YYY\377\7\7\7\377" "\342\342\342\377\341\341\341\377\340\340\340\377\336\336\336\377\335" "\335\335\377\333\333\333\377\10\332\332\332\377\330\330\330\377\326\326" "\326\377\325\325\325\377\370\370\370\377ssr\377wwv\377\371\371\371\377" "\203\343\343\343\377\202\342\342\342\377\17\341\341\341\377\340\340\340" "\377\337\337\337\377\336\336\336\377\335\335\335\377\333\333\333\377" "\332\332\332\377\330\330\330\377\327\327\327\377\325\325\325\377\323" "\323\323\377\370\370\370\377ssr\377tts\377\366\366\366\377\220\370\370" "\370\377\3\365\365\365\377ssr\377zzy\257\222ssr\377\1yyx\257"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_today) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_today[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_today[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1245) */ "\0\0\4\365" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\232\377\377\377\0\3CCCACCC\202DDD\264\202VVV\350\3CCC\264CCC\202CCC" "A\212\377\377\377\0\5@@@\30DDD\253sss\377\211\211\210\377\221\221\220" "\377\202\216\216\215\377\5\221\221\220\377\207\207\207\377qqq\377CCC" "\253@@@\30\207\377\377\377\0\6CCCLYYY\361\216\216\215\377\211\211\210" "\377\205\205\204\377\222\223\221\377\202\237\237\235\377\6\222\223\221" "\377\205\205\204\377\211\211\210\377\214\214\213\377XXX\361CCCL\205\377" "\377\377\0\6FFF\35WWW\361\223\223\222\377\203\203\202\377\235\235\233" "\377\276\300\275\377\204\302\303\300\377\6\276\300\275\377\235\235\233" "\377\203\203\202\377\223\223\222\377UUU\361FFF\35\203\377\377\377\0\10" "\200\200\200\2FFF\300\215\215\214\377\203\203\202\377\256\256\254\377" "\302\303\300\377\267\271\266\377\233\234\232\377\202\216\216\215\377" "\10\233\234\232\377\267\271\266\377\302\303\300\377\256\256\254\377\203" "\203\202\377\212\212\212\377DDD\277\200\200\200\2\202\377\377\377\0\10" "BBBQuuu\377\206\206\205\377\237\237\235\377\302\303\300\377\253\253\251" "\377\204\204\203\377\202\202\201\377\202\210\211\207\377\10\202\202\201" "\377\204\204\203\377\253\253\251\377\302\303\300\377\237\237\235\377" "\206\206\205\377ssr\377BBBQ\202\377\377\377\0\10CCC\214\205\205\204\377" "\204\204\203\377\300\301\277\377\271\272\267\377\205\205\204\377\210" "\211\207\377\256\257\255\377\202\301\302\277\377\10\256\257\255\377\210" "\211\207\377\205\205\204\377\271\272\267\377\300\301\277\377\204\204" "\203\377\202\202\201\377CCC\214\202\377\377\377\0\1DDD\303\202\220\220" "\217\377\17\302\303\300\377\243\244\242\377\202\202\201\377\244\245\243" "\377\302\303\300\377\304\242\240\377\304\240\235\377\302\303\300\377" "\244\245\243\377\202\202\201\377\243\244\242\377\302\303\300\377\220" "\220\217\377\215\215\214\377CCC\303\202\377\377\377\0\22OOO\362rrq\377" "yyw\377\253\255\252\377ggf\377FFF\377\236\237\235\377\257\241\236\377" "\273;:\377\301NL\377\300\262\260\377\273\274\271\377\202\202\201\377" "\230\230\226\377\302\303\300\377\233\233\231\377\212\212\211\377MMM\362" "\202\377\377\377\0\22DDD\316^^^\377\\\\[\377\250\252\247\377rsr\377C" "CC\377\201\202\200\377\250\251\246\377\256SP\377\256ON\377\250\250\245" "\377\207\210\206\377]]\\\377\220\221\217\377\273\275\273\377zzy\377b" "bb\377DDD\316\202\377\377\377\0\10DDD\227^^^\377HHH\377\250\252\247\377" "\221\222\220\377DDD\377TTT\377\233\234\232\377\202\250\252\247\377\10" "\233\234\232\377TTT\377DDD\377\221\222\220\377\250\252\247\377HHH\377" "^^^\377DDD\227\202\377\377\377\0\10CCC_^^^\377EEE\377|}{\377\250\252" "\247\377qrq\377CCC\377DDD\377\202^_^\377\10DDD\377CCC\377qrq\377\250" "\252\247\377|}{\377EEE\377^^^\377CCC_\202\377\377\377\0\10MMM\12FFF\331" "aaa\377FFF\377\225\227\224\377\250\252\247\377\204\205\203\377SSS\377" "\202DDD\377\10SSS\377\204\205\203\377\250\252\247\377\225\227\224\377" "FFF\377aaa\377FFF\331MMM\12\203\377\377\377\0\7EEE4SSS\373XXX\377III" "\377\200\202\200\377\247\251\246\377\250\252\247\377\202\242\244\241" "\377\7\250\252\247\377\247\251\246\377\200\202\200\377III\377XXX\377" "SSS\373EEE4\205\377\377\377\0\6DDDqWWW\375ccc\377GGG\377WWW\377pqo\377" "\202\202\204\202\377\6pqo\377WWW\377GGG\377ccc\377VVV\375DDDq\205\377" "\377\377\0\7\0\0\0\4\0\0\0\25---VDDD\337ccc\377```\377XXX\377\202KKK" "\377\10XXX\377```\377ccc\377DDD\341'''a\0\0\0#\0\0\0\23\0\0\0\1\203\377" "\377\377\0\7\0\0\0\11\0\0\0\34\0\0\0.\10\10\10D111\236:::\320III\361" "\202XXX\377\10HHH\362999\324...\246\6\6\6R\0\0\0=\0\0\0+\0\0\0\24\0\0" "\0\1\204\377\377\377\0\16\0\0\0\2\0\0\0\13\0\0\0\27\0\0\0%\0\0\0""4\0" "\0\0C\21\21\21X\21\21\21Z\0\0\0G\0\0\0:\0\0\0+\0\0\0\35\0\0\0\21\0\0" "\0\5\214\377\377\377\0\202\0\0\0\1\211\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_yes) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_yes[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_yes[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1447) */ "\0\0\5\277" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\206\377\377\377\0\3""7^%>7^%\2028`%\303\2027_%\362\3""7_%\3037^%\202" "7^%>\212\377\377\377\0\14""7^%\21""7_%\253=e*\363U\200\77\373b\216K\377" "n\232W\377l\227W\377^\207K\377Qx\77\373\377b\217K\377m\222\\\377Kp;\3677^%\3547^%;\205\377\377" "\377\0\20""7^%\21""7_%\354b\217J\377x\250Z\377k\242D\377o\247D\377r\251" "G\377l\245B\377_\2327\377L\213&\377E\200%\377J|0\377f\213V\377Y}J\377" "7_%\3547^%\21\204\377\377\377\0\20""7_%\253Pz;\367r\244V\377d\235;\377" "y\257M\377\211\273[\377\217\300`\377\206\271Y\377t\253I\377]\2315\377" "H\207%\377B{%\377=p&\377d\206V\377Ks;\3677_%\253\203\377\377\377\0\22" "7^%>>e+\363t\240]\377]\2278\377o\247E\377\212\274\\\377\241\316o\377" "\253\326x\377\234\312k\377\204\267V\377i\242\77\377M\214(\377D~%\377" ">r%\377Bm0\377j\217]\377=e+\3637^%>\202\377\377\377\0\22""7^%\202R|\77" "\373f\230K\377W\2240\377s\252H\377\220\300a\377\254\327y\377\301\347" "\213\377\246\322s\377\211\273[\377m\245C\377P\217*\377E\177%\377>r%\377" "8e%\377Z\203K\377Oy\77\3737^%\202\202\377\377\377\0\22""7_%\303^\206" "K\377Z\217>\377S\221,\377n\246D\377\210\272Z\377\236\313m\377\247\322" "t\377\231\310i\377\202\266U\377h\241>\377L\214'\377D~%\377>q%\3777d%" "\377Nz>\377Z\204K\3777_%\303\202\377\377\377\0\22""7^%\362h\220W\377" "N\2052\377I\211%\377`\2338\377u\254J\377\205\270W\377\212\274\\\377\202" "\266U\377q\250F\377[\2273\377H\206%\377Bz%\377\377Ay%\377E\201%\377I\210%\377" "O\215)\377Q\217+\377M\214'\377H\206%\377D\177%\377@w%\377\377Z\204K\3777_%\303\202\377\377\377\0\22""7^%\202Ou\77" "\373Z\200K\377=o%\377@v%\377C|%\377D\177%\377E\200%\377D~%\377B{%\377" "\77u%\377r%\377>s%" "\377>r%\377\203\377\377\377\0\21""7_%\254Kt;\367d\212V\3778f&\3777c%\3778e%" "\3778f%\3778e%\3777c%\3777f%\3777i%\3777n%\3778q&\377d\220V\377Ku;\370" "6^%\255\0\0\0\3\202\377\377\377\0\6\0\0\0\1-M\36\25""7^%\355Y\204J\377" "d\216V\377Ar0\377\2037i%\377\23""7k%\3777m%\3777p%\377Aw0\377d\220V\377" "Y\204J\3776^%\357\34/\23\"\0\0\0\6\0\0\0\1\377\377\377\0\0\0\0\1\0\0" "\0\7-L\36I6^%\357Kt;\372i\223\\\377Z\211K\377N\200>\377\202Cx2\377\22" "N\200>\377Z\211K\377i\223\\\377Js;\3726\\$\362!9\26a\0\0\0\32\0\0\0\12" "\0\0\0\2\377\377\377\0\0\0\0\1\0\0\0\7\0\0\0\23\22\36\14""51T!\301;b" ")\367Ox\77\375Z\204K\377\202d\217W\377\35Z\204K\377Ox\77\375;a)\371." "O\37\316\12\22\7[\0\0\0""2\0\0\0\32\0\0\0\12\0\0\0\2\377\377\377\0\0" "\0\0\1\0\0\0\4\0\0\0\15\0\0\0\33\0\0\0""1\35""2\24t)F\33\2600T!\3356" "\\$\3706\\$\3710R\40\341&A\31\274\30*\20\214\0\0\0R\0\0\0:\0\0\0#\0\0" "\0\21\0\0\0\6\0\0\0\1\202\377\377\377\0\21\0\0\0\1\0\0\0\5\0\0\0\15\0" "\0\0\30\0\0\0&\0\0\0""6\0\0\0C\0\0\0M\0\0\0Q\0\0\0P\0\0\0G\0\0\0;\0\0" "\0,\0\0\0\35\0\0\0\20\0\0\0\7\0\0\0\2\204\377\377\377\0\17\0\0\0\1\0" "\0\0\3\0\0\0\7\0\0\0\15\0\0\0\24\0\0\0\32\0\0\0\37\0\0\0!\0\0\0\40\0" "\0\0\35\0\0\0\26\0\0\0\17\0\0\0\11\0\0\0\3\0\0\0\1\202\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_about) #endif #ifdef __GNUC__ const guint8 osmo_stock_about[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_about[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1062) */ "\0\0\4>" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\242\377\377\377\0\3\303\207\27\"\303\210\26\307\275\204\23\33\225\377" "\377\377\0\3\303\211\26\266\337\301\200\376\303\211\30\263\224\377\377" "\377\0\6\277\203\23D\321\245K\367\370\361\311\377\331\263i\370\302\203" "\23P\252\252\0\3\217\377\377\377\0\13\302\206\26i\304\213\30\312\311" "\221-\365\323\246Q\367\363\350\270\377\365\354\257\377\362\346\262\377" "\330\261a\366\314\232>\373\307\216!\336\305\215\26\177\215\377\377\377" "\0\5\304\212\26\241\331\263f\374\367\362\316\377\363\352\246\377\363" "\352\245\377\202\364\354\255\377\4\365\356\265\377\367\360\311\377\337" "\300\200\374\302\210\27\222\215\377\377\377\0\12\377\200\0\2\303\210" "\27\251\321\245=\366\354\334p\377\345\321:\377\350\326M\377\356\341\200" "\377\365\355\266\377\340\304\177\371\304\211\26\240\217\377\377\377\0" "\3\377\200\0\2\303\207\26\321\345\316n\377\203\345\321:\377\3\350\322" "t\377\303\210\26\335\377\377\0\1\220\377\377\377\0\7\303\211\30\326\350" "\324r\377\351\331f\377\345\316r\377\353\333u\377\351\330r\377\307\222" "+\356\221\377\377\377\0\10\303\210\25\357\337\276h\374\311\224.\370\303" "\211\27\313\305\212\34\366\334\272_\370\307\220)\376\306\216\34\11\220" "\377\377\377\0\10\303\210\27\310\303\207\26\231\277\207\30\40\377\377" "\377\0\303\207\17\21\304\210\25x\303\211\26\304\304\211\24\15\214\377" "\377\377\0\3\301\204\24\"\303\210\26\307\301\204\24\33\212\377\377\377" "\0\3\301\204\24#\303\210\26\306\301\204\24\27\210\377\377\377\0\3\303" "\211\26\266\340\301\200\376\304\211\31\263\212\377\377\377\0\3\303\210" "\26\270\340\302\201\376\304\211\31\256\207\377\377\377\0\6\301\204\24" "D\322\245L\367\367\361\311\377\330\262g\370\301\204\24P\301\204\24\3" "\207\377\377\377\0\6\301\204\24J\322\247P\367\370\362\313\377\331\263" "h\370\301\204\24O\301\204\24\3\202\377\377\377\0\13\303\210\26i\304\212" "\30\312\310\221+\365\322\246O\367\363\350\270\377\365\354\257\377\362" "\346\262\377\327\260b\366\315\233\77\373\306\217!\336\304\212\27\177" "\202\377\377\377\0\20\303\210\26i\304\212\30\313\310\221+\365\322\247" "P\367\363\350\270\377\364\354\256\377\361\345\262\377\327\260a\366\315" "\233\77\373\306\217\"\335\304\213\27|\303\211\27\241\330\263f\374\367" "\361\316\377\363\352\246\377\363\352\245\377\202\364\354\255\377\4\365" "\356\265\377\367\360\311\377\337\300\200\374\303\210\26\222\202\377\377" "\377\0\3\303\211\27\242\331\265i\374\367\361\315\377\202\363\352\245" "\377\202\364\354\255\377\16\365\356\265\377\367\360\311\377\336\276}" "\373\303\210\26\222\301\204\24\2\303\210\26\251\321\245=\366\354\334" "p\377\345\321:\377\350\326M\377\356\341\200\377\365\355\266\377\340\303" "\177\371\303\210\26\240\203\377\377\377\0\12\301\204\24\3\303\210\26" "\255\321\246\77\366\353\333o\377\345\321:\377\350\326M\377\356\341\200" "\377\365\355\266\377\340\302}\371\303\210\26\240\202\377\377\377\0\3" "\301\204\24\2\303\210\26\321\345\316n\377\203\345\321:\377\3\350\322" "t\377\303\210\26\335\301\204\24\1\204\377\377\377\0\3\301\204\24\3\303" "\210\26\323\345\316n\377\203\345\321:\377\3\350\322t\377\303\211\26\331" "\301\204\24\1\203\377\377\377\0\7\304\212\27\326\350\323r\377\351\331" "f\377\345\316q\377\353\333u\377\351\330r\377\310\223+\356\206\377\377" "\377\0\7\304\211\27\327\350\324s\377\351\331f\377\345\316q\377\353\333" "u\377\352\331t\377\310\224+\350\204\377\377\377\0\10\303\210\26\357\336" "\277h\374\311\224.\370\303\211\27\313\303\212\33\366\334\272_\370\307" "\217)\376\301\204\24\11\205\377\377\377\0\10\302\207\25\362\336\276h" "\374\311\224.\367\303\211\27\312\303\212\33\366\334\273`\371\307\220" ")\374\301\204\24\4\203\377\377\377\0\10\303\211\26\310\303\210\26\231" "\301\204\24\40\377\377\377\0\301\204\24\21\302\206\25x\303\211\26\304" "\301\204\24\15\204\377\377\377\0\11\301\204\24\1\303\210\26\313\303\210" "\26\231\301\204\24\40\377\377\377\0\301\204\24\22\302\207\25{\303\211" "\26\303\301\204\24\12\311\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_help) #endif #ifdef __GNUC__ const guint8 osmo_stock_help[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_help[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1847) */ "\0\0\7O" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\237\377\377\377\0\4\200\200\200\33\206\203\203\177\211\205\203\276\212" "\205\204\353\202\210\205\203\375\4\212\205\204\353\211\205\203\276\206" "\203\203\177\200ww\35\214\377\377\377\0\15\200\0\0\2\213fi\226\211\204" "\202\375\216\213\212\374\240\235\233\375\270\267\265\377\324\324\323" "\377\324\325\323\377\271\270\266\377\241\235\234\375\221gk\375\225\27" "'\377\217HP\253\212\377\377\377\0\20\214rr&\223*7\365\223)6\377\304\301" "\301\377\354\355\355\377\354\355\354\377\355\356\355\377\355\356\354" "\377\356\357\355\377\357\360\356\377\357\355\353\377\361\330\327\377" "\271\213\221\377\225\31'\377\223)6\365\212||$\207\377\377\377\0\22\213" "bh+\223#0\376\231.;\376\343\326\326\377\354\264\264\377\355\354\352\377" "\362\363\360\377\356\357\355\377\354\355\352\377\353\354\352\377\354" "\355\352\377\354\237\235\377\356\201\200\377\360\302\302\377\350\340" "\337\377\231*7\376\2225\77\376\207\207\207!\205\377\377\377\0\23\252" "\0\0\3\225\32)\371\231:F\376\353\345\344\377\353\236\235\377\353BB\377" "\351~}\377\347\347\345\377\343\343\342\377\340\341\337\377\337\340\337" "\377\340\341\337\377\346&&\377\347<<\377\352ut\377\361\263\261\377\356" "\334\333\377\230\36-\377\221>H\360\205\377\377\377\0\24\221=E\264\224" "#0\377\345\346\345\377\353\251\250\377\353PO\377\346\0\0\377\345\31\31" "\377\346\343\342\377\347\347\347\377\351\351\351\377\351\351\350\377" "\345\341\341\377\354AA\377\346\3\3\377\34621\377\351hh\377\360\251\247" "\377\345\312\313\377\2233\77\377\210\200}\210\203\377\377\377\0\26\204" "em!\227\20!\377\273\231\235\377\355\276\276\377\355_^\377\346\0\0\377" "\350\24\24\377\360jj\377\276\230\231\377\216\212\211\374\210\204\202" "\377\214eg\377\226!.\377\301TX\377\360hh\377\350\23\23\377\346''\377" "\351hg\377\364\311\310\377\312\305\305\377\211\204\202\375\200\200\200" "\33\202\377\377\377\0\26\210kn\214\223BL\376\356\327\327\377\353lk\377" "\346\17\17\377\346\3\3\377\360jj\377\2417@\377\222,9\376\207\204\201" "\210\205\205\205,\210\202\202-\220AJ\262\227\13\34\377\246PT\376\360" "ii\377\342DD\377\343\327\325\377\354\355\352\377\365\365\364\377\217" "\213\212\374\206\203\203\177\202\377\377\377\0\11\211\205\203\276\240" "\235\233\375\354\355\354\377\361\354\351\377\347\253\252\377\353bb\377" "\271JQ\377\225\30'\376\220RW-\204\377\377\377\0\11\224(5N\226\13\34\377" "\272{~\377\335\334\333\377\334\334\333\377\347\347\345\377\366\367\365" "\377\243\237\235\375\211\205\203\276\202\377\377\377\0\10\212\205\204" "\353\270\267\265\377\355\356\355\377\356\357\355\377\343\343\342\377" "\347\347\346\377\2252>\376\215SY\244\206\377\377\377\0\10\215W[\242\220" "xy\374\341\341\341\377\327\330\327\377\343\343\342\377\361\362\361\377" "\274\273\271\377\212\205\204\353\202\377\377\377\0\10\210\205\203\375" "\324\324\323\377\355\356\354\377\354\355\352\377\340\341\337\377\351" "\351\351\377\210\204\202\377\205\205\205,\206\377\377\377\0\10\205\205" "\205,\210\204\202\377\347\347\347\377\325\325\324\377\340\341\337\377" "\356\357\354\377\332\333\330\377\210\205\203\375\202\377\377\377\0\10" "\210\205\203\375\324\325\323\377\356\357\355\377\353\354\352\377\337" "\340\337\377\351\351\350\377\210\204\202\377\205\205\205,\206\377\377" "\377\0\10\205\205\205,\210\204\202\377\347\347\347\377\324\324\323\377" "\337\340\337\377\355\356\354\377\333\334\331\377\210\205\203\375\202" "\377\377\377\0\10\212\205\204\353\271\270\266\377\357\360\356\377\354" "\355\352\377\340\341\337\377\345\345\345\377\216\210\207\374\212ij\226" "\206\377\377\377\0\10\217HO\255\2238C\376\342\342\342\377\325\325\324" "\377\340\341\337\377\360\361\356\377\275\274\272\377\212\205\204\353" "\202\377\377\377\0\11\211\205\203\276\241\235\234\375\357\360\357\377" "\356\357\355\377\343\343\342\377\341\342\341\377\261\207\213\377\226" "\17\40\377\220CL5\204\377\377\377\0\11\217@I7\226\21!\377\261\203\211" "\377\334\315\315\377\336\215\214\377\345vu\377\362\343\342\377\244\240" "\236\375\211\205\203\276\202\377\377\377\0\12\206\203\203\177\217\213" "\212\374\357\357\357\377\356\241\237\377\351\205\204\377\341\251\250" "\377\344\344\344\377\232PX\376\225\23#\377\216MR\251\202\205\205\205" ",\12\210|{\214\227\20!\377\232U\\\376\344\336\336\377\335\205\204\377" "\34554\377\346\1\1\377\361rq\377\2265\77\376\211rt\210\202\377\377\377" "\0\26\200\200\200\33\221E\377\355xx\377\354;;\377\353\334\331\377\347\347\345\377\343\343\342" "\377\340\341\337\377\337\340\337\377\340\341\337\377\343\343\342\377" "\347\347\345\377\356\227\226\377\350pq\377\234\34*\377\222,9\376UEE\77" "\0\0\0\20\0\0\0\2\203\377\377\377\0\25\0\0\0\14\0\0\0\32g$,c\227\25$" "\374\227\37-\377\313eg\377\365\365\364\377\366\367\365\377\361\362\361" "\377\356\357\354\377\355\356\354\377\360\361\356\377\363\364\362\377" "\370\370\366\377\312\271\271\377\226\26&\377\2213>\366966Q\0\0\0)\0\0" "\0\34\0\0\0\14\203\377\377\377\0\25\0\0\0\10\0\0\0\27\0\0\0%\12\0\0""4" "\20719\314\215op\376\216\213\212\375\242\236\235\376\274\273\271\377" "\332\333\330\377\333\334\331\377\275\274\272\377\243\237\235\376\216" "\213\212\375\210\200\177\376}=C\305\0\0\0A\0\0\0""4\0\0\0&\0\0\0\27\0" "\0\0\3\204\377\377\377\0\10\0\0\0\2\0\0\0\17\0\0\0\35\0\0\0(000Hmjj\234" "}zx\317\206\202\201\360\202\210\205\202\376\11\206\202\200\361}yx\321" "jgg\241+++Q\0\0\0""4\0\0\0)\0\0\0\32\0\0\0\11\0\0\0\1\210\377\377\377" "\0\15\0\0\0\2\0\0\0\7\0\0\0\15\0\0\0\21\0\0\0\26\0\0\0\32\0\0\0\33\0" "\0\0\30\0\0\0\25\0\0\0\20\0\0\0\13\0\0\0\5\0\0\0\1\205\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_info_help) #endif #ifdef __GNUC__ const guint8 osmo_stock_info_help[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_info_help[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (3744) */ "\0\0\16\270" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (192) */ "\0\0\0\300" /* width (48) */ "\0\0\0""0" /* height (48) */ "\0\0\0""0" /* pixel_data: */ "\240\377\377\377\0\6\0\0\0\3C(1\242H+4\325,\32\40\3464\37&\244\5\3\3" "-\252\377\377\377\0\7X5@\220\240`t\371\204P`\333\177DY\375\265l\203\377" "C(1\310\0\0\0\10\251\377\377\377\0\7\0\0\0\10\0\0\0X\0\0\0Yk\21<\370" "\\\21""5\377\253g}\367\5\3\4H\247\377\377\377\0\11\0\0\0\37\377\377\377" "\0\0\0\0\17""544\237QJL\302D\37""0\362\203\6E\377\247ax\377&\27\34\226" "\202\377\377\377\0\3\21\12\15\16L.7W3\37%6\240\377\377\377\0\22""555" "eSSS\315\213\213\213\347QQQ\311@@@\326\356\356\356\377\377\377\377\377" "\243\237\241\377t\24D\377r8O\377D)2\263\0\0\0\22""5\40'\241qES\347\274" "r\211\377{JZ\354\25\14\17\276\0\0\0\25\235\377\377\377\0\2\0\0\0\7__" "_\326\202\377\377\377\377\2\336\336\336\377\223\222\222\374\203\377\377" "\377\377\13eIT\377\335~\236\377T2=\324\\7C\312\357\220\256\377\365\224" "\263\377\213Ib\377\220Sg\377\217Wh\373+\32\37\267\0\0\0\6\234\377\377" "\377\0\24\10\10\10A\251\251\251\366\225\225\225\377hhh\377\216\216\216" "\377\352\352\352\377\377\377\377\377\375\375\375\377\377\377\377\377" "|os\377\365\223\262\377\332z\233\377\360\221\257\377\250Wu\377]\30""8" "\377o\7:\377D\31,\351Q1;\336\306x\220\362\26\15\20q\234\377\377\377\0" "\24\0\0\0\4TTT\324hhh\377AAA\377\242\242\242\377\317\317\317\377ooo\377" "ZZZ\377\373\373\373\377sbg\377\375\230\271\377\337m\230\377O$5\377x\5" "\77\377]\16""5\376\\&>\251\377\377\377\0G+4\30[7B\344,\32\40\235\235" "\377\377\377\0\16///QGEF\325jfg\372VMQ\377~vy\377ZZZ\377GGG\377\363\363" "\363\377zXc\377\372\221\264\377\351q\237\377l-G\377^\17""5\374i0Fb\203" "\377\377\377\0\2\33\20\24\"\0\0\0\20\222\377\377\377\0\6\30\17\22$]8" "DnQ1;\203sETa\333\204\240*\177M]\4\202\377\377\377\0\20\0\0\0\3\0\0\0" ":\11\6\7\200T9D\314\276\212\241\373\363\267\323\377\377\242\302\377\214" "ao\377\235\230\232\377\306\306\306\377uej\377\330\204\237\377\365\207" "\255\377\351q\237\377E\36.\3673\23!s\226\377\377\377\0\20\0\0\0\24O0" ":\274\233`u\370\326\216\251\377\354\244\301\377\315\215\247\377Q5\77" "\377C(1\374mBP\344e@L\322pO\\\333\262\201\226\350\364\266\323\375\375" "\273\331\377\376\260\316\377\377\236\275\377\202\377\232\272\377\7\306" "x\222\377}L\\\377\313v\223\377\377\232\272\377\357|\246\377\325i\222" "\377\40\23\27\271\227\377\377\377\0\15;$+\266\365\224\263\377\377\235" "\275\377\377\236\275\377\377\243\302\377\376\254\313\377\375\273\332" "\377\362\253\311\377qDS\377\316|\226\377\377\234\273\377\377\243\302" "\377\377\236\277\377\203\377\232\272\377\11\366\225\263\377\201N^\377" "\203M_\377\262Vz\377E'1\377}JZ\377\351r\237\377\205E\\\373\12\6\7\30" "\226\377\377\377\0\2\27\16\21[\300t\214\363\205\377\232\272\377\5\377" "\233\272\377\376\255\314\377\376\263\322\377\210Sd\377\321~\230\377\205" "\377\232\272\377\10\232]p\377\343\211\246\377\367\212\257\377\264Z}\377" "\253g|\377\275g\206\377\233Kj\377a4D\342\227\377\377\377\0\1P0:\263\205" "\377\232\272\377\7\374\230\270\377\247d}\377\317|\231\377\376\252\311" "\377\376\250\307\377vGV\377\347\214\250\377\205\377\232\272\377\7\372" "\221\264\377\332k\226\377_7D\377\376\231\271\377\354v\242\377\267Y}\377" "kK\313\205\377\232\272\377\7uD\\\377d8b\377" "[2N\377\377\232\272\377\376\245\304\377\367\225\264\377\261k\201\377" "\203\377\232\272\377\11\375\227\267\377\362\202\252\377\323f\220\377" "J\16*\377|IZ\377\375\227\270\377\351q\237\377r9O\376^9E\10\227\377\377" "\377\0\11f=J\320\347\213\251\377~Kc\377\332\204\240\377\377\232\272\377" "\305w\221\377^3X\377i;f\377R&G\377\203\377\232\272\377\14\373\222\265" "\377\370\215\262\377\371\216\263\377\363\204\254\377\352s\240\377\247" "Oq\377Q\12-\377\236\7S\377w\77T\377\371\217\262\377\347p\236\377l9K\360" "\230\377\377\377\0\6\202N_\276\234[t\377d8a\377vA\\\377\377\232\272\377" "\214Mi\377\202i;f\377\1X#G\377\203\377\232\272\377\1\352s\241\377\202" "\351q\237\377\3\332m\227\377e)B\377q\5;\377\202\244\7V\377\4q6M\377\365" "\210\256\377\350q\236\377f7H\331\230\377\377\377\0\11\267n\205x\241Y" "s\377P\30<\377d)K\377\377\232\272\377\202@_\377i;f\377e8a\377\2070Z\377" "\202\377\232\272\377\6\372\220\264\377\351q\237\377\351r\237\377\241" "Vq\3746\30$\374\232\7Q\377\203\244\7V\377\4l-G\377\363\204\254\377\351" "q\237\377P+8\275\230\377\377\377\0\11\377\232\272\6lAN\356\323^\215\377" "\341l\232\377\377\232\272\377\326l\225\377Q\26:\377i\23A\377\365\214" "\257\377\202\377\232\272\377\5\360~\250\377\347p\236\377sAS\377{JY\211" "_%>\353\203\244\7V\377\5\243\10W\377uN\375\317m\221\377\363\204\253\377\366\211\257" "\377\363\203\253\377\343w\236\377s@R\374pDR\357i@M\302e=J\331pDR\352" "R\"6\375q\11=\377_(\77\377\313z\223\377\202\377\232\272\377\3\365\207" "\255\377\351q\237\377:!)\346\234\377\377\377\0\16\344\212\2469tFT\310" "U2=\374R-:\374A%/\370@&.\370\221Xi\373\312z\223\377\317}\227\377\201" "N^\377~L\\\377\203P`\377\313v\222\377\376\231\271\377\203\377\232\272" "\377\3\365\207\255\377\351q\237\377r\77R\357\231\377\377\377\0\7\77(" "/1R2<\266Z6B\334R2;\367~L\\\376\314{\225\377\374\230\270\377\204\377" "\232\272\377\2\345\212\247\377\223Yk\377\207\377\232\272\377\3\365\210" "\256\377\351q\237\377\221Of\372\227\377\377\377\0\6""3\36)Ab_{KZ\366\341i\231\377\256\27a\377\247\30^\376\252\32`\377\246\16Z\377" "G\31-\224\206\377\377\377\0\17\0\0\0\25q\32C\325\244\7V\377\3027w\377" "\367\214\260\377\351q\237\377\226If\376n7K\322\0\0\0\6P,9\326\311c\212" "\377\353u\242\377\366\211\257\377\374\225\267\377\376\231\272\377\203" "\377\232\272\377\2\371\216\262\377}CY\377\202\377\232\272\377\13x7Q\377" "\226\6O\377\244\7V\377{\26G\377B\26*\377\216\6K\377\221Fc\377\341m\231" "\377\207E^\375P,9\310\6\6\6#\202\377\377\377\0\10&\31\31=o,G\346\260" "\"f\377\244\30]\375\25\16\20\223O#6\263<\22%\343\7\3\3I\205\377\377\377" "\0\7;\17#\267\250\20[\377\252\21]\377\266)k\376\212F_\365O(7\327K%3^" "\202\377\377\377\0\16\0\0\0\5Z2@\257\206B\\\376\345o\235\377\351q\237" "\377\351r\237\377\353t\242\377\355y\245\377\356{\245\377\351r\237\377" "y>T\377\376\231\272\377\377\232\272\377]\35:\377\203\244\7V\377\5\234" "\7R\377{\5@\377g3F\376V0>\317\6\6\6$\205\377\377\377\0\4\0\0\0\6""3\35" "#\200}'N\347A\31)\306\202\377\377\377\0\1\0\0\0\20\204\377\377\377\0" "\6\0\0\0\30&\26\35|<$,\220:#*\225\26\14\17w\0\0\0#\206\377\377\377\0" "\4>\35&.`5D\330\177CX\373\303`\206\377\204\351q\237\377\4\204@Z\377\357" "\220\256\377\377\232\272\377b\40=\377\204\244\7V\377\2f\17""9\377:#+" "Y\211\377\377\377\0\3\0\0\0\11\23\13\15v\0\0\0\10\224\377\377\377\0\13" "\0\0\0\13<#+r_5D\324n:N\357t|\2\40\206\377\377\377\0\11:s\2\1" "Ax\12\267l\232\77\367\244\310\202\377;t\3\375\\\220)\365\234\315m\377" "_\227(\370>w\6\227\210\377\377\377\0\10:s\2\20>w\7\360\222\276g\377\213" "\272^\377\224\306f\377\211\300U\377=v\5\364:s\2\24\211\377\377\377\0" "\6;t\3aL\204\26\362\230\314g\377\223\313^\377]\230$\371x\5\312\227\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_edit_note) #endif #ifdef __GNUC__ const guint8 osmo_stock_edit_note[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_edit_note[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1819) */ "\0\0\7""3" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\213\377\377\377\0\6\0\0\0\1{.\32W\242\23\13\375\237\24\14\370i\33\17" "M\0\0\0\3\211\377\377\377\0\1\245\245\245\325\203\243\243\243\377\15" "\236\236\236\377\230\230\230\377\221\221\221\377\212\212\212\377\202" "\202\202\377ze_\377\243\14\10\377\341VX\377\3239:\377\241\10\5\377ZH" "H\377SSS\377MMM\377\203LLL\377\1SSS\325\203\377\377\377\0\1\243\243\243" "\377\206\377\377\377\377\11\376\376\376\377\334\331\322\377\227P/\377" "\276DB\377\356hi\377\340GH\377\266\27\26\377\232%\34\377\362\362\362" "\377\204\377\377\377\377\1LLL\377\203\377\377\377\0\2\243\243\243\377" "\377\377\377\377\202\322\322\322\377\21\323\323\323\377\324\324\324\377" "\323\323\323\377\273\270\262\377\217xG\377\335\261^\377\336\211O\377" "\303MI\377\313..\377\261\11\11\377\236\22\12\377\270\270\267\377\331" "\331\331\377\334\334\334\377\335\335\335\377\377\377\377\377LLL\377\203" "\377\377\377\0\3\243\243\243\377\377\377\377\377\323\323\323\377\203" "\324\324\324\377\12\276\273\265\377\217yG\377\332\257]\377\375\315v\377" "\374\276N\377\313[\"\377\247\11\6\377\240\11\5\377w^V\377\321\321\321" "\377\202\335\335\335\377\3\336\336\336\377\377\377\377\377LLL\377\203" "\377\377\377\0\25\243\243\243\377\377\377\377\377\324\324\324\377\325" "\325\325\377\225\225\225\377\213\210\202\377\214vE\377\330\255\\\377" "\375\315u\377\373\275K\377\353\260>\377\331\246>\377\230/\33\377cHA\377" "\217\217\217\377\232\232\232\377\234\234\234\377\337\337\337\377\340" "\340\340\377\377\377\377\377LLL\377\203\377\377\377\0\20\235\235\235" "\377\377\377\377\377\326\326\326\377\325\325\325\377\300\276\270\377" "\217yH\377\327\254\\\377\375\315s\377\374\275H\377\351\260>\377\327\246" ">\377\214sA\377yun\377\315\315\315\377\335\335\335\377\337\337\337\377" "\202\340\340\340\377\3\341\341\341\377\377\377\377\377LLL\377\203\377" "\377\377\0\16\227\227\227\377\377\377\377\377\326\326\326\377\302\277" "\272\377\217yI\377\323\252[\377\375\314r\377\373\274G\377\350\260>\377" "\325\243\77\377\210r@\377}{t\377\317\317\317\377\336\336\336\377\202" "\340\340\340\377\1\341\341\341\377\202\342\342\342\377\2\377\377\377" "\377LLL\377\203\377\377\377\0\17\222\222\222\377\376\376\376\377\304" "\302\275\377\217yJ\377\322\251Z\377\374\313p\377\373\272E\377\346\257" ">\377\321\241\77\377\205p\77\377_]X\377\223\223\223\377\234\234\234\377" "\235\235\235\377\236\236\236\377\203\237\237\237\377\3\344\344\344\377" "\377\377\377\377LLL\377\203\377\377\377\0\15\213\213\213\377\345\343" "\337\377\220zK\377\320\246Z\377\374\312o\377\372\272D\377\345\256>\377" "\315\237\77\377\203n\77\377\210\206\201\377\323\323\323\377\337\337\337" "\377\341\341\341\377\202\342\342\342\377\1\343\343\343\377\202\344\344" "\344\377\3\345\345\345\377\377\377\377\377LLL\377\203\377\377\377\0\13" "\201\201\201\377\223~P\377\314\245X\377\374\312m\377\372\272B\377\344" "\255>\377\311\233\77\377\201l>\377\214\213\207\377\324\324\324\377\340" "\340\340\377\202\342\342\342\377\1\343\343\343\377\202\344\344\344\377" "\1\345\345\345\377\202\346\346\346\377\2\377\377\377\377LLL\377\202\377" "\377\377\0\13\0\0\0\1xsh\377\234\201J\377\374\313o\377\371\270A\377\343" "\255>\377\305\231\77\377}h<\377gfc\377\226\226\226\377\236\236\236\377" "\202\237\237\237\377\202\240\240\240\377\202\241\241\241\377\5\346\346" "\346\377\347\347\347\377\350\350\350\377\376\376\376\377LLL\377\202\377" "\377\377\0\13\0\0\0\7{kI\377\324\251Y\377\366\271E\377\341\254>\377\300" "\225\77\377|h=\377\225\224\221\377\327\327\327\377\341\341\341\377\343" "\343\343\377\202\344\344\344\377\1\345\345\345\377\202\346\346\346\377" "\2\347\347\347\377\350\350\350\377\202\351\351\351\377\2\374\374\374" "\377LLL\377\202\377\377\377\0\11+&\31\37gcR\377\345\257F\377\320\240" "\77\377\232~B\377xe<\377\232\231\227\377\330\330\330\377\342\342\342" "\377\202\344\344\344\377\1\345\345\345\377\202\346\346\346\377\2\347" "\347\347\377\350\350\350\377\202\351\351\351\377\15\352\352\352\377\353" "\353\353\377\372\372\372\377LLL\377\377\377\377\0\0\0\0\3`\\M\2539\77" "A\377RM;\377j[8\377nj_\377\177\177\177\377\231\231\231\377\202\240\240" "\240\377\203\241\241\241\377\2\242\242\242\377\243\243\243\377\203\244" "\244\244\377\202\245\245\245\377\15\354\354\354\377\370\370\370\377L" "LL\377\377\377\377\0\0\0\0\11KH:\335A>2\377\232\232\230\377\310\310\310" "\377\330\330\330\377\341\341\341\377\344\344\344\377\345\345\345\377" "\202\346\346\346\377\2\347\347\347\377\350\350\350\377\202\351\351\351" "\377\1\352\352\352\377\202\353\353\353\377\1\354\354\354\377\202\355" "\355\355\377\12\367\367\367\377LLL\377\377\377\377\0\0\0\0\2\0\0\0\23" "___\377\367\367\367\377\343\343\343\377\344\344\344\377\345\345\345\377" "\202\346\346\346\377\2\347\347\347\377\350\350\350\377\202\351\351\351" "\377\1\352\352\352\377\202\353\353\353\377\1\354\354\354\377\202\355" "\355\355\377\16\356\356\356\377\357\357\357\377\366\366\366\377NNN\377" "ppp\31\377\377\377\0\0\0\0\1___\377\373\373\373\377\345\345\345\377\346" "\346\346\377\241\241\241\377\242\242\242\377\243\243\243\377\203\244" "\244\244\377\202\245\245\245\377\1\354\354\354\377\202\355\355\355\377" "\1\356\356\356\377\202\357\357\357\377\4\360\360\360\377\342\342\342" "\377^^^\377LLL\25\202\377\377\377\0\5YYY\377\371\371\371\377\346\346" "\346\377\347\347\347\377\350\350\350\377\202\351\351\351\377\1\352\352" "\352\377\202\353\353\353\377\1\354\354\354\377\202\355\355\355\377\10" "\356\356\356\377\340\340\340\377\255\255\255\377\256\256\256\377\243" "\243\243\377\206\206\206\377]]]\377TTT\356\203\377\377\377\0\3TTT\377" "\366\366\366\377\350\350\350\377\202\351\351\351\377\1\352\352\352\377" "\202\353\353\353\377\1\354\354\354\377\202\355\355\355\377\1\356\356" "\356\377\202\357\357\357\377\7\337\337\337\377\253\253\253\377\254\254" "\254\377\251\251\251\377\245\245\245\377\202\202\202\375QQQ\211\203\377" "\377\377\0\4NNN\377\365\365\365\377\351\351\351\377\352\352\352\377\202" "\353\353\353\377\1\354\354\354\377\202\355\355\355\377\1\356\356\356" "\377\202\357\357\357\377\11\360\360\360\377\361\361\361\377\337\337\337" "\377\220\220\220\377\257\257\257\377\243\243\243\377\205\205\205\375" "RRR\347LLL\37\203\377\377\377\0\1LLL\377\202\363\363\363\377\210\362" "\362\362\377\11\363\363\363\377\362\362\362\377\363\363\363\377\242\242" "\242\376sss\377\205\205\205\377ddd\363SSS\332LLL\32\204\377\377\377\0" "\1SSS\325\215LLL\377\5OOO\362PPP\366UUU\306LLLMLLL\1\223\377\377\377" "\0\1LLL\7\207\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_bold_s) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_bold_s[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_bold_s[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1157) */ "\0\0\4\235" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\225\377\377\377\0\22\244\247\242\302\240\243\234\377\237\241\233\377" "\234\237\231\377\231\234\226\377\225\230\222\377\221\224\216\377\215" "\220\212\377\210\213\205\377\204\206\201\377\177\201|\377z|w\377uwr\377" "prm\377kmh\377fhc\377`b^\377cda\302\202\377\377\377\0\2\246\251\242\377" "\374\374\374\377\204\376\376\376\377\203\375\375\375\377\202\374\374" "\374\377\203\373\373\373\377\202\372\372\372\377\2\367\367\367\377^`" "\\\377\202\377\377\377\0\3\253\256\247\377\376\376\376\377\360\360\360" "\377\203\361\361\361\377\14\360\360\360\377\356\356\356\377\355\355\355" "\377\353\353\353\377\351\351\351\377\346\346\346\377\344\344\344\377" "\342\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377ac_\377" "\202\377\377\377\0\10\257\262\253\377\376\376\376\377\362\362\362\377" "\363\363\363\377\364\364\364\377\363\363\363\377\360\360\360\377cdd\377" "\202TUU\377\1cdd\377\202\345\345\345\377\5\342\342\342\377\340\340\340" "\377\336\336\336\377\371\371\371\377dfb\377\202\377\377\377\0\3\261\264" "\255\377\376\376\376\377\365\365\365\377\202\366\366\366\377\2\365\365" "\365\377\303\304\304\377\204TUU\377\7\272\273\273\377\345\345\345\377" "\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371\377fhd\377" "\202\377\377\377\0\3\257\262\253\377\375\375\375\377\366\366\366\377" "\202\370\370\370\377\4\366\366\366\377\206\207\207\377TUU\377UVV\377" "\202TUU\377\7\201\202\202\377\345\345\345\377\343\343\343\377\340\340" "\340\377\336\336\336\377\371\371\371\377hjf\377\202\377\377\377\0\3\253" "\256\247\377\375\375\375\377\366\366\366\377\202\370\370\370\377\15\347" "\347\347\377WXX\377TUU\377\177\200\200\377uvv\377TUU\377WXX\377\327\327" "\327\377\342\342\342\377\340\340\340\377\335\335\335\377\371\371\371" "\377jlg\377\202\377\377\377\0\3\246\251\242\377\375\375\375\377\365\365" "\365\377\202\366\366\366\377\1\251\251\251\377\202TUU\377\2\270\270\270" "\377\253\253\253\377\202TUU\377\6\241\241\241\377\342\342\342\377\337" "\337\337\377\335\335\335\377\371\371\371\377kmh\377\202\377\377\377\0" "\2\240\243\235\377\374\374\374\377\203\363\363\363\377\15kll\377TUU\377" "\\]]\377\346\346\346\377\335\335\335\377WXX\377TUU\377hii\377\341\341" "\341\377\336\336\336\377\334\334\334\377\371\371\371\377kni\377\202\377" "\377\377\0\2\233\235\227\377\374\374\374\377\202\361\361\361\377\1\312" "\312\312\377\202TUU\377\4yzz\377\305\305\305\377\304\304\304\377noo\377" "\202TUU\377\5\276\276\276\377\335\335\335\377\333\333\333\377\371\371" "\371\377lni\377\202\377\377\377\0\2\225\230\222\377\373\373\373\377\202" "\356\356\356\377\1\214\214\214\377\210TUU\377\5\206\206\206\377\334\334" "\334\377\332\332\332\377\370\370\370\377kni\377\202\377\377\377\0\7\217" "\222\214\377\373\373\373\377\354\354\354\377\342\342\342\377YZZ\377T" "UU\377[\\\\\377\202tuu\377\202stt\377\7XYY\377TUU\377YZZ\377\322\322" "\322\377\330\330\330\377\370\370\370\377kmh\377\202\377\377\377\0\4\211" "\214\206\377\372\372\372\377\351\351\351\377\253\253\253\377\202TUU\377" "\6\226\227\227\377\346\346\346\377\344\344\344\377\343\343\343\377\341" "\341\341\377\206\207\207\377\202TUU\377\4\242\242\242\377\327\327\327" "\377\370\370\370\377jlg\377\202\377\377\377\0\4\203\206\200\377\372\372" "\372\377\347\347\347\377qqq\377\202TUU\377\6\312\313\313\377\343\343" "\343\377\342\342\342\377\341\341\341\377\337\337\337\377\267\267\267" "\377\202TUU\377\4mnn\377\325\325\325\377\370\370\370\377hjf\377\202\377" "\377\377\0\2}\200{\377\371\371\371\377\203\344\344\344\377\15\343\343" "\343\377\342\342\342\377\341\341\341\377\340\340\340\377\336\336\336" "\377\335\335\335\377\333\333\333\377\331\331\331\377\330\330\330\377" "\326\326\326\377\324\324\324\377\370\370\370\377fhd\377\202\377\377\377" "\0\2xzu\377\367\367\367\377\205\371\371\371\377\211\370\370\370\377\2" "\365\365\365\377dfa\377\202\377\377\377\0\5yzv\302tvq\377vxs\377wyt\377" "xzu\377\203y{v\377\12xzu\377wyt\377uwr\377suq\377qsn\377npl\377kmi\377" "hjf\377egb\377hig\302\251\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_italic_s) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_italic_s[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_italic_s[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1201) */ "\0\0\4\311" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\225\377\377\377\0\22\244\247\242\302\240\243\234\377\237\241\233\377" "\234\237\231\377\231\234\226\377\225\230\222\377\221\224\216\377\215" "\220\212\377\210\213\205\377\204\206\201\377\177\201|\377z|w\377uwr\377" "prm\377kmh\377fhc\377`b^\377cda\302\202\377\377\377\0\2\246\251\242\377" "\374\374\374\377\204\376\376\376\377\203\375\375\375\377\202\374\374" "\374\377\203\373\373\373\377\202\372\372\372\377\2\367\367\367\377^`" "\\\377\202\377\377\377\0\3\253\256\247\377\376\376\376\377\360\360\360" "\377\203\361\361\361\377\14\360\360\360\377\356\356\356\377\355\355\355" "\377\353\353\353\377\351\351\351\377\346\346\346\377\344\344\344\377" "\342\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377ac_\377" "\202\377\377\377\0\22\257\262\253\377\376\376\376\377\362\362\362\377" "\363\363\363\377\364\364\364\377\363\363\363\377\362\362\362\377\360" "\360\360\377\356\356\356\377\354\354\354\377|}}\377TUU\377\216\216\216" "\377\342\342\342\377\340\340\340\377\336\336\336\377\371\371\371\377" "dfb\377\202\377\377\377\0\3\261\264\255\377\376\376\376\377\365\365\365" "\377\202\366\366\366\377\15\365\365\365\377\363\363\363\377\361\361\361" "\377\357\357\357\377\272\273\273\377WXX\377mnn\377z{{\377\343\343\343" "\377\340\340\340\377\336\336\336\377\371\371\371\377fhd\377\202\377\377" "\377\0\3\257\262\253\377\375\375\375\377\366\366\366\377\202\370\370" "\370\377\15\366\366\366\377\364\364\364\377\361\361\361\377\351\351\351" "\377fgg\377\225\226\226\377\225\225\225\377fgg\377\343\343\343\377\340" "\340\340\377\336\336\336\377\371\371\371\377hjf\377\202\377\377\377\0" "\3\253\256\247\377\375\375\375\377\366\366\366\377\202\370\370\370\377" "\15\366\366\366\377\363\363\363\377\361\361\361\377\236\237\237\377a" "bb\377\341\341\341\377\247\250\250\377VWW\377\337\337\337\377\340\340" "\340\377\335\335\335\377\371\371\371\377jlg\377\202\377\377\377\0\3\246" "\251\242\377\375\375\375\377\365\365\365\377\202\366\366\366\377\15\364" "\364\364\377\362\362\362\377\332\332\332\377YZZ\377\262\262\262\377\351" "\351\351\377\272\272\272\377TUU\377\317\317\317\377\337\337\337\377\335" "\335\335\377\371\371\371\377kmh\377\202\377\377\377\0\2\240\243\235\377" "\374\374\374\377\203\363\363\363\377\15\362\362\362\377\360\360\360\377" "\200\201\201\377uvv\377\351\351\351\377\350\350\350\377\314\314\314\377" "TUU\377\273\273\273\377\336\336\336\377\334\334\334\377\371\371\371\377" "kni\377\202\377\377\377\0\2\233\235\227\377\374\374\374\377\202\361\361" "\361\377\202\360\360\360\377\14\276\276\276\377TUU\377\243\243\243\377" "\277\277\277\377\275\275\275\377\265\265\265\377TUU\377\250\250\250\377" "\335\335\335\377\333\333\333\377\371\371\371\377lni\377\202\377\377\377" "\0\2\225\230\222\377\373\373\373\377\203\356\356\356\377\3\351\351\351" "\377hii\377^__\377\203abb\377\7`aa\377VWW\377\223\224\224\377\334\334" "\334\377\332\332\332\377\370\370\370\377kni\377\202\377\377\377\0\2\217" "\222\214\377\373\373\373\377\202\354\354\354\377\16\353\353\353\377\237" "\240\240\377^__\377\335\335\335\377\347\347\347\377\345\345\345\377\343" "\343\343\377\341\341\341\377pqq\377\201\201\201\377\333\333\333\377\330" "\330\330\377\370\370\370\377kmh\377\202\377\377\377\0\2\211\214\206\377" "\372\372\372\377\202\351\351\351\377\16\326\326\326\377XYY\377\252\252" "\252\377\346\346\346\377\344\344\344\377\343\343\343\377\341\341\341" "\377\337\337\337\377\201\201\201\377noo\377\331\331\331\377\327\327\327" "\377\370\370\370\377jlg\377\202\377\377\377\0\6\203\206\200\377\372\372" "\372\377\347\347\347\377\346\346\346\377\200\201\201\377noo\377\202\343" "\343\343\377\12\342\342\342\377\341\341\341\377\337\337\337\377\335\335" "\335\377\220\221\221\377\\]]\377\327\327\327\377\325\325\325\377\370" "\370\370\377hjf\377\202\377\377\377\0\2}\200{\377\371\371\371\377\203" "\344\344\344\377\15\343\343\343\377\342\342\342\377\341\341\341\377\340" "\340\340\377\336\336\336\377\335\335\335\377\333\333\333\377\331\331" "\331\377\330\330\330\377\326\326\326\377\324\324\324\377\370\370\370" "\377fhd\377\202\377\377\377\0\2xzu\377\367\367\367\377\205\371\371\371" "\377\211\370\370\370\377\2\365\365\365\377dfa\377\202\377\377\377\0\5" "yzv\302tvq\377vxs\377wyt\377xzu\377\203y{v\377\12xzu\377wyt\377uwr\377" "suq\377qsn\377npl\377kmi\377hjf\377egb\377hig\302\251\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_highlight_s) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_highlight_s[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_highlight_s[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (699) */ "\0\0\2\323" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\236\377\377\377\0\4\260u\37J\263z\"\350\264|#\326\260t!M\217\377\377" "\377\0\7\262w\36+\273\2108\365\370\350\262\377\363\337\235\377\303\222" "@\363\263z!\307\261t!.\215\377\377\377\0\2\263{\"\311\357\331\234\376" "\202\377\346x\377\4\373\351\256\377\345\302x\376\267\201.\364\260w!k" "\213\377\377\377\0\11\256u!U\313\241X\366\376\356\245\377\377\336L\377" "\371\325D\377\354\2735\377\356\311o\377\365\344\271\377\262y&\363\212" "\377\377\377\0\12\263\200\32\12\264}(\353\367\350\260\377\377\342a\377" "\377\336L\377\361\3047\377\343\251%\377\355\305`\377\362\341\271\377" "\264{&\325\212\377\377\377\0\12\263y\"\211\335\275x\370\377\353\221\377" "\377\336L\377\367\316A\377\347\261-\377\344\262:\377\367\346\264\377" "\310\237[\365\257u\37S\211\377\377\377\0\12\255x\36\"\272\2066\366\374" "\356\265\377\377\337T\377\376\333I\377\357\2764\377\342\251+\377\360" "\317z\377\353\326\251\376\263{&\307\212\377\377\377\0\12\264{#\276\354" "\324\224\375\377\347|\377\377\336L\377\363\310;\377\345\255(\377\350" "\270G\377\371\352\302\377\273\210;\366\260s\36*\211\377\377\377\0\12" "\257s\37I\306\232P\365\377\360\256\377\377\336M\377\373\325D\377\353" "\270/\377\337\2512\377\363\331\225\377\336\302\216\371\261z%\226\211" "\377\377\377\0\13\252U\0\3\263}$\345\366\345\254\377\377\343h\377\377" "\336L\377\361\3037\377\342\250#\377\354\303\\\377\365\350\302\377\264" "~,\361\252w\"\17\211\377\377\377\0\12YG)`SH0\374\350\335\254\377\377" "\342b\377\367\317@\377\351\263+\377\342\255:\377\366\342\256\377\316" "\246f\366\257v!c\212\377\377\377\0\12>8,\205bca\377791\377\276\265\211" "\377\364\330\201\377\347\2627\377\360\317w\377\356\335\262\377\262{&" "\325\377\0\0\1\212\377\377\377\0\11)..p\251\252\250\376\232\232\226\377" "35/\377]T=\377\314\275\226\377\371\353\303\377\275\216E\366\257v!6\213" "\377\377\377\0\10)..p\241\243\241\376jh^\377JF:\377>=5\37744/\377PG3" "\374\263z%\226\214\377\377\377\0\7)..popl\375JF:\377GD9\377993\373-0" ".\372B;*\310\215\377\377\377\0\6\215k&\266\206e*\376:82\366+.-\364+." ".\226,,,\35\215\377\377\377\0\5\256u\40H\360\316+\377\340\270(\377E<" "+\214000\20\217\377\377\377\0\3\260t\"D\322\245&\373\276\212#\234\242" "\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_strikethrough_s) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_strikethrough_s[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_strikethrough_s[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1206) */ "\0\0\4\316" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\225\377\377\377\0\22\244\247\242\302\240\243\234\377\237\241\233\377" "\234\237\231\377\231\234\226\377\225\230\222\377\221\224\216\377\215" "\220\212\377\210\213\205\377\204\206\201\377\177\201|\377z|w\377uwr\377" "prm\377kmh\377fhc\377`b^\377cda\302\202\377\377\377\0\2\246\251\242\377" "\374\374\374\377\204\376\376\376\377\203\375\375\375\377\202\374\374" "\374\377\203\373\373\373\377\202\372\372\372\377\2\367\367\367\377^`" "\\\377\202\377\377\377\0\3\253\256\247\377\376\376\376\377\360\360\360" "\377\203\361\361\361\377\14\360\360\360\377\356\356\356\377\355\355\355" "\377\353\353\353\377\351\351\351\377\346\346\346\377\344\344\344\377" "\342\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377ac_\377" "\202\377\377\377\0\10\257\262\253\377\376\376\376\377\362\362\362\377" "\363\363\363\377\364\364\364\377\363\363\363\377\362\362\362\377\327" "\327\327\377\202TUU\377\10\317\317\317\377\347\347\347\377\345\345\345" "\377\342\342\342\377\340\340\340\377\336\336\336\377\371\371\371\377" "dfb\377\202\377\377\377\0\3\261\264\255\377\376\376\376\377\365\365\365" "\377\202\366\366\366\377\15\365\365\365\377\363\363\363\377\236\237\237" "\377eff\377^__\377\230\231\231\377\347\347\347\377\345\345\345\377\343" "\343\343\377\340\340\340\377\336\336\336\377\371\371\371\377fhd\377\202" "\377\377\377\0\3\257\262\253\377\375\375\375\377\366\366\366\377\202" "\370\370\370\377\15\366\366\366\377\363\363\363\377eff\377\235\236\236" "\377\220\221\221\377dee\377\346\346\346\377\345\345\345\377\343\343\343" "\377\340\340\340\377\336\336\336\377\371\371\371\377hjf\377\202\377\377" "\377\0\3\253\256\247\377\375\375\375\377\366\366\366\377\202\370\370" "\370\377\15\366\366\366\377\312\313\313\377TUU\377\324\324\324\377\310" "\310\310\377TUU\377\277\300\300\377\345\345\345\377\342\342\342\377\340" "\340\340\377\335\335\335\377\371\371\371\377jlg\377\202\377\377\377\0" "\4\246\251\242\377\375\375\375\377\365\365\365\377\366\366\366\377\202" "YZZ\377\6VWW\377UVV\377YZZ\377XYY\377UVV\377VWW\377\202XYY\377\4\337" "\337\337\377\335\335\335\377\371\371\371\377kmh\377\202\377\377\377\0" "\2\240\243\235\377\374\374\374\377\202\363\363\363\377\16\344\344\344" "\377\336\336\336\377[\\\\\377\241\241\241\377\336\336\336\377\334\334" "\334\377\224\225\225\377Z[[\377\321\321\321\377\324\324\324\377\336\336" "\336\377\334\334\334\377\371\371\371\377kni\377\202\377\377\377\0\2\233" "\235\227\377\374\374\374\377\202\361\361\361\377\16\360\360\360\377\270" "\270\270\377TUU\377\255\255\255\377\273\274\274\377\272\273\273\377\242" "\243\243\377TUU\377\257\257\257\377\340\340\340\377\335\335\335\377\333" "\333\333\377\371\371\371\377lni\377\202\377\377\377\0\2\225\230\222\377" "\373\373\373\377\203\356\356\356\377\2~\177\177\377XYY\377\203]^^\377" "\10\\]]\377VWW\377|||\377\336\336\336\377\334\334\334\377\332\332\332" "\377\370\370\370\377kni\377\202\377\377\377\0\2\217\222\214\377\373\373" "\373\377\202\354\354\354\377\16\334\334\334\377VWW\377\260\260\260\377" "\350\350\350\377\347\347\347\377\345\345\345\377\343\343\343\377\241" "\241\241\377VWW\377\317\317\317\377\333\333\333\377\330\330\330\377\370" "\370\370\377kmh\377\202\377\377\377\0\2\211\214\206\377\372\372\372\377" "\202\351\351\351\377\16\245\246\246\377XYY\377\336\336\336\377\346\346" "\346\377\344\344\344\377\343\343\343\377\341\341\341\377\320\320\320" "\377UVV\377\237\237\237\377\331\331\331\377\327\327\327\377\370\370\370" "\377jlg\377\202\377\377\377\0\22\203\206\200\377\372\372\372\377\347" "\347\347\377\346\346\346\377noo\377\204\204\204\377\345\345\345\377\343" "\343\343\377\342\342\342\377\341\341\341\377\337\337\337\377\335\335" "\335\377vww\377mmm\377\327\327\327\377\325\325\325\377\370\370\370\377" "hjf\377\202\377\377\377\0\2}\200{\377\371\371\371\377\203\344\344\344" "\377\15\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340\377" "\336\336\336\377\335\335\335\377\333\333\333\377\331\331\331\377\330" "\330\330\377\326\326\326\377\324\324\324\377\370\370\370\377fhd\377\202" "\377\377\377\0\2xzu\377\367\367\367\377\205\371\371\371\377\211\370\370" "\370\377\2\365\365\365\377dfa\377\202\377\377\377\0\5yzv\302tvq\377v" "xs\377wyt\377xzu\377\203y{v\377\12xzu\377wyt\377uwr\377suq\377qsn\377" "npl\377kmi\377hjf\377egb\377hig\302\251\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_underline_s) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_underline_s[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_underline_s[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1201) */ "\0\0\4\311" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\225\377\377\377\0\22\244\247\242\302\240\243\234\377\237\241\233\377" "\234\237\231\377\231\234\226\377\225\230\222\377\221\224\216\377\215" "\220\212\377\210\213\205\377\204\206\201\377\177\201|\377z|w\377uwr\377" "prm\377kmh\377fhc\377`b^\377cda\302\202\377\377\377\0\2\246\251\242\377" "\374\374\374\377\204\376\376\376\377\203\375\375\375\377\202\374\374" "\374\377\203\373\373\373\377\202\372\372\372\377\2\367\367\367\377^`" "\\\377\202\377\377\377\0\3\253\256\247\377\376\376\376\377\360\360\360" "\377\203\361\361\361\377\14\360\360\360\377\356\356\356\377\355\355\355" "\377\353\353\353\377\351\351\351\377\346\346\346\377\344\344\344\377" "\342\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377ac_\377" "\202\377\377\377\0\10\257\262\253\377\376\376\376\377\362\362\362\377" "\363\363\363\377\364\364\364\377\363\363\363\377\362\362\362\377\326" "\326\326\377\202TUU\377\10\317\320\320\377\347\347\347\377\345\345\345" "\377\342\342\342\377\340\340\340\377\336\336\336\377\371\371\371\377" "dfb\377\202\377\377\377\0\3\261\264\255\377\376\376\376\377\365\365\365" "\377\202\366\366\366\377\15\365\365\365\377\363\363\363\377\231\232\232" "\377lmm\377cdd\377\223\223\223\377\347\347\347\377\345\345\345\377\343" "\343\343\377\340\340\340\377\336\336\336\377\371\371\371\377fhd\377\202" "\377\377\377\0\3\257\262\253\377\375\375\375\377\366\366\366\377\202" "\370\370\370\377\15\366\366\366\377\357\357\357\377_``\377\250\251\251" "\377\235\236\236\377\\]]\377\341\341\341\377\345\345\345\377\343\343" "\343\377\340\340\340\377\336\336\336\377\371\371\371\377hjf\377\202\377" "\377\377\0\3\253\256\247\377\375\375\375\377\366\366\366\377\202\370" "\370\370\377\15\366\366\366\377\273\273\273\377WXX\377\341\341\341\377" "\330\330\330\377UVV\377\255\256\256\377\345\345\345\377\342\342\342\377" "\340\340\340\377\335\335\335\377\371\371\371\377jlg\377\202\377\377\377" "\0\3\246\251\242\377\375\375\375\377\365\365\365\377\202\366\366\366" "\377\15\364\364\364\377|}}\377\207\210\210\377\356\356\356\377\353\353" "\353\377|||\377pqq\377\344\344\344\377\342\342\342\377\337\337\337\377" "\335\335\335\377\371\371\371\377kmh\377\202\377\377\377\0\2\240\243\235" "\377\374\374\374\377\203\363\363\363\377\15\333\333\333\377TUU\377\304" "\304\304\377\354\354\354\377\352\352\352\377\266\267\267\377TUU\377\305" "\305\305\377\341\341\341\377\336\336\336\377\334\334\334\377\371\371" "\371\377kni\377\202\377\377\377\0\2\233\235\227\377\374\374\374\377\202" "\361\361\361\377\16\360\360\360\377\233\234\234\377TUU\377fgg\377ghh" "\377fgg\377dee\377TUU\377\211\212\212\377\340\340\340\377\335\335\335" "\377\333\333\333\377\371\371\371\377lni\377\202\377\377\377\0\2\225\230" "\222\377\373\373\373\377\202\356\356\356\377\16\353\353\353\377abb\377" "\222\222\222\377\300\300\300\377\277\277\277\377\276\276\276\377\274" "\274\274\377\207\210\210\377YZZ\377\325\325\325\377\334\334\334\377\332" "\332\332\377\370\370\370\377kni\377\202\377\377\377\0\2\217\222\214\377" "\373\373\373\377\202\354\354\354\377\16\272\272\272\377UVV\377\327\327" "\327\377\350\350\350\377\347\347\347\377\345\345\345\377\343\343\343" "\377\314\314\314\377UVV\377\241\241\241\377\333\333\333\377\330\330\330" "\377\370\370\370\377kmh\377\202\377\377\377\0\2\211\214\206\377\372\372" "\372\377\202\351\351\351\377\16|}}\377xxx\377\347\347\347\377\346\346" "\346\377\344\344\344\377\343\343\343\377\341\341\341\377\337\337\337" "\377z{{\377ijj\377\331\331\331\377\327\327\327\377\370\370\370\377jl" "g\377\202\377\377\377\0\4\203\206\200\377\372\372\372\377\347\347\347" "\377\346\346\346\377\202\342\342\342\377\14\345\345\345\377\343\343\343" "\377\342\342\342\377\341\341\341\377\337\337\337\377\335\335\335\377" "\331\331\331\377\325\325\325\377\327\327\327\377\325\325\325\377\370" "\370\370\377hjf\377\202\377\377\377\0\2}\200{\377\371\371\371\377\202" "\344\344\344\377\1\214\214\214\377\203\204\205\205\377\202\203\204\204" "\377\202\202\203\203\377\202\201\202\202\377\4\326\326\326\377\324\324" "\324\377\370\370\370\377fhd\377\202\377\377\377\0\2xzu\377\367\367\367" "\377\205\371\371\371\377\211\370\370\370\377\2\365\365\365\377dfa\377" "\202\377\377\377\0\5yzv\302tvq\377vxs\377wyt\377xzu\377\203y{v\377\12" "xzu\377wyt\377uwr\377suq\377qsn\377npl\377kmi\377hjf\377egb\377hig\302" "\251\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_backup) #endif #ifdef __GNUC__ const guint8 osmo_stock_backup[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_backup[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1760) */ "\0\0\6\370" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\210\0\0\0\0\1""5n\4H\2065o\4\377\1""3q\6-\220\0\0\0\0\4""5n\4H_\220" "0\362\255\315\212\377\261\317\220\377\202\310\336\260\377\2b\2208\363" "3q\6-\220\0\0\0\0\10""5n\4H_\2200\362\220\273`\377a\237\36\377\273\326" "\237\377\326\347\306\377n\232G\3643q\6-\220\0\0\0\0\10""5n\4H_\2200\362" "\220\273`\377a\237\36\377\273\326\237\377\326\347\306\377n\232G\3643" "q\6-\220\0\0\0\0\10""5n\4H_\2200\362\220\273`\377a\237\35\377\273\326" "\237\377\326\347\306\377n\232G\3643q\6-\214\0\0\0\0\17\0\0\0\1""5o\4" "\2215o\4\377;s\13\377\377\202\20\244\21" "\377\5\77\\@\377@B@\377\32\33\33\340\31\31\31[\30\31\31\367\205\27\30" "\30\377\202\30\31\31\377\202\31\32\32\377\202\30\31\31\377\211\27\30" "\30\377\2\32\33\33\357\25\31\31H"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_restore) #endif #ifdef __GNUC__ const guint8 osmo_stock_restore[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_restore[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1726) */ "\0\0\6\326" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\212\0\0\0\0\3\200\200\0\2\252p\2\242\251n\0J\224\0\0\0\0\5\200\200\0" "\2\254r\2\250\301\222*\370\264~\27\365\252q\0H\222\0\0\0\0\7\200\200" "\0\2\253q\1\253\304\225(\366\364\336\212\377\365\347\266\377\263~\27" "\365\251m\0M\220\0\0\0\0\11\200\200\0\2\254r\2\250\305\227.\366\364\331" "z\377\356\305-\377\371\351\263\377\365\347\266\377\264}\26\364\247m\0" "K\216\0\0\0\0\13\377\0\0\1\255r\2\245\306\2303\366\363\331z\377\354\277" "\31\377\354\276\25\377\367\343\234\377\371\353\267\377\365\346\263\377" "\262~\24\363\247n\0C\215\0\0\0\0\14\254r\2\232\304\226.\365\364\333\204" "\377\364\333|\377\355\302#\377\354\276\26\377\367\343\234\377\370\346" "\246\377\373\361\315\377\364\344\257\377\260z\17\363\251n\0A\211\0\0" "\0\0\3\214\216\211j\233\235\231\371\246\211P\377\203\250n\1\377\14\306" "\2325\377\361\321Y\377\354\276\27\377\367\343\234\377\372\355\277\377" "\323\264q\377\276\222\77\377\261|\32\377\250r\12\377\245\232\200\377" "\237\241\234\371\214\217\212m\205\0\0\0\0\24\216\216\216\11\227\231\225" "\366\323\324\321\377\311\312\307\377\324\324\321\377\301\302\276\377" "\274\254\213\377\305\2316\377\362\322\\\377\354\276\27\377\367\343\234" "\377\372\356\304\377\305\236K\377\322\307\261\377\332\333\327\377\331" "\332\327\377\277\277\273\377\315\317\314\377\245\247\242\370\210\210" "\210\17\204\0\0\0\0\24\210\214\205I\266\267\264\366\312\314\307\377\256" "\260\254\377\261\262\256\377\305\306\301\377\300\261\217\377\305\231" "6\377\362\322\\\377\354\277\30\377\367\343\234\377\372\356\304\377\305" "\236J\377\304\272\242\377\314\316\310\377\324\325\321\377\247\251\244" "\377\273\274\270\377\311\312\307\371\210\213\205V\204\0\0\0\0\24\214" "\220\213\236\326\327\324\376\320\322\315\377\305\306\300\377\227\227" "\223\377\317\321\314\377\304\265\222\377\305\2327\377\362\322\\\377\354" "\277\30\377\367\343\234\377\372\356\304\377\305\236K\377\307\275\246" "\377\315\317\310\377\320\321\314\377\326\330\323\377\327\327\323\377" "\340\340\336\377\225\230\220\257\204\0\0\0\0\12\230\231\226\354\341\342" "\337\377\262\261\255\377\224\223\221\377\313\314\310\377\323\325\320" "\377\306\270\225\377\306\2327\377\365\336\207\377\366\337\215\377\202" "\370\347\251\377\11\300\225:\377\312\301\252\377\321\323\316\377\315" "\317\312\377\312\312\307\377\327\330\325\377\344\345\342\377\253\255" "\251\364\377\377\377\1\202\0\0\0\0\4\211\211\203)\263\264\262\367\333" "\334\331\377\232\231\227\377\203\330\331\325\377\1\311\273\231\377\206" "\250n\1\377\10\316\304\256\377\325\327\323\377\325\327\322\377\324\325" "\321\377\312\312\306\377\344\345\342\377\314\315\313\371\207\215\207" "1\202\0\0\0\0\6\207\211\205u\327\330\325\374\305\306\304\377\310\311" "\305\377\335\336\332\377\334\335\332\377\202\334\335\331\377\6\265\265" "\264\377\311\311\307\377\326\327\324\377\330\330\326\377\321\321\320" "\377\262\262\261\377\203\332\333\327\377\5\331\333\327\377\302\304\300" "\377\325\326\322\377\342\342\341\375\213\215\211\177\202\0\0\0\0\6\223" "\225\220\315\352\352\351\377\306\310\304\377\260\257\254\377\340\341" "\336\377\341\341\336\377\202\340\341\336\377\6\340\341\335\377\326\326" "\324\377\303\304\302\377\302\303\301\377\322\323\320\377\337\340\334" "\377\202\336\337\334\377\17\336\337\333\377\334\335\331\377\252\252\246" "\377\312\314\307\377\345\346\342\377\243\245\241\331\0\0\0\0\211\211" "\211\15\255\257\253\372\341\341\337\377\320\322\316\377\302\303\300\377" "\267\266\265\377\335\335\334\377\345\345\342\377\203\344\345\342\377" "\202\344\344\341\377\202\343\344\341\377\202\343\343\340\377S\317\320" "\314\377\231\232\227\377\306\307\302\377\320\322\315\377\343\344\342" "\377\301\302\277\373\210\210\210\17\211\211\206P\327\330\325\371\320" "\321\317\377\324\326\322\377\333\335\331\377\322\323\321\377\271\270" "\267\377\261\257\256\377\311\311\306\377\324\324\321\377\330\332\326" "\377\334\334\332\377\334\334\331\377\325\325\322\377\311\312\307\377" "\254\253\251\377~}|\377\231\231\226\377\316\317\313\377\326\327\323\377" "\327\330\325\377\325\327\324\377\341\341\340\373\211\211\206R\214\215" "\211\244\364\364\363\377\323\325\322\377\312\312\307\377\331\333\330" "\377\326\330\323\377\321\322\316\377\314\316\310\377\303\304\301\377" "\274\274\271\377\262\262\261\377\256\255\252\377\252\251\247\377\251" "\251\247\377\263\263\262\377\304\305\301\377\330\331\325\377\330\331" "\326\377\323\325\320\377\324\325\321\377\305\307\301\377\270\273\264" "\377\356\356\355\377\232\235\227\253\241\243\236\357\365\365\363\377" "\313\315\313\377\274\276\274\377\311\313\307\377\351\352\350\377\352" "\353\351\377\353\353\352\377\354\354\353\377\354\355\353\377\355\355" "\354\377\355\356\355\377\356\356\355\377\355\356\355\377\354\354\353" "\377\352\353\351\377\351\352\350\377\347\350\346\377\346\347\345\377" "\332\333\330\377\254\256\250\377\273\275\270\377\336\337\334\377\263" "\265\260\362\234\236\231\375\367\367\366\377\357\357\355\377\357\360" "\356\377\202\342\342\340\377\10\342\343\340\377\343\343\341\377\343\344" "\341\377\344\344\342\377\342\343\341\377\341\342\340\377\340\341\336" "\377\337\340\335\377\203\336\336\334\377\202\335\336\333\377\7\336\337" "\334\377\354\355\352\377\351\351\347\377\365\365\364\377\256\257\254" "\376\77A\77\374\221\224\217\377\203\247\250\245\377\10\250\251\246\377" "\255\255\253\377\261\262\257\377\265\266\264\377\272\273\270\377\273" "\274\271\377\267\267\265\377\251\252\247\377\211\247\250\245\377\17\227" "\230\224\377\77A\77\376\27\30\30\372V[\\\377.00\377\30\30\31\377)**\377" ":;;\377VXX\377moo\377\201\202\202\377\220\222\222\377\223\224\224\377" "\202\205\205\377W[Z\377\202CGF\377\26DHF\377EIG\377FJH\377HKI\377HLI" "\377IMJ\377KNL\377MOM\377\27\30\30\376\27\30\30\372_dd\377CDD\377\36" "\36\37\377*++\3779::\377SUU\377npp\377\201\203\203\377\220\222\222\377" "\223\226\225\377\203\206\206\377dgf\377\202CGF\377\4DHG\377EIG\377GJ" "H\377,b.\377\202\2\306\2\377\20.c0\377LOL\377\30\31\31\374\30\32\32\347" "NRS\377ppq\377www\377}\177\177\377moo\377`bc\377oqq\377z||\377\211\214" "\213\377\212\215\215\377}\177\177\377hkj\377\202CGF\377\4DHG\377FIH\377" "GJH\377=W>\377\202\20\244\21\377\5\77\\@\377@B@\377\32\33\33\340\31\31" "\31[\30\31\31\367\205\27\30\30\377\202\30\31\31\377\202\31\32\32\377" "\202\30\31\31\377\211\27\30\30\377\2\32\33\33\357\25\31\31H"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_open_url) #endif #ifdef __GNUC__ const guint8 osmo_stock_open_url[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_open_url[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1663) */ "\0\0\6\227" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\237\377\377\377\0\4\0\40`\20\0\36[L\2\37_\204\10&`\304\202\3\"^\362" "\4\7$`\304\2\37]\204\0\36[L\0\40`\20\215\377\377\377\0\14\0\40^W\4#^" "\361Okv\367\223\250\235\376\254\275\254\377\303\320\301\377\317\332\327" "\377\272\307\325\377\233\252\300\376h|\237\366\14)d\361\0\35^W\212\377" "\377\377\0\20\0\32Y\24\7%a\263D`n\371\257\300\274\377\314\327\326\377" "\272\311\256\377\273\312\262\377\304\321\305\377\317\332\336\377\321" "\333\343\377\317\332\343\377\316\331\342\377\276\312\327\377au\232\370" "\10&b\264\0\32Y\24\207\377\377\377\0\4\0\32Y\24\4#_\353i\204{\375\254" "\276\244\377\202\275\314\307\377\14\263\304\262\377\310\325\334\377\311" "\326\340\377\301\317\320\377\306\324\335\377\305\322\334\377\274\313" "\312\377\250\273\235\377\256\277\254\377\206\232\245\374\16+e\354\0\32" "Y\24\206\377\377\377\0\22\7%a\263c\177v\375\242\267\242\377\236\264\230" "\377\300\317\332\377\302\321\334\377\303\321\335\377\302\321\334\377" "\301\320\334\377\300\317\333\377\274\314\325\377\251\274\261\377\261" "\303\306\377\233\260\224\377\243\267\251\377\222\252\202\377}\223\232" "\375\7$a\264\205\377\377\377\0\3\0\40^W/PR\372\216\247\214\377\202\203" "\236r\377\1\243\270\255\377\203\275\315\332\377\13\273\314\331\377\271" "\312\327\377\266\307\325\377\235\264\250\377\200\233l\377}\232g\377~" "\232i\377}\232g\377~\232l\377\77Zu\371\0\35^W\203\377\377\377\0\21\0" "\40`\20\6$]\361a\204O\377i\212P\377l\215W\377\241\266\264\377\257\302" "\312\377\270\313\331\377\271\313\331\377\270\313\331\377\266\311\327" "\377\263\306\324\377\256\302\321\377\217\250\232\377j\212P\377n\216Z" "\377k\213U\377\202i\212P\377\3j\211g\377\3!^\361\0\40`\20\202\377\377" "\377\0\26\0\36[L\"GC\367Pv2\377Z\177B\377\234\265\272\377\255\301\322" "\377\261\305\325\377\265\310\330\377\267\312\332\377\266\311\330\377" "\262\306\326\377\255\302\323\377\245\273\313\377a\205P\377|\232\206\377" "\214\247\255\377v\225\202\377W|>\377Uz8\377Ou4\377\33;W\364\0\36[L\202" "\377\377\377\0\26\2!_\204/Y/\3761^\20\377k\215s\377\236\266\311\377\244" "\273\316\377\252\301\322\377\261\306\327\377\267\312\333\377\262\307" "\330\377\254\302\323\377\246\274\317\377\221\253\261\377Cl&\377@i\40" "\377@j\40\377u\224\222\377u\224\235\377LsB\3773a\24\377/WB\376\2\37]" "\204\202\377\377\377\0\15\11'b\3046a!\377.]\20\377\207\244\267\377\223" "\255\303\377\232\263\310\377\240\270\314\377\245\275\321\377\251\300" "\323\377\247\277\322\377\241\272\316\377\230\261\303\377\77i*\377\204" "+Z\10\377\5,Z\12\3772_\34\3770]\20\377=f>\377\5#_\304\202\377\377\377" "\0\14\5$`\362@k.\377l\215\215\377\177\236\253\377\215\251\277\377\223" "\256\303\377\230\262\307\377\235\266\312\377\237\270\314\377\236\267" "\313\377\232\264\310\377y\231\222\377\206(W\4\377\4*Y\11\377-Z\13\377" "Ir>\377\2!]\362\202\377\377\377\0\14\5$`\362U{Z\377i\212\210\377l\215" "\213\377\204\241\266\377\215\251\277\377\221\254\302\377\224\257\304" "\377\225\260\305\377\225\257\305\377\223\255\303\377y\230\230\377\206" "(W\4\377\4.\\\25\377/^\22\377PyH\377\2!]\362\202\377\377\377\0\10\10" "&b\304]~\215\377GpA\377[\200o\377JrG\377h\213\177\377\210\244\273\377" "\213\247\276\377\202\214\250\276\377\5\212\246\275\377\205\243\267\377" "\77j3\377(W\4\377)X\7\377\204(W\4\377\3FmG\377Rq\210\377\4\"^\304\202" "\377\377\377\0\4\2\37_\204Mk\223\375x\230\256\377IqL\377\202(W\4\377" "\2En>\377\177\236\261\377\202\203\240\270\377\5\201\237\267\377\177\235" "\265\377{\231\261\377o\221\236\377l\216\233\377\203(W\4\377\4)X\7\377" "^\200\212\377\77\\\205\375\0\37]\204\202\377\377\377\0\4\0\36[L2O\201" "\363~\235\265\377`\204\211\377\203(W\4\377\10)X\7\377Cm\77\377y\231\261" "\377x\230\260\377v\226\257\377t\224\255\377p\221\252\377h\212\236\377" "\203(W\4\377\4\211\377\377\377\0\17j`+\27dfb\377\201\202" "}\377^`[\377roe\377\233\213l\377\270\231d\377\275\230X\377\264\217O\377" "\253\207H\377\254\214U\377\261\227h\377\271\244~\377\242\221p\377NG0" "\352\211\377\377\377\0\17\210p\0K\177\200r\376\223\225\220\377\256\260" "\253\377\252\254\247\377\207\211\203\377cd_\377ji`\377\224\206l\377\263" "\225c\377\275\227X\377\264\217P\377\261\220V\377\270\244\201\377OH1\346" "\211\377\377\377\0\6\215s\6\237\314\302\202\376\270\265\220\377\220\220" "{\377\203\204z\377\223\224\214\377\202\253\255\250\377\7\211\212\206" "\377hic\377ba\\\377\213\200i\377\264\236z\377\243\222p\375PI1\226\210" "\377\377\377\0\12\211v\0\15\213s\4\366\362\356\306\377\351\335\201\377" "\341\323`\377\321\304Z\377\263\254b\377\225\224w\377\201\202z\377\212" "\213\203\377\202\231\232\227\377\4\201\202\200\377ije\377WYU\377QM@g" "\210\377\377\377\0\13\213r\2n\271\251U\367\372\366\324\377\361\350\240" "\377\361\351\251\377\344\326g\377\337\320Z\377\332\313M\377\317\301E" "\377\264\253R\377\230\225l\377\202\202\203y\377\3\200\201}\377ijd\377" "MMM\12\207\377\377\377\0\20\210q\0+\221z\17\360\365\360\323\377\375\372" "\344\377\327\315\232\377\364\353\250\377\353\337{\377\350\334y\377\344" "\330o\377\335\316T\377\330\310H\377\323\303;\377\313\2732\377\303\275" "\177\377\251\242s\376\205u\36\252\210\377\377\377\0\20\214s\5\355\341" "\330\245\376\370\363\323\377\310\271k\377\275\255c\377\372\364\302\377" "\370\361\300\377\340\330\251\377\351\337\224\377\344\327h\377\340\322" "`\377\336\317\\\377\327\307E\377\360\352\274\377\237\213#\363\206n\0" "J\210\377\377\377\0\20\233\206&\247\243\2178\373\212r\4\365\210o\0\377" "\306\265l\373\343\333\250\377\342\327\240\377\240\214+\377\365\360\314" "\377\365\357\275\377\367\362\322\377\343\333\246\377\351\340\222\377" "\345\335\240\377\213r\2\356\252U\0\3\212\377\377\377\0\15\377\0\0\1\211" "q\0""6\212s\4\201\220x\14\250\217v\13\274\213r\4\371\262\240N\364\306" "\270p\366\250\225:\374\310\273z\377\356\350\302\377\237\212&\364\211" "q\3c\220\377\377\377\0\7\216q\0\11\207n\0H\207p\0`\214s\6\316\213r\3" "\366\220v\12\323\215t\4{\267\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_find) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_find[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_find[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1487) */ "\0\0\5\347" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\233\377\377\377\0\1\217\217\217\333\203\214\214\214\374\13\215\215\215" "\374\220\220\220\374\222\222\222\374\224\224\224\374\226\226\226\374" "\230\230\230\374\232\232\232\374\234\234\234\374\237\237\237\374\241" "\241\241\374\243\243\243\374\202\244\244\244\374\1\245\245\245\333\206" "\377\377\377\0\1\214\214\214\374\211\377\377\377\377\206\376\376\376" "\377\2\377\377\377\377\244\244\244\374\206\377\377\377\0\2\214\214\214" "\374\377\377\377\377\203\372\372\372\377\15\370\370\370\377\366\366\366" "\377\363\363\363\377\360\360\360\377\355\355\355\377\353\353\353\377" "\350\350\350\377\345\345\345\377\343\343\343\377\340\340\340\377\335" "\335\335\377\376\376\376\377\244\244\244\374\206\377\377\377\0\2\214" "\214\214\374\377\377\377\377\203\372\372\372\377\15\370\370\370\377\366" "\366\366\377\363\363\363\377\360\360\360\377\355\355\355\377\353\353" "\353\377\350\350\350\377\345\345\345\377\343\343\343\377\340\340\340" "\377\335\335\335\377\376\376\376\377\244\244\244\374\206\377\377\377" "\0\2\214\214\214\374\377\377\377\377\203\372\372\372\377\15\370\370\370" "\377\366\366\366\377\363\363\363\377\360\360\360\377\356\356\356\377" "\353\353\353\377\350\350\350\377\345\345\345\377\343\343\343\377\340" "\340\340\377\335\335\335\377\376\376\376\377\243\243\243\374\206\377" "\377\377\0\2\214\214\214\374\377\377\377\377\203\372\372\372\377\15\370" "\370\370\377\366\366\366\377\363\363\363\377\360\360\360\377\356\356" "\356\377\353\353\353\377\350\350\350\377\345\345\345\377\343\343\343" "\377\340\340\340\377\335\335\335\377\376\376\376\377\241\241\241\374" "\206\377\377\377\0\2\214\214\214\374\377\377\377\377\203\372\372\372" "\377\15\370\370\370\377\366\366\366\377\363\363\363\377\360\360\360\377" "\356\356\356\377\353\353\353\377\350\350\350\377\345\345\345\377\343" "\343\343\377\340\340\340\377\335\335\335\377\376\376\376\377\240\240" "\240\374\206\377\377\377\0\2\214\214\214\374\377\377\377\377\203\372" "\372\372\377\15\370\370\370\377\366\366\366\377\363\363\363\377\360\360" "\360\377\336\336\336\377\233\233\234\377def\377]_`\377bdf\377\225\226" "\226\377\315\315\315\377\376\376\376\377\236\236\236\374\206\377\377" "\377\0\2\214\214\214\374\377\377\377\377\203\372\372\372\377\15\370\370" "\370\377\366\366\366\377\363\363\363\377\320\320\320\377_`b\377\230\237" "\247\377\303\317\334\377\321\334\347\377\306\320\335\377\225\235\246" "\377^`b\377\333\333\333\377\234\234\234\374\206\377\377\377\0\2\214\214" "\214\374\377\377\377\377\203\372\372\372\377\15\370\370\370\377\366\366" "\366\377\340\340\340\377bcd\377\273\305\320\377\355\362\370\377\361\365" "\372\377\341\352\364\377\276\321\345\377\301\323\346\377\246\264\304" "\377^`b\377\224\224\224\374\206\377\377\377\0\2\214\214\214\374\377\377" "\377\377\203\372\372\372\377\15\370\370\370\377\366\366\366\377\236\237" "\237\377\234\241\247\377\357\363\371\377\372\373\375\377\372\374\375" "\377\361\365\371\377\245\276\330\377\241\273\327\377\264\311\337\377" "\215\232\246\377stv\376\206\377\377\377\0\2\214\214\214\374\377\377\377" "\377\203\372\372\372\377\15\370\370\370\377\366\366\366\377fgh\377\311" "\322\335\377\366\371\374\377\372\374\375\377\373\374\375\377\340\347" "\360\377\266\310\333\377\260\304\331\377\255\302\330\377\272\311\332" "\377Y[]\377\206\377\377\377\0\2\214\214\214\374\377\377\377\377\203\372" "\372\372\377\15\370\370\370\377\366\366\366\377`ab\377\324\336\350\377" "\343\353\364\377\365\370\373\377\357\363\367\377\307\323\340\377\306" "\321\336\377\276\314\333\377\263\304\330\377\311\327\346\377WY[\377\206" "\377\377\377\0\2\214\214\214\374\377\377\377\377\203\372\372\372\377" "\15\370\370\370\377\366\366\366\377ffg\377\311\323\336\377\325\341\355" "\377\332\344\356\377\335\345\355\377\323\332\342\377\325\333\340\377" "\311\323\335\377\276\314\334\377\304\320\334\377Y[]\377\206\377\377\377" "\0\2\214\214\214\374\377\377\377\377\203\372\372\372\377\15\370\370\370" "\377\366\366\366\377\237\237\240\377\237\244\252\377\335\350\362\377" "\331\344\356\377\325\336\350\377\331\336\343\377\335\337\342\377\315" "\325\335\377\315\327\343\377\231\237\250\377oqq\376\206\377\377\377\0" "\3\214\214\214\374\377\377\377\377\373\373\373\377\202\372\372\372\377" "\15\370\370\370\377\366\366\366\377\342\342\342\377`ab\377\274\304\315" "\377\313\331\350\377\311\325\343\377\317\330\341\377\323\332\342\377" "\324\335\345\377\257\270\277\377\\^_\377\206\205\205\374\206\377\377" "\377\0\23\220\220\220\317\242\242\242\376\246\246\246\377\254\254\254" "\377\260\260\260\377\247\247\247\377\366\366\366\377\363\363\363\377" "\320\320\320\377bcd\377\234\240\245\377\304\315\327\377\317\330\341\377" "\307\317\327\377\230\235\242\377TUT\377\202qQ\377^VA\377KE0\22\205\377" "\377\377\0\24\200\200\200\6\222\222\222\246\312\312\312\372\371\371\371" "\377\377\377\377\377\261\261\261\377\366\366\366\377\363\363\363\377" "\360\360\360\377\334\334\334\377\232\233\233\377efg\377^`a\377dde\377" "\216\216\216\377_W@\377\271\231d\377\237\203Q\377VM5\324KE0\13\206\377" "\377\377\0\23\215\215\215p\264\264\264\370\372\372\372\377\256\256\256" "\377\366\366\366\377\363\363\363\377\360\360\360\377\356\356\356\377" "\353\353\353\377\350\350\350\377\345\345\345\377\343\343\343\377\340" "\340\340\377\226\222\205\377o`A\377\267\233j\377\220xG\370UM4\310KE0" "\6\206\377\377\377\0\3\213\213\213B\241\241\241\363\252\252\252\377\203" "\376\376\376\377\204\375\375\375\377\203\374\374\374\377\5\231\224\206" "\377p`>\377\261\227h\377\203k>\365VM4\250\207\377\377\377\0\3\207\207" "\207\"\220\220\220\336\217\217\217\374\207\220\220\220\374\203\217\217" "\217\374\4c]L\363weA\364\242\207U\377QI1\355\224\377\377\377\0\4KE0\3" "QH0\247OH0\356QH0x\230\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_highlight) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_highlight[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_highlight[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (837) */ "\0\0\3]" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\274\377\377\377\0\5\256t#\26\265\177'\313\271\2054\352\263z\"\235\263" "s&\24\222\377\377\377\0\10\277\200@\4\264|%\334\352\324\236\375\372\355" "\274\377\344\310\212\373\270\2020\365\261w\40v\252\200+\6\220\377\377" "\377\0\11\260x\"q\326\262n\367\376\354\235\377\376\336Q\377\376\351\213" "\377\367\345\262\377\324\257l\370\264{(\350\257u\40""0\216\377\377\377" "\0\12\256t#\26\267\2021\364\372\354\267\377\376\340Y\377\376\335K\377" "\370\320@\377\352\272=\377\362\326\214\377\356\332\260\377\265\177.\336" "\216\377\377\377\0\12\263z\"\245\346\313\213\373\376\350\207\377\376" "\335K\377\374\331G\377\356\2764\377\340\244&\377\356\301N\377\366\351" "\305\377\267\177.\350\215\377\377\377\0\13\255s\"5\300\221G\367\375\357" "\264\377\376\336O\377\376\335K\377\366\313;\377\342\254*\377\346\264" "8\377\364\335\231\377\342\307\227\372\263{%\227\214\377\377\377\0\14" "\377\0\0\1\263|#\324\361\336\245\377\376\345s\377\376\335K\377\372\324" "C\377\351\270/\377\340\247+\377\360\311a\377\366\351\306\377\267\201" "2\363\252q\34\22\214\377\377\377\0\3\261x\37b\317\251d\367\377\356\245" "\377\202\376\335K\377\6\363\3067\377\341\247&\377\351\271@\377\367\344" "\256\377\321\257s\367\261x!l\214\377\377\377\0\14\252w\"\17\267\200." "\361\370\351\266\377\376\341`\377\376\335K\377\370\320\77\377\346\262" "+\377\341\2542\377\360\320w\377\360\337\271\377\264|(\333\252U\0\3\214" "\377\377\377\0\13\262z\"\225\337\303\203\372\376\352\221\377\376\335" "K\377\374\330F\377\360\3013\377\337\244&\377\354\301L\377\370\351\301" "\377\301\224P\370\261s!>\214\377\377\377\0\13\256v\37)\275\214\77\370" "\374\356\270\377\376\337S\377\376\335K\377\365\313:\377\344\254)\377" "\344\2609\377\362\330\216\377\345\316\240\374\263z%\261\215\377\377\377" "\0\13SE*\306\225\210_\376\376\351\210\377\376\335K\377\372\323B\377\354" "\272.\377\336\247.\377\356\307]\377\367\351\307\377\270\2036\367\255" "v$\34\215\377\377\377\0\12""9;8\372\77A<\377ihV\377\362\335\205\377\362" "\307=\377\344\253$\377\345\264@\377\365\341\246\377\327\266}\370\262" "w\"~\216\377\377\377\0\12BED\364\266\267\265\377^\\X\377=>6\377\256\242" "~\377\353\306i\377\361\323z\377\362\343\277\377\264|+\351\266m$\7\216" "\377\377\377\0\11:@>\362\303\305\303\377\207\206\177\377B@7\377870\377" "<>9\377\247\241\213\377\277\221L\367\261v!N\217\377\377\377\0\2""497" "\362\235\234\230\377\203JF:\377\3::4\377)--\377kQ(\247\220\377\377\377" "\0\10.20\361daY\377JF:\377@\77""6\377/2/\363,/.\352:7-z333\5\217\377" "\377\377\0\7\261v\37A\306\235'\376\224l'\377-0/\364,/.\330*,,V\0UU\3" "\221\377\377\377\0\4\310\230%\333\377\3420\377\277\223&\371+..B\224\377" "\377\377\0\3\267\201\"\265\323\246'\365\260y!M\300\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_info) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_info[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_info[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1205) */ "\0\0\4\315" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\267\377\377\377\0\12\0\0\200\2He\216YGd\215\222Gd\220\315He\217\365" "If\220\366Hf\220\317Gd\216\226Gc\216\\3f\231\5\215\377\377\377\0\14H" "h\216.Hf\221\331Xt\235\366g\204\253\374q\217\267\377{\232\301\377|\232" "\301\377r\217\266\377g\205\254\375Zv\236\366Jg\222\337Vp\2277\212\377" "\377\377\0\20\0\0\0\1Kg\220\203Ok\224\366m\214\262\375}\234\304\377r" "\224\277\377l\217\275\377f\213\272\377e\213\272\377k\217\275\377r\224" "\277\377|\234\304\377o\215\265\376Ql\224\366Wq\231\216\200\200\300\4" "\210\377\377\377\0\5C_\214}Xu\235\366{\231\301\377t\225\301\377c\210" "\271\377\206a\207\270\377\5c\210\271\377r\224\300\377|\233\301\377Zv" "\237\366Vp\227\214\207\377\377\377\0\4>\\\206)Mi\222\366{\231\300\377" "k\217\275\377\212a\207\270\377\4i\216\274\377{\232\302\377Qm\225\366" "v\210\252>\205\377\377\377\0\4\0\0\200\2Ed\216\326m\212\261\375u\226" "\301\377\204a\207\270\377\4g\213\273\377\317\330\343\377\326\336\345" "\377o\221\276\377\204a\207\270\377\4r\224\300\377o\215\264\375Ro\226" "\336\273\322\322\13\204\377\377\377\0\4""3T\202KWs\234\366}\234\304\377" "c\211\271\377\204a\207\270\377\4\207\243\307\377\352\354\354\377\355" "\356\356\377\232\261\317\377\204a\207\270\377\4b\210\270\377|\234\304" "\377Zw\236\366Pl\224]\204\377\377\377\0\3;\\\207\203d\202\252\373r\225" "\300\377\206a\207\270\377\3\235\263\320\377\246\272\324\377d\211\271" "\377\205a\207\270\377\3q\223\277\377g\205\255\375Pl\223\226\204\377\377" "\377\0\3>\\\212\300o\216\265\377l\220\275\377\204a\207\270\377\4\201" "\237\305\377\314\326\341\377\324\334\345\377\200\236\304\377\206a\207" "\270\377\3j\216\274\377r\220\270\377Pl\225\320\204\377\377\377\0\14A" "`\213\354o\220\272\377Jv\256\377>l\250\3777g\245\377:j\247\377Lw\257" "\377r\223\276\377\327\336\346\377\356\357\357\377\345\350\353\377n\221" "\275\377\205a\207\270\377\3_\205\267\377k\216\271\377\"Dx\363\204\377" "\377\377\0\3\37Bw\352Sz\254\377:j\247\377\2054e\244\377\14Jv\255\377" "\341\346\350\377\343\347\352\377q\223\277\377`\206\270\377Z\202\265\377" "R|\262\377Iu\256\377@n\251\3778h\245\377W~\257\377\30s" "\316Ag\233\375Mx\257\377\2034e\244\377\6{\231\300\377\354\354\353\377" "\340\344\346\377\337\343\346\377\354\354\354\377\220\250\310\377\203" "4e\244\377\4Iu\256\377El\236\375\30>r\325\0UU\3\205\377\377\377\0\4\26" ":m#\32\77s\364T{\256\377Ao\252\377\2034e\244\377\1Ao\251\377\202Kv\255" "\377\1Dq\251\377\2034e\244\377\4>m\251\377U}\260\377\35Au\364\31""8p" ")\207\377\377\377\0\5\31;rp%K\177\363U|\257\377Lw\257\3776f\245\377\206" "4e\244\377\5""5f\244\377Iu\256\377V~\257\377)M\202\364\31=ry\210\377" "\377\377\0\20\0\0\0\1\30n%\30>t\321(L\201\362" "r:\204\377\377\377\0\24}}|" "\377\371\371\371\377\351\351\351\377\347\347\347\377\336\336\336\377" "\202\202\202\377SSR\377.Ks\377Zk\201\377\367\367\367\377\377\377\377" "\377\373\373\373\377\362\362\363\377\353\353\354\377\327\327\330\377" "\205\206\206\377\276\277\300\377\316\317\321\377~\207\225\377:^\222\271" "\204\377\377\377\0\3yyx\377\370\370\370\377\346\346\346\377\202\344\344" "\344\377\5\343\343\343\377\336\336\336\377:_\223\377\214\221\231\377" "\375\375\375\377\202\377\377\377\377\10\367\367\367\377\276\277\277\377" "SVU\377uww\377\323\323\324\377\324\324\325\377\232\235\240\377Lr\244" "\351\204\377\377\377\0\2vvu\377\366\366\366\377\202\370\370\370\377\203" "\367\367\367\377\15""2\\\224\377\254\255\260\377ss{\377\375\375\375\377" "\370\370\370\377\317\320\320\377GJH\377\245\246\246\377\342\342\343\377" "\340\340\341\377FIH\377\245\250\247\377W|\256\375\204\377\377\377\0\2" "xxx\322uut\377\205wwv\377\10""5Y\212\377\220\226\234\377\357\357\360" "\377\363\363\363\377\362\362\363\377\355\355\355\377\257\260\261\377" "\242\243\244\377\202\344\344\345\377\3\324\324\325\377\226\230\232\377" "Kp\244\350\213\377\377\377\0\15%M\204\263cs\207\377\342\342\343\377\355" "\355\356\377\357\357\360\377\356\356\357\377\353\353\354\377\201\203" "\202\377\304\305\306\377\350\350\351\377\300\302\301\377y\202\216\377" ":^\223\270\213\377\377\377\0\4\31;q4\77g\236\376\252\255\256\377\343" "\343\343\377\203\354\354\354\377\6\343\343\343\377\220\222\223\377\321" "\322\322\377\233\235\235\377_\203\263\376\30=q6\214\377\377\377\0\13" "%H\200\221Tt\234\377\254\256\256\377\327\330\327\377\336\337\336\377" "FIH\377\332\333\332\377\300\301\300\377\233\235\235\377k\203\244\377" "-S\207\231\215\377\377\377\0\13\0UU\3&K\201\222Pv\251\376v\203\222\377" "\231\235\237\377\245\247\246\377\224\230\233\377x\202\216\377`\203\263" "\377,Q\205\227\0@\200\4\217\377\377\377\0\7\30\77s53W\215\265Dj\237\347" "Sy\253\375In\240\3508\\\220\266\26\77t9\265\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_insert_separator) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_insert_separator[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_insert_separator[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1436) */ "\0\0\5\264" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\1\215\215\215\331\213\212\212\212\377\2\220\220\220" "\332\210\210\210\36\212\377\377\377\0\1\212\212\212\377\213\377\377\377" "\377\3\252\252\252\377\237\237\237\363\214\214\214>\211\377\377\377\0" "\20\212\212\212\377\377\377\377\377\335\335\335\377\340\340\340\377\343" "\343\343\377\345\345\345\377\350\350\350\377\353\353\353\377\356\356" "\356\377\360\360\360\377\363\363\363\377\366\366\366\377\257\257\257" "\377\372\372\372\377\261\261\261\371\215\215\215k\210\377\377\377\0\22" "\214\214\214\377\377\377\377\377\335\335\335\377\340\340\340\377\343" "\343\343\377\345\345\345\377\350\350\350\377\353\353\353\377\356\356" "\356\377\360\360\360\377\363\363\363\377\366\366\366\377\261\261\261" "\377\377\377\377\377\371\371\371\377\306\306\306\373\217\217\217\242" "\231\231\231\5\206\377\377\377\0\4\216\216\216\377\377\377\377\377\335" "\335\335\377wxx\377\203ijj\377\2\333\333\333\377yzz\377\203ijj\377\1" "\246\246\246\377\202\247\247\247\377\3\246\246\246\377\241\241\241\376" "\217\217\217\315\206\377\377\377\0\15\220\220\220\377\377\377\377\377" "\335\335\335\377\340\340\340\377\343\343\343\377\345\345\345\377\350" "\350\350\377\353\353\353\377\356\356\356\377\360\360\360\377\363\363" "\363\377\366\366\366\377\370\370\370\377\202\372\372\372\377\3\373\373" "\373\377\377\377\377\377\212\212\212\377\206\377\377\377\0\22\221\221" "\221\377\377\377\377\377\335\335\335\377{||\377ijj\377\321\322\322\377" "|}}\377ijj\377\331\332\332\377~\177\177\377ijj\377\337\340\340\377\177" "\200\200\377ijj\377\343\344\344\377\366\367\365\377\332\344\321\377\212" "\212\212\377\206\377\377\377\0\22\223\223\223\377\377\377\377\377\335" "\335\335\377\340\340\340\377\343\343\343\377\345\345\345\377\350\350" "\350\377\353\353\353\377\356\356\356\377\360\360\360\377\363\363\363" "\377\366\366\366\377\370\370\370\377\372\372\372\377\356\362\353\377" "c\220<\377\240\273\211\377\212\212\212\377\206\377\377\377\0\4\225\225" "\225\377\377\377\377\377\335\335\335\377wxx\377\202ijj\377\2\330\330" "\330\377yzz\377\202ijj\377\10\342\342\342\377z{{\377\341\342\342\377" "\345\353\337\377[\2121\377b\221:\377\232\267\201\377\204\210\201\377" "\2020p\0\20\204\377\377\377\0\24\226\226\226\377\377\377\377\377\335" "\335\335\377\340\340\340\377\343\343\343\377\345\345\345\377\350\350" "\350\377\353\353\353\377\356\356\356\377\360\360\360\377\363\363\363" "\377\366\366\366\377\325\340\315\377U\205*\377\250\306\206\377\224\270" "j\377[\2132\377Y\2100\377V\206*\3715o\4\377\204\377\377\377\0\24\230" "\230\230\377\377\377\377\377\335\335\335\377\340\340\340\377\343\343" "\343\377\345\345\345\377\350\350\350\377\353\353\353\377\356\356\356" "\377\360\360\360\377\363\363\363\377\304\323\267\377S\204(\377\252\311" "\210\377\275\331\232\377\301\334\234\377\304\336\237\377\310\341\242" "\377\306\341\232\3775o\4\377\204\377\377\377\0\3\232\232\232\377\377" "\377\377\377\335\335\335\377\207\0\0\0\377\12\5\13\0\3775m\5\377p\241" "=\377\212\272O\377\220\277T\377\227\304Y\377\235\311_\377\243\315c\377" "\247\320d\3775o\4\377\204\377\377\377\0\24\233\233\233\377\377\377\377" "\377\335\335\335\377\340\340\340\377\343\343\343\377\345\345\345\377" "\350\350\350\377\353\353\353\377\356\356\356\377\360\360\360\377\363" "\363\363\377\304\323\267\377@w\21\377U\222\20\377l\252\34\377t\260\"" "\377|\266(\377\204\274.\377\214\3024\3775o\4\377\204\377\377\377\0\24" "\235\235\235\377\377\377\377\377\335\335\335\377\340\340\340\377\343" "\343\343\377\345\345\345\377\350\350\350\377\353\353\353\377\356\356" "\356\377\360\360\360\377\363\363\363\377\366\366\366\377\325\340\315" "\377F{\30\377V\221\25\377X\222\26\377@x\17\377t\204\27;q\375\202\27;p\377\1TY[\377\213UWS\377" "\3X]^\377\30e\221\377UWS\377\203\376\376\376\377\4\372\372\372\377" "\361\361\361\377\350\350\350\377\336\336\336\377\202\327\327\327\377" "\6\326\326\326\377\323\323\323\377ac_\377Cn\244\377\31>s\361\27:n,\204" "\377\377\377\0\5\27;p\377\215\251\316\377Es\257\3775\\\210\377UWS\377" "\202\376\376\376\377\15\370\370\370\377\353\353\353\377\336\336\336\377" "\321\321\321\377\\`^\377\\bc\377\\`^\377\306\306\306\377\324\324\324" "\377gie\377Hr\246\377b\202\260\376\31=r\357\204\377\377\377\0\24\27;" "p\377\217\253\317\377Hv\261\3774Z\203\377UWS\377\376\376\376\377\372" "\372\372\377\355\355\355\377\337\337\337\377\322\322\322\377\306\306" "\306\377\\bc\377X\204\274\377\\bc\377\306\306\306\377\324\324\324\377" "moj\377:g\235\377\215\252\316\377\27;p\377\204\377\377\377\0\11\27;p" "\377\221\255\320\377Ky\263\3774V}\377UWS\377\374\374\374\377\356\356" "\356\377\341\341\341\377\324\324\324\377\202\306\306\306\377\11\\bc\377" "X\204\274\377\\bc\377\306\306\306\377\323\323\323\377sup\3779d\230\377" "\217\254\320\377\27;p\377\204\377\377\377\0\11\27;p\377\223\257\322\377" "N{\265\3773Vz\377UWS\377\365\365\365\377\342\342\342\377\325\325\325" "\377\310\310\310\377\202\306\306\306\377\11\\bc\377X\204\274\377\\bc" "\377\306\306\306\377\323\323\323\377y{v\3779c\224\377\221\255\321\377" "\27;p\377\204\377\377\377\0\10\27;p\377\225\260\323\377Q~\267\3773Vz" "\377UWS\377\354\354\354\377\330\330\330\377\312\312\312\377\203\306\306" "\306\377\11\\`^\377\\bc\377\\`^\377\307\307\307\377\322\322\322\377~" "\201|\3778`\221\377\223\257\322\377\27;p\377\204\377\377\377\0\7\27;" "p\377\227\262\324\377T\200\271\3776Y\177\377W^a\377\263\264\262\377\333" "\333\333\377\202\331\331\331\377\13\330\330\330\377\327\327\327\377\326" "\326\326\377\325\325\325\377\324\324\324\377\322\322\322\377\262\262" "\260\377{\203\206\377:b\217\377\225\260\324\377\27;p\377\204\377\377" "\377\0\6\27;p\377\230\263\325\377V\202\273\377Ir\242\377=Yv\377V]`\377" "\205UWS\377\11\\^Z\377egc\377nql\377xzu\377w\177\202\377Ig\207\377Ku" "\247\377\226\262\325\377\27;p\377\204\377\377\377\0\11\27;p\377\231\263" "\326\377X\204\274\377\\\207\277\377_\212\301\377b\214\303\377d\216\304" "\377f\220\306\377h\222\307\377\203i\223\310\377\10h\222\307\377f\220" "\306\377d\216\304\377b\214\303\377_\212\301\377\\\207\277\377\230\263" "\325\377\27;p\377\204\377\377\377\0\24\27;p\377\232\265\326\377Z\206" "\276\377^\211\300\377a\214\302\377d\217\304\377g\221\306\377j\223\310" "\377l\225\311\377m\226\312\377m\227\313\377m\226\312\377l\225\311\377" "j\223\310\377g\221\306\377d\217\304\377a\214\302\377^\211\300\377\231" "\264\327\377\27;p\377\204\377\377\377\0\4\27;p\377\233\265\327\377\\" "\207\277\377\277\316\340\377\214\355\357\357\377\4\300\317\341\377_\213" "\301\377\233\265\330\377\27;p\377\204\377\377\377\0\3\27;p\377\234\266" "\330\377]\210\300\377\202\355\357\357\377\212\226\225\227\377\202\355" "\357\357\377\3a\214\302\377\233\266\330\377\27;p\377\204\377\377\377" "\0\3\27;p\377\235\267\330\377^\211\300\377\216\355\357\357\377\3b\215" "\303\377\234\266\330\377\27;p\377\204\377\377\377\0\3\27;p\377\235\267" "\330\377^\211\300\377\202\355\357\357\377\212\226\225\227\377\202\355" "\357\357\377\3b\215\303\377\234\266\330\377\27;p\377\204\377\377\377" "\0\3\27;p\377\235\267\330\377^\211\300\377\216\355\357\357\377\3b\215" "\303\377\235\267\330\377\27;p\377\204\377\377\377\0\3\27;p\377\235\267" "\330\377]\211\300\377\202\355\357\357\377\212\226\225\227\377\202\355" "\357\357\377\3a\214\302\377\234\267\330\377\27;p\377\204\377\377\377" "\0\4\27;p\377\235\267\330\377\\\210\277\377\277\316\340\377\214\355\357" "\357\377\4\301\317\341\377`\213\302\377\233\266\330\377\27;p\377\204" "\377\377\377\0\11\30t\223\30" ">>>@@@\366AAAj@@@" "\4AAA\325AAA\260\202\0\0\0\0\2AAA\340BBB\236\202\0\0\0\0\6BBB\227AAA" "\363>>>\35@@@\277BBB\326UUU\6\202\0\0\0\0\1CCC9\203\0\0\0\0\12AAA\241" "AAA\347BBB|@@@wAAA\311AAA\353@@@\34\0\0\0\0AAA\340\77\77\77\221\202\0" "\0\0\0\5AAAbAAA\377CCCH@@@\333AAA\242\206\0\0\0\0\3;;;\15@@@\337AAA\333" "\203AAA\321\5@@@\363@@@\214\0\0\0\0AAA\340\77\77\77\221\202\0\0\0\0\5" "BBB\214AAA\366<<<\"AAA\315AAA\275\206\0\0\0\0\3AAAzAAA\363@@@0\203\0" "\0\0\0\20AAA\271BBB\316\200\200\200\2AAA\340AAA\274@@@DAAAzBBB\325\77" "\77\77\275\0\0\0\0AAA\226BBB\360BBB\227AAAGAAA~@@@\264\202\0\0\0\0\2" "BBB\315AAA\277\204\0\0\0\0\24CCCoAAA\375@@@[AAA\324AAA\314AAA\346AAA" "\345AAA\267DDD\"\0\0\0\0III\7AAA\222AAA\324AAA\350AAA\327AAA\221\0\0" "\0\0\0\0\0\1@@@0EEE\32\204\0\0\0\0\3""333\5@@@0N::\33\202\0\0\0\0\3U" "UU\6""999\11\252\0\0\3\205\0\0\0\0\1@@@\10\204\0\0\0\0\12\271\13\13m" "\271\13\13\13\271\13\13\3\271\13\13\226\271\13\13\252\271\13\13\17\0" "\0\0\0\271\13\13^\271\13\13\354\271\13\13B\202\0\0\0\0\12\270\13\13w" "\271\13\13\341\265\13\13\30\0\0\0\0\272\13\13C\271\12\12\334\271\14\14" "\200\0\0\0\0\270\14\14A\270\13\13\237\202\0\0\0\0\1\271\13\13\243\202" "\271\13\13\226\23\271\13\13\267\271\13\13\231\271\13\13\265\271\13\13" "`\271\13\13\347\271\13\13e\271\13\13\353\270\13\13Q\271\14\14o\271\13" "\13\336\271\13\13\216\271\13\13\314\271\12\12L\271\13\13\350\271\12\12" "M\271\13\13\324\270\12\12h\271\13\13\313\270\13\13a\202\0\0\0\0\26\271" "\13\13\23\271\13\13\306\271\13\13\272\271\13\13\17\271\13\13\4\271\13" "\13\235\271\13\13\330\271\13\13""6\0\0\0\0\271\13\13@\271\13\13\315\271" "\13\13\304\272\16\16%\0\0\0\0\271\13\13\234\271\13\13\313\271\12\12P" "\0\0\0\0\267\15\15'\271\13\13\327\271\13\13\241\377\0\0\1\311\0\0\0\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_strikethrough) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_strikethrough[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_strikethrough[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1710) */ "\0\0\6\306" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\26\263\265\257\257\254\257\250\377\250\253\245\377" "\244\247\241\377\240\243\235\377\234\237\231\377\230\233\225\377\224" "\227\221\377\220\222\214\377\213\216\210\377\207\211\204\377\203\205" "\200\377~\201{\377z|w\377vxs\377qto\377moj\377hkf\377dfb\377`b^\377[" "]Y\377`b]\257\202\377\377\377\0\2\263\266\257\377\372\372\372\377\204" "\375\375\375\377\204\374\374\374\377\203\373\373\373\377\203\372\372" "\372\377\203\371\371\371\377\3\370\370\370\377\365\365\365\377Y[W\377" "\202\377\377\377\0\3\267\272\263\377\376\376\376\377\356\356\356\377" "\205\357\357\357\377\4\356\356\356\377\355\355\355\377\354\354\354\377" "\353\353\353\377\202\351\351\351\377\10\347\347\347\377\346\346\346\377" "\344\344\344\377\342\342\342\377\340\340\340\377\336\336\336\377\371" "\371\371\377Z\\X\377\202\377\377\377\0\3\265\270\261\377\376\376\376" "\377\356\356\356\377\202\360\360\360\377\202\361\361\361\377\17\360\360" "\360\377\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353" "\377\351\351\351\377\350\350\350\377\346\346\346\377\344\344\344\377" "\342\342\342\377\341\341\341\377\337\337\337\377\335\335\335\377\371" "\371\371\377\\^Z\377\202\377\377\377\0\6\261\264\255\377\376\376\376" "\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363\377" "\202\362\362\362\377\2\361\361\361\377\273\273\273\377\202[\\\\\377\12" "\267\267\267\377\350\350\350\377\347\347\347\377\345\345\345\377\343" "\343\343\377\341\341\341\377\337\337\337\377\335\335\335\377\371\371" "\371\377]_[\377\202\377\377\377\0\26\254\257\250\377\375\375\375\377" "\362\362\362\377\363\363\363\377\364\364\364\377\365\365\365\377\364" "\364\364\377\363\363\363\377\362\362\362\377\203\204\204\377dee\377_" "``\377\202\203\203\377\351\351\351\377\347\347\347\377\345\345\345\377" "\343\343\343\377\341\341\341\377\337\337\337\377\335\335\335\377\371" "\371\371\377^`\\\377\202\377\377\377\0\26\247\252\244\377\375\375\375" "\377\363\363\363\377\365\365\365\377\366\366\366\377\367\367\367\377" "\366\366\366\377\365\365\365\377\342\342\342\377\\]]\377\227\227\227" "\377\211\212\212\377\\]]\377\331\331\331\377\347\347\347\377\345\345" "\345\377\343\343\343\377\341\341\341\377\337\337\337\377\335\335\335" "\377\371\371\371\377_a]\377\202\377\377\377\0\26\243\245\237\377\375" "\375\375\377\364\364\364\377\366\366\366\377\370\370\370\377\371\371" "\371\377\367\367\367\377\365\365\365\377\253\254\254\377[\\\\\377\316" "\317\317\377\276\277\277\377[\\\\\377\246\246\246\377\347\347\347\377" "\345\345\345\377\343\343\343\377\341\341\341\377\337\337\337\377\335" "\335\335\377\371\371\371\377_a]\377\202\377\377\377\0\4\236\241\232\377" "\374\374\374\377\364\364\364\377\366\366\366\377\202\370\370\370\377" "\20\366\366\366\377\365\365\365\377rss\377pqq\377\357\357\357\377\350" "\351\351\377eff\377qrr\377\347\347\347\377\345\345\345\377\343\343\343" "\377\341\341\341\377\337\337\337\377\335\335\335\377\371\371\371\377" "`b]\377\202\377\377\377\0\5\231\234\226\377\374\374\374\377\364\364\364" "\377\365\365\365\377\366\366\366\377\214[\\\\\377\5\340\340\340\377\336" "\336\336\377\334\334\334\377\371\371\371\377_b]\377\202\377\377\377\0" "\26\224\227\221\377\374\374\374\377\362\362\362\377\363\363\363\377\364" "\364\364\377\357\357\357\377\356\356\356\377\227\227\227\377\\]]\377" "\331\331\331\377\351\351\351\377\347\347\347\377\304\304\304\377[\\\\" "\377\224\224\224\377\340\340\340\377\336\336\336\377\340\340\340\377" "\336\336\336\377\334\334\334\377\371\371\371\377_a]\377\202\377\377\377" "\0\3\220\222\214\377\373\373\373\377\361\361\361\377\203\362\362\362" "\377\20\354\355\355\377eff\377yzz\377\340\340\340\377\337\337\337\377" "\335\335\335\377\332\332\332\377ijj\377eff\377\340\340\340\377\341\341" "\341\377\337\337\337\377\335\335\335\377\333\333\333\377\370\370\370" "\377_a\\\377\202\377\377\377\0\3\213\215\210\377\373\373\373\377\357" "\357\357\377\203\360\360\360\377\1\275\275\275\377\210[\\\\\377\7\266" "\267\267\377\340\340\340\377\336\336\336\377\334\334\334\377\332\332" "\332\377\370\370\370\377^`\\\377\202\377\377\377\0\3\206\210\203\377" "\373\373\373\377\355\355\355\377\203\356\356\356\377\20\206\206\206\377" "___\377\264\264\264\377\264\265\265\377\263\264\264\377\262\263\263\377" "\261\262\262\377\253\253\253\377[\\\\\377\204\205\205\377\337\337\337" "\377\335\335\335\377\333\333\333\377\331\331\331\377\370\370\370\377" "]_[\377\202\377\377\377\0\3\201\204~\377\372\372\372\377\353\353\353" "\377\202\354\354\354\377\21\337\337\337\377]^^\377\210\211\211\377\351" "\351\351\377\350\350\350\377\347\347\347\377\346\346\346\377\344\344" "\344\377\343\343\343\377yzz\377]^^\377\323\324\324\377\334\334\334\377" "\332\332\332\377\330\330\330\377\370\370\370\377\\^Y\377\202\377\377" "\377\0\3|\177z\377\372\372\372\377\351\351\351\377\202\352\352\352\377" "\21\250\251\251\377[\\\\\377\272\272\272\377\347\347\347\377\346\346" "\346\377\345\345\345\377\344\344\344\377\343\343\343\377\341\341\341" "\377\251\251\251\377[\\\\\377\244\245\245\377\333\333\333\377\331\331" "\331\377\327\327\327\377\370\370\370\377Z\\X\377\202\377\377\377\0\3" "xzu\377\371\371\371\377\347\347\347\377\202\350\350\350\377\21stt\377" "cdd\377\342\342\342\377\346\346\346\377\345\345\345\377\343\343\343\377" "\342\342\342\377\341\341\341\377\340\340\340\377\323\324\324\377]^^\377" "tuu\377\331\331\331\377\330\330\330\377\326\326\326\377\370\370\370\377" "XZV\377\202\377\377\377\0\2sup\377\371\371\371\377\205\345\345\345\377" "\202\344\344\344\377\15\343\343\343\377\342\342\342\377\341\341\341\377" "\337\337\337\377\336\336\336\377\335\335\335\377\333\333\333\377\331" "\331\331\377\330\330\330\377\326\326\326\377\325\325\325\377\370\370" "\370\377WYU\377\202\377\377\377\0\2npl\377\371\371\371\377\205\343\343" "\343\377\202\342\342\342\377\15\341\341\341\377\340\340\340\377\337\337" "\337\377\335\335\335\377\334\334\334\377\333\333\333\377\331\331\331" "\377\330\330\330\377\326\326\326\377\325\325\325\377\323\323\323\377" "\370\370\370\377UWS\377\202\377\377\377\0\2ikg\377\366\366\366\377\222" "\370\370\370\377\2\364\364\364\377UWS\377\202\377\377\377\0\5loj\257" "fhc\377gid\377gje\377hje\377\203hjf\377\13hje\377gie\377fhd\377egc\377" "dfa\377bd`\377`b^\377^`\\\377\\^Z\377Z\\X\377XZV\377\202UWS\377\1]_\\" "\257\261\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_editor_underline) #endif #ifdef __GNUC__ const guint8 osmo_stock_editor_underline[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_editor_underline[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1734) */ "\0\0\6\336" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\26\263\265\257\257\254\257\250\377\250\253\245\377" "\244\247\241\377\240\243\235\377\234\237\231\377\230\233\225\377\224" "\227\221\377\220\222\214\377\213\216\210\377\207\211\204\377\203\205" "\200\377~\201{\377z|w\377vxs\377qto\377moj\377hkf\377dfb\377`b^\377[" "]Y\377`b]\257\202\377\377\377\0\2\263\266\257\377\372\372\372\377\204" "\375\375\375\377\204\374\374\374\377\203\373\373\373\377\203\372\372" "\372\377\203\371\371\371\377\3\370\370\370\377\365\365\365\377Y[W\377" "\202\377\377\377\0\3\267\272\263\377\376\376\376\377\356\356\356\377" "\205\357\357\357\377\4\356\356\356\377\355\355\355\377\354\354\354\377" "\353\353\353\377\202\351\351\351\377\10\347\347\347\377\346\346\346\377" "\344\344\344\377\342\342\342\377\340\340\340\377\336\336\336\377\371" "\371\371\377Z\\X\377\202\377\377\377\0\3\265\270\261\377\376\376\376" "\377\356\356\356\377\202\360\360\360\377\202\361\361\361\377\17\360\360" "\360\377\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353" "\377\351\351\351\377\350\350\350\377\346\346\346\377\344\344\344\377" "\342\342\342\377\341\341\341\377\337\337\337\377\335\335\335\377\371" "\371\371\377\\^Z\377\202\377\377\377\0\6\261\264\255\377\376\376\376" "\377\360\360\360\377\361\361\361\377\362\362\362\377\363\363\363\377" "\202\362\362\362\377\2\361\361\361\377\303\303\303\377\202mnn\377\12" "\276\276\276\377\350\350\350\377\347\347\347\377\345\345\345\377\343" "\343\343\377\341\341\341\377\337\337\337\377\335\335\335\377\371\371" "\371\377]_[\377\202\377\377\377\0\26\254\257\250\377\375\375\375\377" "\362\362\362\377\363\363\363\377\364\364\364\377\365\365\365\377\364" "\364\364\377\363\363\363\377\362\362\362\377\205\206\206\377dee\377_" "``\377\203\203\203\377\351\351\351\377\347\347\347\377\345\345\345\377" "\343\343\343\377\341\341\341\377\337\337\337\377\335\335\335\377\371" "\371\371\377^`\\\377\202\377\377\377\0\26\247\252\244\377\375\375\375" "\377\363\363\363\377\365\365\365\377\366\366\366\377\367\367\367\377" "\366\366\366\377\365\365\365\377\340\341\341\377\\]]\377\231\232\232" "\377\213\214\214\377\\]]\377\327\330\330\377\347\347\347\377\345\345" "\345\377\343\343\343\377\341\341\341\377\337\337\337\377\335\335\335" "\377\371\371\371\377_a]\377\202\377\377\377\0\26\243\245\237\377\375" "\375\375\377\364\364\364\377\366\366\366\377\370\370\370\377\371\371" "\371\377\367\367\367\377\365\365\365\377\244\245\245\377[\\\\\377\324" "\325\325\377\304\305\305\377[\\\\\377\240\240\240\377\347\347\347\377" "\345\345\345\377\343\343\343\377\341\341\341\377\337\337\337\377\335" "\335\335\377\371\371\371\377_a]\377\202\377\377\377\0\4\236\241\232\377" "\374\374\374\377\364\364\364\377\366\366\366\377\202\370\370\370\377" "\10\366\366\366\377\362\362\362\377jkk\377z{{\377\357\357\357\377\354" "\354\354\377lmm\377jkk\377\202\345\345\345\377\6\343\343\343\377\341" "\341\341\377\337\337\337\377\335\335\335\377\371\371\371\377`b]\377\202" "\377\377\377\0\4\231\234\226\377\374\374\374\377\364\364\364\377\365" "\365\365\377\202\366\366\366\377\20\365\365\365\377\304\304\304\377[" "\\\\\377\265\265\265\377\356\356\356\377\354\354\354\377\242\243\243" "\377[\\\\\377\274\274\274\377\344\344\344\377\342\342\342\377\340\340" "\340\377\336\336\336\377\334\334\334\377\371\371\371\377_b]\377\202\377" "\377\377\0\4\224\227\221\377\374\374\374\377\362\362\362\377\363\363" "\363\377\202\364\364\364\377\20\363\363\363\377\205\206\206\377abb\377" "\350\350\350\377\355\355\355\377\353\353\353\377\327\330\330\377\\]]" "\377\204\205\205\377\344\344\344\377\342\342\342\377\340\340\340\377" "\336\336\336\377\334\334\334\377\371\371\371\377_a]\377\202\377\377\377" "\0\3\220\222\214\377\373\373\373\377\361\361\361\377\203\362\362\362" "\377\3\337\337\337\377\\]]\377qrr\377\202\244\244\244\377\13\243\243" "\243\377\242\242\242\377ggg\377]^^\377\323\323\323\377\341\341\341\377" "\337\337\337\377\335\335\335\377\333\333\333\377\370\370\370\377_a\\" "\377\202\377\377\377\0\3\213\215\210\377\373\373\373\377\357\357\357" "\377\203\360\360\360\377\4\243\243\243\377[\\\\\377lmm\377mnn\377\203" "lmm\377\11ijj\377[\\\\\377\236\237\237\377\340\340\340\377\336\336\336" "\377\334\334\334\377\332\332\332\377\370\370\370\377^`\\\377\202\377" "\377\377\0\3\206\210\203\377\373\373\373\377\355\355\355\377\202\356" "\356\356\377\21\353\353\353\377jkk\377rss\377\353\353\353\377\352\352" "\352\377\351\351\351\377\347\347\347\377\346\346\346\377\341\341\341" "\377fgg\377kll\377\336\336\336\377\335\335\335\377\333\333\333\377\331" "\331\331\377\370\370\370\377]_[\377\202\377\377\377\0\3\201\204~\377" "\372\372\372\377\353\353\353\377\202\354\354\354\377\21\277\277\277\377" "[\\\\\377\250\251\251\377\351\351\351\377\350\350\350\377\347\347\347" "\377\346\346\346\377\344\344\344\377\343\343\343\377\227\230\230\377" "[\\\\\377\270\271\271\377\334\334\334\377\332\332\332\377\330\330\330" "\377\370\370\370\377\\^Y\377\202\377\377\377\0\3|\177z\377\372\372\372" "\377\351\351\351\377\202\352\352\352\377\21\204\205\205\377]^^\377\332" "\332\332\377\347\347\347\377\346\346\346\377\345\345\345\377\344\344" "\344\377\343\343\343\377\341\341\341\377\311\311\311\377[\\\\\377\203" "\203\203\377\333\333\333\377\331\331\331\377\327\327\327\377\370\370" "\370\377Z\\X\377\202\377\377\377\0\3xzu\377\371\371\371\377\347\347\347" "\377\202\350\350\350\377\2\306\306\306\377\311\311\311\377\202\346\346" "\346\377\15\345\345\345\377\343\343\343\377\342\342\342\377\341\341\341" "\377\340\340\340\377\336\336\336\377\277\277\277\377\274\275\275\377" "\331\331\331\377\330\330\330\377\326\326\326\377\370\370\370\377XZV\377" "\202\377\377\377\0\2sup\377\371\371\371\377\203\345\345\345\377\214c" "dd\377\5\330\330\330\377\326\326\326\377\325\325\325\377\370\370\370" "\377WYU\377\202\377\377\377\0\2npl\377\371\371\371\377\205\343\343\343" "\377\202\342\342\342\377\15\341\341\341\377\340\340\340\377\337\337\337" "\377\335\335\335\377\334\334\334\377\333\333\333\377\331\331\331\377" "\330\330\330\377\326\326\326\377\325\325\325\377\323\323\323\377\370" "\370\370\377UWS\377\202\377\377\377\0\2ikg\377\366\366\366\377\222\370" "\370\370\377\2\364\364\364\377UWS\377\202\377\377\377\0\5loj\257fhc\377" "gid\377gje\377hje\377\203hjf\377\13hje\377gie\377fhd\377egc\377dfa\377" "bd`\377`b^\377^`\\\377\\^Z\377Z\\X\377XZV\377\202UWS\377\1]_\\\257\261" "\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_notes_add) #endif #ifdef __GNUC__ const guint8 osmo_stock_notes_add[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_notes_add[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1645) */ "\0\0\6\205" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\3\243\243\243\240\237\237\237\377\240\240\240\377" "\202\241\241\241\377\16\240\240\240\377\237\237\237\377\235\235\235\377" "\234\234\234\377\233\233\233\377\231\231\231\377\230\230\230\377\227" "\227\227\377\226\226\226\377\224\224\224\377\223\223\223\377\222\222" "\222\377\220\220\220\377\223\223\223\240\205\377\377\377\0\2\236\236" "\236\377\373\373\373\377\203\376\376\376\377\203\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\3\371\371\371" "\377\367\367\367\377\217\217\217\377\205\377\377\377\0\4\236\236\236" "\377\376\376\376\377\356\356\356\377\357\357\357\377\202\360\360\360" "\377\15\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353\377" "\352\352\352\377\350\350\350\377\346\346\346\377\344\344\344\377\342" "\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377\217\217" "\217\377\205\377\377\377\0\4\235\235\235\377\376\376\376\377\360\360" "\360\377\361\361\361\377\202\362\362\362\377\15\361\361\361\377\360\360" "\360\377\356\356\356\377\355\355\355\377\353\353\353\377\351\351\351" "\377\347\347\347\377\344\344\344\377\342\342\342\377\340\340\340\377" "\336\336\336\377\371\371\371\377\217\217\217\377\205\377\377\377\0\4" "\235\235\235\377\376\376\376\377\361\361\361\377\363\363\363\377\202" "\364\364\364\377\15\363\363\363\377\361\361\361\377\357\357\357\377\355" "\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\345\345" "\345\377\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371" "\377\217\217\217\377\205\377\377\377\0\23\234\234\234\377\375\375\375" "\377\363\363\363\377\365\365\365\377\366\366\366\377\365\365\365\377" "\361\361\361\377\267\267\270\377\233\233\233\377\223\223\223\377\233" "\233\233\377\271\271\271\377\346\346\346\377\345\345\345\377\343\343" "\343\377\340\340\340\377\336\336\336\377\371\371\371\377\216\216\216" "\377\205\377\377\377\0\7\233\233\233\377\375\375\375\377\364\364\364" "\377\366\366\366\377\370\370\370\377\367\367\367\377\265\265\266\377" "\202\206\206\207\377\12\220\220\221\377\205\205\206\377\204\204\205\377" "\266\266\266\377\345\345\345\377\343\343\343\377\340\340\340\377\336" "\336\336\377\371\371\371\377\216\216\216\377\205\377\377\377\0\6\231" "\231\231\377\375\375\375\377\365\365\365\377\367\367\367\377\371\371" "\371\377\366\366\366\377\202\224\224\225\377\13\323\323\323\377\354\354" "\354\377\315\315\315\377\217\217\220\377\225\225\225\377\345\345\345" "\377\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371\377" "\215\215\215\377\205\377\377\377\0\23\230\230\230\377\374\374\374\377" "\364\364\364\377\366\366\366\377\367\367\367\377\346\346\346\377\211" "\211\212\377\260\260\260\377\360\360\360\377\356\356\356\377\353\353" "\353\377\252\252\252\377\212\212\213\377\340\340\340\377\342\342\342" "\377\340\340\340\377\335\335\335\377\371\371\371\377\215\215\215\377" "\205\377\377\377\0\3\227\227\227\377\374\374\374\377\363\363\363\377" "\202\365\365\365\377\12\330\330\330\377\206\206\207\377\264\264\264\377" "\341\341\341\377\337\337\337\377\335\335\335\377\255\255\255\377\206" "\206\206\377\326\327\326\377U\205+\377\2035o\4\377\2Ev\34\3775o\4\1\204" "\377\377\377\0\6\226\226\226\377\374\374\374\377\362\362\362\377\363" "\363\363\377\362\362\362\377\230\230\232\377\203\205\205\206\377\202" "\204\204\205\377\202\203\203\204\377\7\225\227\223\377=u\16\377\265\322" "\226\377\273\325\235\377\264\321\224\377@w\22\3775o\4\10\204\377\377" "\377\0\6\225\225\225\377\373\373\373\377\360\360\360\377\361\361\361" "\377\355\355\355\377\217\217\217\377\202\205\205\206\377\202\204\204" "\205\377\203\203\203\204\377\7\213\215\213\377By\24\377\266\322\226\377" "\222\274c\377\266\322\226\377G|\32\3775o\4\10\204\377\377\377\0\6\223" "\223\223\377\373\373\373\377\356\356\356\377\357\357\357\377\353\353" "\353\377\216\216\216\377\204\204\204\205\377\12\203\203\203\377\201\202" "\200\377\200\201\177\377\211\214\207\377By\24\377\266\322\226\377\222" "\274c\377\266\322\226\377G|\32\3775o\4\17\2025o\4\10\10""5o\4\1\377\377" "\377\0\222\222\222\377\373\373\373\377\354\354\354\377\355\355\355\377" "\351\351\351\377\216\216\216\377\203\204\204\205\377\12\203\203\204\377" "As\26\377=u\16\377Ay\25\377By\25\377X\212,\377\264\321\224\377\222\274" "c\377\264\321\224\377^\2154\377\202F|\31\374\12\77w\20\3746q\4\333\377" "\377\377\0\221\221\221\377\372\372\372\377\352\352\352\377\353\353\353" "\377\347\347\347\377\215\215\215\377\204\204\205\377\203\203\203\204" "\377\2""5o\4\377\265\322\225\377\202\266\322\226\377\5\264\321\224\377" "\240\305x\377\222\274c\377\240\305x\377\262\320\222\377\202\255\315\212" "\377\11\264\321\224\3775o\4\377\377\377\377\0\220\220\220\377\372\372" "\372\377\350\350\350\377\351\351\351\377\347\347\347\377\234\234\235" "\377\203\216\216\217\377\11\215\215\216\3775o\4\377\250\311\202\377x" "\255>\377|\257D\377v\253<\377l\245-\377b\237\37\377X\231\21\377\203Q" "\225\7\377\7\222\274d\3775o\4\377\377\377\377\0\216\216\216\377\371\371" "\371\377\346\346\346\377\347\347\347\377\202\346\346\346\377\6\345\345" "\345\377\344\344\344\377\343\343\343\377\342\342\342\3775o\4\377\216" "\272^\377\202\212\270X\377\5\210\266U\377h\243(\377Q\225\7\377h\243(" "\377\210\266U\377\202\212\270X\377\5\216\272^\3775o\4\377\377\377\377" "\0\215\215\215\377\371\371\371\377\204\344\344\344\377\6\343\343\343" "\377\342\342\342\377\341\341\341\377\340\340\340\377N\200#\377=u\16\377" "\202Ax\23\377\5U\210(\377\210\266U\377Q\225\7\377\210\266U\377R\205%" "\377\202\77w\20\374\5;t\13\3746q\4\333\377\377\377\0\214\214\214\377" "\371\371\371\377\204\342\342\342\377\16\341\341\341\377\340\340\340\377" "\337\337\337\377\336\336\336\377\334\335\334\377\327\331\325\377\325" "\327\323\377\316\322\314\377@x\23\377\212\270X\377Q\225\7\377\212\270" "X\377@w\22\3775o\4\17\2025o\4\10\4""5o\4\1\377\377\377\0\212\212\212" "\377\366\366\366\377\213\370\370\370\377\7\362\364\360\377Ax\23\377\212" "\270X\377Q\225\7\377\212\270X\377@w\22\3775o\4\10\204\377\377\377\0\1" "\216\216\216\243\214\212\212\212\377\7\207\211\206\377\377" "\314\233=\377\227$\24\375.\21\14\204\0\0\0\20\0\0\0\1\377\377\377\0\223" "\223\223\377\373\373\373\377\356\356\356\377\357\357\357\377\353\353" "\353\377\216\216\216\377\203\204\204\205\377\15\203\203\204\377\202\202" "\203\377yum\377\216vC\377\344\267c\377\374\313p\377\373\273E\377\346" "\256>\377\315\237\77\377\202m=\377\27\22\13q\0\0\0\17\0\0\0\1\202\377" "\377\377\0\25\222\222\222\377\373\373\373\377\354\354\354\377\355\355" "\355\377\351\351\351\377\215\215\215\377\204\204\205\377\204\204\204" "\377\203\203\204\377\202\202\203\377yuo\377\215vC\377\342\266b\377\374" "\313n\377\372\272C\377\344\256\77\377\310\233\77\377\177k>\377ZYV\377" "\0\0\0\16\0\0\0\1\203\377\377\377\0\6\221\221\221\377\372\372\372\377" "\352\352\352\377\353\353\353\377\350\350\350\377\215\215\215\377\202" "\203\203\204\377\14\202\202\203\377yvp\377\215vC\377\341\266a\377\374" "\312l\377\371\271B\377\343\255>\377\303\230\77\377|h=\377\236\235\233" "\377\203\203\203\377\0\0\0\1\204\377\377\377\0\23\220\220\220\377\372" "\372\372\377\350\350\350\377\351\351\351\377\347\347\347\377\234\234" "\234\377\216\216\217\377\214\214\215\377\202\177x\377\215wD\377\337\264" "b\377\374\311i\377\371\271@\377\342\254>\377\275\225@\377yf<\377\216" "\215\213\377\354\354\354\377\211\211\211\377\205\377\377\377\0\4\216" "\216\216\377\371\371\371\377\346\346\346\377\347\347\347\377\202\346" "\346\346\377\15\345\345\345\377\322\321\316\377\220yH\377\335\262a\377" "\375\310g\377\370\267@\377\341\254>\377\270\221@\377wd<\377\224\224\223" "\377\315\315\315\377\367\367\367\377\212\212\212\377\205\377\377\377" "\0\2\215\215\215\377\371\371\371\377\204\344\344\344\377\15\340\340\340" "\377\247\236\212\377\265\224Q\377\375\311i\377\367\267\77\377\341\254" ">\377\263\216@\377sa:\377\230\230\227\377\316\316\316\377\325\325\325" "\377\370\370\370\377\212\212\212\377\205\377\377\377\0\2\214\214\214" "\377\371\371\371\377\204\342\342\342\377\15\327\327\327\377\217zL\377" "\345\265]\377\365\267A\377\341\254>\377\255\212@\377p_:\377\234\233\233" "\377\317\317\317\377\325\325\325\377\323\323\323\377\370\370\370\377" "\212\212\212\377\205\377\377\377\0\2\212\212\212\377\366\366\366\377" "\204\370\370\370\377\10\305\303\274\377shQ\377\351\262D\377\315\236\77" "\377\230}C\377n^;\377\270\267\267\377\357\357\357\377\203\370\370\370" "\377\2\364\364\364\377\212\212\212\377\205\377\377\377\0\1\216\216\216" "\243\204\212\212\212\377\10\207\207\207\377lg[\3776;<\377bX<\377cT3\377" "QMD\377qqq\377\207\207\207\377\205\212\212\212\377\1\215\215\215\243" "\212\377\377\377\0\7\24\24\24\15KH=\360;6*\335\20\20\13`\0\0\0\32\0\0" "\0\13\0\0\0\3\221\377\377\377\0\5\0\0\0\2\0\0\0\30\0\0\0\20\0\0\0\7\0" "\0\0\1\215\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_notes_remove) #endif #ifdef __GNUC__ const guint8 osmo_stock_notes_remove[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_notes_remove[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1444) */ "\0\0\5\274" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\3\243\243\243\240\237\237\237\377\240\240\240\377" "\202\241\241\241\377\16\240\240\240\377\237\237\237\377\235\235\235\377" "\234\234\234\377\233\233\233\377\231\231\231\377\230\230\230\377\227" "\227\227\377\226\226\226\377\224\224\224\377\223\223\223\377\222\222" "\222\377\220\220\220\377\223\223\223\240\205\377\377\377\0\2\236\236" "\236\377\373\373\373\377\203\376\376\376\377\203\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\3\371\371\371" "\377\367\367\367\377\217\217\217\377\205\377\377\377\0\4\236\236\236" "\377\376\376\376\377\356\356\356\377\357\357\357\377\202\360\360\360" "\377\15\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353\377" "\352\352\352\377\350\350\350\377\346\346\346\377\344\344\344\377\342" "\342\342\377\340\340\340\377\335\335\335\377\371\371\371\377\217\217" "\217\377\205\377\377\377\0\4\235\235\235\377\376\376\376\377\360\360" "\360\377\361\361\361\377\202\362\362\362\377\15\361\361\361\377\360\360" "\360\377\356\356\356\377\355\355\355\377\353\353\353\377\351\351\351" "\377\347\347\347\377\344\344\344\377\342\342\342\377\340\340\340\377" "\336\336\336\377\371\371\371\377\217\217\217\377\205\377\377\377\0\4" "\235\235\235\377\376\376\376\377\361\361\361\377\363\363\363\377\202" "\364\364\364\377\15\363\363\363\377\361\361\361\377\357\357\357\377\355" "\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\345\345" "\345\377\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371" "\377\217\217\217\377\205\377\377\377\0\23\234\234\234\377\375\375\375" "\377\363\363\363\377\365\365\365\377\366\366\366\377\365\365\365\377" "\361\361\361\377\267\267\270\377\233\233\233\377\223\223\223\377\233" "\233\233\377\271\271\271\377\346\346\346\377\345\345\345\377\343\343" "\343\377\340\340\340\377\336\336\336\377\371\371\371\377\216\216\216" "\377\205\377\377\377\0\7\233\233\233\377\375\375\375\377\364\364\364" "\377\366\366\366\377\370\370\370\377\367\367\367\377\265\265\266\377" "\202\206\206\207\377\12\220\220\221\377\205\205\206\377\204\204\205\377" "\266\266\266\377\345\345\345\377\343\343\343\377\340\340\340\377\336" "\336\336\377\371\371\371\377\216\216\216\377\205\377\377\377\0\6\231" "\231\231\377\375\375\375\377\365\365\365\377\367\367\367\377\371\371" "\371\377\366\366\366\377\202\224\224\225\377\13\323\323\323\377\354\354" "\354\377\315\315\315\377\217\217\220\377\225\225\225\377\345\345\345" "\377\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371\377" "\215\215\215\377\205\377\377\377\0\23\230\230\230\377\374\374\374\377" "\364\364\364\377\366\366\366\377\367\367\367\377\346\346\346\377\211" "\211\212\377\260\260\260\377\360\360\360\377\356\356\356\377\353\353" "\353\377\252\252\252\377\212\212\213\377\340\340\340\377\342\342\342" "\377\340\340\340\377\335\335\335\377\371\371\371\377\215\215\215\377" "\205\377\377\377\0\3\227\227\227\377\374\374\374\377\363\363\363\377" "\202\365\365\365\377\16\330\330\330\377\206\206\207\377\264\264\264\377" "\341\341\341\377\337\337\337\377\335\335\335\377\255\255\255\377\206" "\206\206\377\327\327\327\377\342\342\342\377\337\337\337\377\335\335" "\335\377\371\371\371\377\214\214\214\377\205\377\377\377\0\6\226\226" "\226\377\374\374\374\377\362\362\362\377\363\363\363\377\362\362\362" "\377\230\230\232\377\203\205\205\206\377\202\204\204\205\377\202\203" "\203\204\377\6\230\230\230\377\341\341\341\377\337\337\337\377\334\334" "\334\377\371\371\371\377\214\214\214\377\205\377\377\377\0\6\225\225" "\225\377\373\373\373\377\360\360\360\377\361\361\361\377\355\355\355" "\377\217\217\217\377\202\205\205\206\377\202\204\204\205\377\203\203" "\203\204\377\6\216\216\217\377\340\340\340\377\336\336\336\377\334\334" "\334\377\370\370\370\377\213\213\213\377\205\377\377\377\0\6\223\223" "\223\377\373\373\373\377\356\356\356\377\357\357\357\377\353\353\353" "\377\216\216\216\377\204\204\204\205\377\202\203\203\204\377\7\202\202" "\203\377\216\216\217\377\337\337\337\377\335\335\335\377\333\333\333" "\377\370\370\370\377\212\212\212\377\205\377\377\377\0\6\222\222\222" "\377\373\373\373\377\354\354\354\377\355\355\355\377\351\351\351\377" "\216\216\216\377\203\204\204\205\377\2\203\203\204\377\216\27\27\377" "\213\216\0\0\377\11\220\0\0\323\377\377\377\0\221\221\221\377\372\372" "\372\377\352\352\352\377\353\353\353\377\347\347\347\377\215\215\215" "\377\204\204\205\377\203\203\203\204\377\2\216\0\0\377\337\212\212\377" "\203\342\227\227\377\2\343\227\227\377\343\231\231\377\202\343\232\232" "\377\13\341\222\222\377\341\221\221\377\340\214\214\377\216\0\0\377\377" "\377\377\0\220\220\220\377\372\372\372\377\350\350\350\377\351\351\351" "\377\347\347\347\377\234\234\235\377\203\216\216\217\377\12\215\215\216" "\377\216\0\0\377\334~~\377\31088\377\311<<\377\30744\377\304''\377\300" "\32\32\377\275\15\15\377\271\1\1\377\202\271\0\0\377\7\323``\377\216" "\0\0\377\377\377\377\0\216\216\216\377\371\371\371\377\346\346\346\377" "\347\347\347\377\202\346\346\346\377\6\345\345\345\377\344\344\344\377" "\343\343\343\377\342\342\342\377\216\0\0\377\320SS\377\211\323__\377" "\5\320SS\377\216\0\0\377\377\377\377\0\215\215\215\377\371\371\371\377" "\204\344\344\344\377\5\343\343\343\377\342\342\342\377\341\341\341\377" "\340\340\340\377\236&&\377\213\216\0\0\377\4\220\0\0\323\377\377\377" "\0\214\214\214\377\371\371\371\377\204\342\342\342\377\15\341\341\341" "\377\340\340\340\377\337\337\337\377\336\336\336\377\335\335\335\377" "\334\334\334\377\332\332\332\377\330\330\330\377\327\327\327\377\325" "\325\325\377\323\323\323\377\370\370\370\377\212\212\212\377\205\377" "\377\377\0\2\212\212\212\377\366\366\366\377\217\370\370\370\377\2\365" "\365\365\377\212\212\212\377\205\377\377\377\0\1\216\216\216\243\221" "\212\212\212\377\1\215\215\215\243\264\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_notes) #endif #ifdef __GNUC__ const guint8 osmo_stock_notes[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_notes[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1512) */ "\0\0\6\0" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\232\377\377\377\0\2\214\215\211\252\207\211\204\377\203\207\212\204" "\377\15\207\211\204\377\206\210\203\377\204\207\201\377\203\205\200\377" "\201\203~\377\177\201|\377|\177z\377z|w\377wyt\377tvq\377qsn\377npk\377" "qtp\253\206\377\377\377\0\2\202\205\177\377\373\373\373\377\203\376\376" "\376\377\203\375\375\375\377\203\374\374\374\377\202\373\373\373\377" "\203\372\372\372\377\2\366\366\366\377kmh\377\206\377\377\377\0\4\177" "\201|\377\376\376\376\377\356\356\356\377\357\357\357\377\202\360\360" "\360\377\14\357\357\357\377\356\356\356\377\354\354\354\377\353\353\353" "\377\351\351\351\377\347\347\347\377\344\344\344\377\342\342\342\377" "\340\340\340\377\336\336\336\377\371\371\371\377jmh\377\206\377\377\377" "\0\4{~x\377\376\376\376\377\360\360\360\377\361\361\361\377\202\362\362" "\362\377\14\361\361\361\377\357\357\357\377\356\356\356\377\354\354\354" "\377\352\352\352\377\347\347\347\377\345\345\345\377\343\343\343\377" "\341\341\341\377\336\336\336\377\371\371\371\377jlh\377\206\377\377\377" "\0\3xzu\377\376\376\376\377\362\362\362\377\214uut\377\3\336\336\336" "\377\371\371\371\377ilg\377\206\377\377\377\0\22tvq\377\375\375\375\377" "\363\363\363\377\365\365\365\377\366\366\366\377\365\365\365\377\364" "\364\364\377\361\361\361\377\357\357\357\377\355\355\355\377\353\353" "\353\377\350\350\350\377\346\346\346\377\343\343\343\377\341\341\341" "\377\337\337\337\377\371\371\371\377ikf\377\206\377\377\377\0\22psn\377" "\375\375\375\377\364\364\364\377\367\367\367\377\370\370\370\377\367" "\367\367\377\364\364\364\377\362\362\362\377\360\360\360\377\355\355" "\355\377\353\353\353\377\350\350\350\377\346\346\346\377\343\343\343" "\377\341\341\341\377\336\336\336\377\371\371\371\377hje\377\206\377\377" "\377\0\4moj\377\375\375\375\377\365\365\365\377\367\367\367\377\212u" "ut\377\4\341\341\341\377\336\336\336\377\371\371\371\377fid\377\206\377" "\377\377\0\22ikf\377\374\374\374\377\365\365\365\377\366\366\366\377" "\367\367\367\377\366\366\366\377\364\364\364\377\361\361\361\377\357" "\357\357\377\354\354\354\377\352\352\352\377\350\350\350\377\345\345" "\345\377\343\343\343\377\340\340\340\377\336\336\336\377\371\371\371" "\377egc\377\206\377\377\377\0\3egc\377\374\374\374\377\363\363\363\377" "\202\365\365\365\377\15\364\364\364\377\362\362\362\377\360\360\360\377" "\356\356\356\377\354\354\354\377\351\351\351\377\347\347\347\377\345" "\345\345\377\342\342\342\377\340\340\340\377\334\334\334\377\370\370" "\370\377dfb\377\206\377\377\377\0\3ac_\377\374\374\374\377\362\362\362" "\377\202\363\363\363\377\210uut\377\6\261\261\261\377ccb\377NNM\377Q" "QP\377UUT\377JJGH\205\377\377\377\0\3^`[\377\373\373\373\377\360\360" "\360\377\202\361\361\361\377\17\360\360\360\377\357\357\357\377\355\355" "\355\377\353\353\353\377\351\351\351\377\347\347\347\377\345\345\345" "\377\262\262\262\377]][\377\305\307\303\377\303\305\303\377\273\274\271" "\377\256\257\255\377TTS\365JJFL\204\377\377\377\0\3Z\\X\377\373\373\373" "\377\356\356\356\377\202\357\357\357\377\17\356\356\356\377\355\355\355" "\377\354\354\354\377\352\352\352\377\350\350\350\377\346\346\346\377" "\344\344\344\377``_\377\302\303\301\377ccb\377hhg\377ppo\377SSQ\377\232" "\235\226\377OON\342\204\377\377\377\0\4VXT\377\373\373\373\377\354\354" "\354\377\355\355\355\377\207uut\377\12ssr\377MML\377\261\261\260\377" "\220\220\220\377\332\332\332\377\370\370\370\377UVR\377xzu\367KKJ\372" "III\7\203\377\377\377\0\4UWS\377\372\372\372\377\352\352\352\377\353" "\353\353\377\202\352\352\352\377\17\351\351\351\377\350\350\350\377\346" "\346\346\377\345\345\345\377\343\343\343\377\317\317\317\377[[[\377\265" "\265\264\377\262\262\262\377\331\331\331\377\370\370\370\377VXT\377x" "yv\361nom\365JJJ\37\203\377\377\377\0\4UWS\377\372\372\372\377\350\350" "\350\377\351\351\351\377\202\350\350\350\377\7\347\347\347\377\346\346" "\346\377\345\345\345\377\343\343\343\377\341\341\341\377\271\225L\377" "\250o\3\377\202\251p\4\377\6\252q\5\377\251q\5\377\247n\2\377\250n\2" "\377\251o\2\377\246n\7\262\203\377\377\377\0\5UWS\377\371\371\371\377" "\346\346\346\377\347\347\347\377\230\230\227\377\206uut\377\12\250o\3" "\377\377\371\311\377\377\374\330\377\376\371\325\377\374\362\312\377" "\372\351\275\377\367\336\257\377\365\326\243\377\362\320\225\377\251" "n\1\374\203\377\377\377\0\2UWS\377\371\371\371\377\204\344\344\344\377" "\17\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340\377\336" "\336\336\377\252q\5\377\377\373\320\377\377\371\276\377\376\365\271\377" "\373\352\251\377\366\333\225\377\362\312\177\377\356\275k\377\364\321" "\231\377\250n\1\374\203\377\377\377\0\2UWS\377\371\371\371\377\204\342" "\342\342\377\17\341\341\341\377\340\340\340\377\337\337\337\377\336\336" "\336\377\334\334\334\377\252q\5\377\377\372\314\377\377\366\237\377\375" "\355\201\377\370\337y\377\365\327\210\377\362\311{\377\356\274h\377\364" "\321\227\377\250n\1\374\203\377\377\377\0\2UWS\377\366\366\366\377\211" "\370\370\370\377\12\252q\5\377\377\365\223\377\377\357N\377\374\345H" "\377\365\3179\377\356\271-\377\354\261@\377\353\260N\377\362\311\206" "\377\250n\1\374\203\377\377\377\0\1]_\\\252\212UWS\377\12\250o\3\377" "\376\363\221\377\377\365\220\377\375\357\214\377\371\341\203\377\365" "\322z\377\361\305q\377\357\276m\377\356\277p\377\251n\1\374\216\377\377" "\377\0\1\256w\10\247\204\251o\2\374\1\250o\2\374\202\250n\1\374\2\251" "n\1\374\255q\3\247\231\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_systray_menu_notes) #endif #ifdef __GNUC__ const guint8 osmo_stock_systray_menu_notes[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_systray_menu_notes[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (882) */ "\0\0\3\212" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\2\242\242\242\\\210\212\205\342\211\210\212\205\377\3\210\212\205\342" "\223\223\223d\215\215\215\3\202\0\0\0\0\2\210\212\205\342\373\373\373" "\373\202\376\376\376\377\202\375\375\375\377\202\374\374\374\377\1\373" "\373\373\377\202\372\372\372\377\3\367\367\367\375\210\212\205\342\216" "\216\216\34\202\0\0\0\0\3\210\212\205\377\375\375\375\377\360\360\360" "\377\202\361\361\361\377\11\357\357\357\377\355\355\355\377\352\352\352" "\377\347\347\347\377\344\344\344\377\341\341\341\377\371\371\371\377" "\210\212\205\377\215\215\215\40\202\0\0\0\0\16\210\212\205\377\375\375" "\375\377\363\363\363\377\364\364\364\377\363\363\363\377\361\361\361" "\377\356\356\356\377\353\353\353\377\350\350\350\377\345\345\345\377" "\341\341\341\377\371\371\371\377\210\212\205\377\215\215\215\40\202\0" "\0\0\0\16\210\212\205\377\375\375\375\377\365\365\365\377\367\367\367" "\377\322\322\322\377\251\251\252\377\226\226\227\377\247\247\250\377" "\312\312\312\377\345\345\345\377\341\341\341\377\371\371\371\377\210" "\212\205\377\215\215\215\40\202\0\0\0\0\16\210\212\205\377\375\375\375" "\377\366\366\366\377\370\370\370\377\235\235\235\377\237\237\240\377" "\262\262\263\377\233\233\234\377\227\227\227\377\345\345\345\377\341" "\341\341\377\371\371\371\377\210\212\205\377\214\214\214\40\202\0\0\0" "\0%\210\212\205\377\374\374\374\377\365\365\365\377\324\324\324\377\214" "\214\214\377\345\345\345\377\356\356\356\377\342\342\342\377\212\212" "\213\377\312\312\312\377\341\341\341\377\371\371\371\377\210\212\205" "\377\222fT>\217xE\4\0\0\0\0\210\212\205\377\374\374\374\377\363\363\363" "\377\260\260\260\377\217\217\217\377\264\264\265\377\263\263\264\377" "\261\261\262\377\215\215\215\377\247\247\250\377\340\340\340\377\371" "\371\371\377\224\200{\365\260-*\375\256*&\374\232/\33W\210\212\205\377" "\373\373\373\377\360\360\360\377\221\221\221\377\205\205\206\377\202" "\204\204\205\377\202\203\203\204\377\13\215\215\215\377\336\336\336\377" "\354\352\344\377\236S5\376\321yv\377\312CD\377\241\27\16\367\210\212" "\205\377\373\373\373\377\355\355\355\377\220\220\221\377\202\204\204" "\205\377\202\203\203\204\377\15\202\202\203\377\214\214\215\377\325\323" "\316\377\241\212Z\377\340\267j\377\323r9\377\244\10\7\377\236#\24\337" "\210\212\205\377\372\372\372\377\352\352\352\377\217\217\220\377\204" "\204\205\377\203\203\203\204\377\14\202\202\203\377\214\212\206\377\237" "\210W\377\337\267i\377\360\266F\377\303\231A\372\233\77#\306\225P.\3" "\210\212\205\377\372\372\372\377\350\350\350\377\227\227\230\377\202" "\216\216\217\377\15\215\215\216\377\214\214\215\377\214\212\207\377\227" "\200P\377\335\264g\377\357\263E\377\276\226C\376\223|J\244\217xE\1\0" "\0\0\0\210\212\205\377\371\371\371\377\345\345\345\377\202\344\344\344" "\377\11\342\342\342\377\341\341\341\377\332\330\325\377\240\212Z\377" "\332\263e\377\353\262C\377\273\226G\377\222\204f\372\212\212\212\40\202" "\0\0\0\0\4\210\212\205\342\366\366\366\375\370\370\370\377\371\371\371" "\377\203\370\370\370\377\7\310\275\244\377\311\246a\377\353\261B\377" "\270\223G\377\303\266\233\376\210\212\205\354\212\212\212\34\202\0\0" "\0\0\2\217\217\217[\210\212\205\342\205\210\212\205\377\7wkM\377\274" "\225G\377\247\211E\377\216\202j\377\210\212\205\354\215\215\215u\212" "\212\212\3\210\0\0\0\0\4\204pC=TQC\373xgA\257\217xE,\206\0\0\0\0"}; #endif /* NOTES_ENABLED */ /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_fullyear) #endif #ifdef __GNUC__ const guint8 osmo_stock_fullyear[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_fullyear[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1856) */ "\0\0\7X" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\4\377\377\377\0\227\227\227\227\227\227\227\377\233\233\233\377\202" "\236\236\236\377\21\234\234\234\377\231\231\231\377\225\225\225\377\221" "\221\221\377\215\215\215\377\211\211\211\377\205\205\205\377\201\201" "\201\377~~~\377zzz\377vvv\377rrr\377nnn\377jjj\377fff\377bbb\377eee\227" "\202\377\377\377\0\2\224\224\224\377\371\371\371\377\204\376\376\376" "\377\204\375\375\375\377\203\374\374\374\377\203\373\373\373\377\203" "\372\372\372\377\3\371\371\371\377\367\367\367\377^^^\377\202\377\377" "\377\0\2\223\223\223\377\376\376\376\377\202\336\336\336\377\14\337\337" "\337\377\340\340\340\377sss\377}}}\377\233\233\233\377fff\377\252\252" "\252\377\325\325\325\377222\377\344\344\344\377\237\237\237\377hhh\377" "\204\344\344\344\377\2\371\371\371\377^^^\377\202\377\377\377\0\2\222" "\222\222\377\376\376\376\377\202\337\337\337\377\14\340\340\340\377\341" "\341\341\377\252\252\252\377xxx\377\217\217\217\377sss\377aaa\377```" "\377CCC\377\275\275\275\377eee\377WWW\377\204\345\345\345\377\2\371\371" "\371\377^^^\377\202\377\377\377\0\2\217\217\217\377\376\376\376\377\202" "\340\340\340\377\14\341\341\341\377\342\342\342\377\300\300\300\377x" "xx\377\256\256\256\377hhh\377\236\236\236\377\210\210\210\377333\377" "\243\243\243\377\203\203\203\377:::\377\202\347\347\347\377\202\346\346" "\346\377\2\371\371\371\377]]]\377\202\377\377\377\0\2\214\214\214\377" "\375\375\375\377\202\341\341\341\377\3\342\342\342\377\343\343\343\377" "\344\344\344\377\202\345\345\345\377\2\344\344\344\377\346\346\346\377" "\202\347\347\347\377\207\350\350\350\377\2\371\371\371\377\\\\\\\377" "\202\377\377\377\0\7\211\211\211\377\375\375\375\377\341\341\341\377" "\342\342\342\377\236\236\236\377zzz\377iii\377\202\346\346\346\377\4" "\347\347\347\377\215\215\215\377vvv\377VVV\377\202\351\351\351\377\3" "MMM\377\203\203\203\377uuu\377\202\351\351\351\377\2\371\371\371\377" "[[[\377\202\377\377\377\0\14\206\206\206\377\375\375\375\377\342\342" "\342\377\301\301\301\377\276\276\276\377\301\301\301\377\302\302\302" "\377\303\303\303\377\347\347\347\377\305\305\305\377\303\303\303\377" "\304\304\304\377\202\305\305\305\377\3\352\352\352\377\307\307\307\377" "\304\304\304\377\203\305\305\305\377\2\371\371\371\377ZZZ\377\202\377" "\377\377\0\14\202\202\202\377\375\375\375\377\343\343\343\377\302\302" "\302\377\277\277\277\377\312\312\312\377\324\324\324\377\325\325\325" "\377\350\350\350\377\306\306\306\377\303\303\303\377\316\316\316\377" "\202\330\330\330\377\10\354\354\354\377\325\325\325\377\323\323\323\377" "\326\326\326\377\331\331\331\377\330\330\330\377\371\371\371\377XXX\377" "\202\377\377\377\0\7~~~\377\374\374\374\377\344\344\344\377\345\345\345" "\377\346\346\346\377\347\347\347\377\350\350\350\377\202\351\351\351" "\377\2\352\352\352\377\353\353\353\377\202\354\354\354\377\202\355\355" "\355\377\3\340\340\340\377\337\337\337\377\346\346\346\377\202\355\355" "\355\377\2\371\371\371\377VVV\377\202\377\377\377\0\7zzz\377\374\374" "\374\377\345\345\345\377\346\346\346\377\226\226\226\377\214\214\214" "\377\204\204\204\377\202\352\352\352\377\4\353\353\353\377www\377\234" "\234\234\377\232\232\232\377\202\356\356\356\377\3\247\247\247\377\202" "\202\202\377mmm\377\202\356\356\356\377\2\371\371\371\377TTT\377\202" "\377\377\377\0\21vvv\377\374\374\374\377\345\345\345\377\302\302\302" "\377\252\252\252\377\271\271\271\377\256\256\256\377\305\305\305\377" "\353\353\353\377\311\311\311\377\252\252\252\377\260\260\260\377\255" "\255\255\377\312\312\312\377\357\357\357\377\314\314\314\377\310\310" "\310\377\203\312\312\312\377\2\371\371\371\377RRR\377\202\377\377\377" "\0\14rrr\377\373\373\373\377\346\346\346\377\305\305\305\377\302\302" "\302\377\315\315\315\377\327\327\327\377\330\330\330\377\354\354\354" "\377\326\326\326\377\325\325\325\377\331\331\331\377\202\334\334\334" "\377\10\361\361\361\377\315\315\315\377\311\311\311\377\324\324\324\377" "\335\335\335\377\334\334\334\377\370\370\370\377PPP\377\202\377\377\377" "\0\11nnn\377\373\373\373\377\346\346\346\377\347\347\347\377\351\351" "\351\377\352\352\352\377\353\353\353\377\354\354\354\377\355\355\355" "\377\202\341\341\341\377\1\351\351\351\377\202\361\361\361\377\205\362" "\362\362\377\3\361\361\361\377\370\370\370\377NNN\377\202\377\377\377" "\0\22jjj\377\373\373\373\377\347\347\347\377\350\350\350\377\237\237" "\237\377yyy\377\236\236\236\377\355\355\355\377\356\356\356\377\357\357" "\357\377\234\234\234\377\243\243\243\377\245\245\245\377\346\346\346" "\377\363\363\363\377\203\203\203\377|||\377\212\212\212\377\202\363\363" "\363\377\2\370\370\370\377LLL\377\202\377\377\377\0\22fff\377\372\372" "\372\377\347\347\347\377\305\305\305\377\303\303\303\377\305\305\305" "\377\307\307\307\377\310\310\310\377\356\356\356\377\313\313\313\377" "\260\260\260\377\256\256\256\377\261\261\261\377\311\311\311\377\364" "\364\364\377\320\320\320\377\315\315\315\377\317\317\317\377\202\316" "\316\316\377\2\370\370\370\377LLL\377\202\377\377\377\0\22bbb\377\372" "\372\372\377\347\347\347\377\306\306\306\377\303\303\303\377\316\316" "\316\377\331\331\331\377\332\332\332\377\357\357\357\377\330\330\330" "\377\327\327\327\377\333\333\333\377\337\337\337\377\340\340\340\377" "\365\365\365\377\321\321\321\377\315\315\315\377\330\330\330\377\202" "\341\341\341\377\2\370\370\370\377LLL\377\202\377\377\377\0\11^^^\377" "\372\372\372\377\350\350\350\377\351\351\351\377\352\352\352\377\353" "\353\353\377\355\355\355\377\356\356\356\377\357\357\357\377\202\343" "\343\343\377\13\354\354\354\377\364\364\364\377\365\365\365\377\366\366" "\366\377\367\367\367\377\370\370\370\377\367\367\367\377\366\366\366" "\377\365\365\365\377\370\370\370\377LLL\377\202\377\377\377\0\26ZZZ\377" "\371\371\371\377\350\350\350\377\351\351\351\377}}}\377\232\232\232\377" "\244\244\244\377\356\356\356\377\357\357\357\377\356\356\356\377vvv\377" "\203\203\203\377\226\226\226\377\365\365\365\377\364\364\364\377|||\377" "\207\207\207\377\236\236\236\377\367\367\367\377\366\366\366\377\370" "\370\370\377LLL\377\202\377\377\377\0\26VVV\377\371\371\371\377\350\350" "\350\377\306\306\306\377\303\303\303\377\306\306\306\377\310\310\310" "\377\311\311\311\377\357\357\357\377\315\315\315\377\312\312\312\377" "\315\315\315\377\316\316\316\377\317\317\317\377\367\367\367\377\323" "\323\323\377\322\322\322\377\321\321\321\377\320\320\320\377\326\326" "\326\377\370\370\370\377LLL\377\202\377\377\377\0\26RRR\377\371\371\371" "\377\350\350\350\377\322\322\322\377\321\321\321\377\325\325\325\377" "\331\331\331\377\332\332\332\377\357\357\357\377\314\314\314\377\312" "\312\312\377\325\325\325\377\340\340\340\377\341\341\341\377\366\366" "\366\377\322\322\322\377\321\321\321\377\333\333\333\377\343\343\343" "\377\345\345\345\377\370\370\370\377LLL\377\202\377\377\377\0\2NNN\377" "\366\366\366\377\222\370\370\370\377\2\367\367\367\377LLL\377\202\377" "\377\377\0\1TTT\227\224LLL\377\1UUU\227\231\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_jumpto) #endif #ifdef __GNUC__ const guint8 osmo_stock_jumpto[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_jumpto[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1609) */ "\0\0\6a" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\241\377\377\377\0\2""9q\0\11+\200\0\6\226\377\377\377\0\2""4n\3I7p\4" "\201\226\377\377\377\0\3""7s\5\2357q\5\3714o\7'\202\377\377\377\0\5\301" "\204\24\30\301\204\24M\301\204\24x\301\204\24T\301\204\24\40\216\377" "\377\377\0\14""7r\4\345\210\262_\3757r\5\316\275\202\24""5\300\205\25" "\334\303\212\33\360\312\234/\360\322\254=\374\316\2411\362\305\216\36" "\360\301\206\25\350\301\204\24F\207\377\377\377\0\23""3f\0\12""6o\3K" "6n\3P8p\6)4o\7'M\202\35\357\272\325\235\376i\2269\371\206~\21\370\320" "\261I\377\342\315_\377\347\323V\377\347\324S\377\350\327[\377\351\327" "c\377\336\303Q\377\304\215\36\363\300\205\25\243\301\204\24\2\203\377" "\377\377\0\25""3s\0\24""9t\5\276E{\24\360c\2255\362p\237D\363\\\217/" "\355Cz\23\362|\247R\370\220\273a\377\253\313\210\377I|\24\377\314\273" ">\377\342\3131\377\346\325@\377\351\334J\377\351\334K\377\347\326B\377" "\346\322K\377\342\314_\377\307\226)\365\300\204\24{\202\377\377\377\0" "\36""1l\0\32\77w\15\337\227\275j\373\262\321\215\376\227\301e\376\212" "\271S\376\221\275c\376\244\310~\376\236\304u\376W\231\20\377\200\262" "J\377\213\263b\377f\211\16\377\345\323=\377\353\340Q\377\357\352a\377" "\357\353b\377\354\342T\377\346\325@\377\342\3137\377\331\301\\\377\301" "\207\31\362\301\204\24+\377\377\377\0\77w\12\304\254\314\200\375\246" "\317j\376y\264&\376g\247\30\376[\235\17\376\202Q\225\7\376\202Q\225\7" "\377\24S\226\11\377\244\310}\377b\220,\377\260\267/\377\355\346[\377" "\364\365r\377\364\367u\377\356\350^\377\350\331F\377\342\312/\377\327" "\276F\377\306\242A\376\300\205\24\2535o\5""5d\2247\360\272\332\206\376" "\211\3001\376v\262#\376d\244\26\376X\232\14\376\202Q\225\7\376\203Q\225" "\7\377\25d\240\"\377\247\310\203\377J}\17\377\342\336R\377\361\360i\377" "\362\361k\377\355\345Z\377\347\327D\377\341\310-\377\320\264.\377\311" "\255U\377\300\205\24\342w\15\357\263\321\222\376\240\305w\377\230\275q\377" "W\206!\377Yy\13\377\253\226\35\377\314\256#\377\330\274%\377\336\303" "&\377\337\303&\377\331\275%\377\316\260#\377\300\237!\377\263\220(\377" "\315\254M\377\303\206\23\347;v\10\346\314\345\242\376\267\321\220\375" "8s\6\202\202\377\377\377\0\26""5o\4>d\2247\360\242\305}\376^\215-\371" "W|\13\376\276\252(\377\274\222\23\377\253\207\35\377\270\226\37\377\302" "\241!\377\307\247\"\377\307\250\"\377\302\242!\377\272\230\40\377\255" "\211\36\377\302\2376\377\330\2547\377\304\207\22\262;t\10\353\303\341" "\221\376\241\301|\3647n\4@\202\377\377\377\0\26""7s\6\211C{\22\3716q" "\5\337Uu\7b\304\207\25\362\350\277A\377\337\260\26\377\304\230\17\377" "\260\211\30\377\253\206\35\377\257\213\36\377\257\214\36\377\254\207" "\35\377\256\207\32\377\304\232\33\377\342\275H\377\306\213\30\362\276" "\202\24""8=w\10\267\232\302^\376f\224>\3610p\0\20\202\377\377\377\0\12" "6q\4\2556p\5c\0\200\0\2\377\377\377\0\301\204\23k\314\225\36\362\353" "\304E\377\347\271\36\377\330\246\6\377\313\235\14\377\202\304\230\17" "\377\11\312\234\14\377\331\255\36\377\353\305E\377\323\236$\366\276\203" "\22\223\0\0\0\3""5p\5""0:s\7\351=w\10\231\203\377\377\377\0\1+\200\0" "\6\202\377\377\377\0\21\0\0\0\1""0!\5\4\277\204\22\245\307\216\32\362" "\345\273<\377\353\302>\377\351\275,\377\347\271!\377\351\274+\377\352" "\301;\377\347\276@\377\311\223\36\365\273\201\22\3057&\6\31\0\0\0\7\377" "\377\377\0\0\0\0\1\207\377\377\377\0\17\0\0\0\1\0\0\0\5\0\0\0\17\225" "f\17^\300\204\23\356\307\220\35\363\324\242(\373\335\2562\377\325\244" "*\374\310\222\36\365\277\204\24\365\211^\16\207\0\0\0,\0\0\0\32\0\0\0" "\14\211\377\377\377\0\17\0\0\0\1\0\0\0\5\0\0\0\20\0\0\0\37\30\21\3""8" "aB\12l\203Y\15\233\235l\17\301\201X\15\247X<\11\205\32\22\3Z\0\0\0A\0" "\0\0-\0\0\0\32\0\0\0\13\211\377\377\377\0\17\0\0\0\1\0\0\0\4\0\0\0\13" "\0\0\0\26\0\0\0%\0\0\0""4\0\0\0B\0\0\0L\0\0\0N\0\0\0J\0\0\0\77\0\0\0" "1\0\0\0!\0\0\0\22\0\0\0\7\211\377\377\377\0\202\0\0\0\1\15\0\0\0\5\0" "\0\0\13\0\0\0\23\0\0\0\35\0\0\0&\0\0\0+\0\0\0-\0\0\0*\0\0\0#\0\0\0\32" "\0\0\0\20\0\0\0\10\0\0\0\3\212\377\377\377\0\202\0\0\0\1\14\0\0\0\4\0" "\0\0\7\0\0\0\12\0\0\0\16\0\0\0\21\0\0\0\22\0\0\0\20\0\0\0\15\0\0\0\11" "\0\0\0\5\0\0\0\2\0\0\0\1\214\377\377\377\0\202\0\0\0\1\2\0\0\0\2\0\0" "\0\3\203\0\0\0\4\2\0\0\0\3\0\0\0\2\202\0\0\0\1\220\377\377\377\0\205" "\0\0\0\1\204\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_next_day) #endif #ifdef __GNUC__ const guint8 osmo_stock_next_day[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_next_day[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (703) */ "\0\0\2\327" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\321\377\377\377\0\4EJC\340HLE\377GJD\246@@@\4\224\377\377\377\0\5JM" "G\377\312\312\313\364\217\221\217\326EJB\251UUU\3\223\377\377\377\0\6" "MPJ\377\313\313\315\375\315\315\316\370\222\224\220\325FIC\247UUU\3\222" "\377\377\377\0\7MPJ\377\313\313\314\372\224\223\223\377\323\323\324\370" "\223\225\222\325FJB\245UUU\3\221\377\377\377\0\10MPJ\377\314\313\314" "\373\212\210\210\377\230\226\230\377\331\330\331\370\226\231\225\326" "FJC\243\200\200\200\2\220\377\377\377\0\11MPJ\377\312\312\313\372\212" "\210\210\377\215\213\214\377\235\233\233\377\336\336\336\370\230\232" "\227\324EJD\242\200\200\200\2\217\377\377\377\0\12MPJ\377\311\310\312" "\372\212\210\210\377\215\213\214\377\221\220\220\377\241\240\240\377" "\344\344\344\370\232\234\230\325FIC\240\200\200\200\2\216\377\377\377" "\0\12MPJ\377\301\300\302\371\212\210\210\377\215\213\214\377\221\220" "\220\377\225\224\224\377\245\244\244\377\350\350\350\370\217\220\215" "\320FJC\221\216\377\377\377\0\12MPJ\377\265\264\266\370hef\377}{|\377" "\177}}\377}||\377\207\206\206\377\342\342\342\365\207\211\205\315FJC" "\221\216\377\377\377\0\12MPJ\377\263\262\264\370LIJ\377ROP\377XVV\377" "qoo\377\330\330\331\364\217\221\215\321FIC\240\200\200\200\2\216\377" "\377\377\0\11MPJ\377\263\262\264\370LIJ\377ROP\377jhh\377\320\320\320" "\365\214\217\213\320EJD\242\200\200\200\2\217\377\377\377\0\10MPJ\377" "\263\262\264\370LIJ\377c`b\377\307\306\307\364\211\214\210\321FJC\243" "\200\200\200\2\220\377\377\377\0\7MPJ\377\263\262\264\370\\Z[\377\276" "\276\300\364\205\207\204\320FJB\245UUU\3\221\377\377\377\0\6MPJ\377\264" "\264\266\374\266\266\267\364\203\205\201\320FIC\247UUU\3\222\377\377" "\377\0\5JMG\377\263\263\265\357~\200~\320EJB\252333\5\221\377\377\377" "\0\14\0\0\0\2\0\0\0\14EIB\343HLE\377BE\77\263\6\6\6*\0\0\0'\0\0\0$\0" "\0\0\36\0\0\0\25\0\0\0\14\0\0\0\1\214\377\377\377\0\5\0\0\0\14\0\0\0" "\27\0\0\0#\0\0\0.\0\0\0:\202\0\0\0F\5\0\0\0:\0\0\0.\0\0\0#\0\0\0\27\0" "\0\0\7\215\377\377\377\0\12\0\0\0\5\0\0\0\14\0\0\0\24\0\0\0\35\0\0\0" "#\0\0\0\40\0\0\0\31\0\0\0\21\0\0\0\12\0\0\0\2\316\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_next_month) #endif #ifdef __GNUC__ const guint8 osmo_stock_next_month[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_next_month[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1165) */ "\0\0\4\245" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\315\377\377\377\0\4EJC\340HLE\377GJD\246@@@\4\203\377\377\377\0\4FJ" "C\320HLE\377FJC\263III\7\215\377\377\377\0\5JMG\377\312\312\313\364\217" "\221\217\326EJB\251UUU\3\202\377\377\377\0\5FJC\360\310\310\312\357\231" "\233\231\324FJC\266III\7\214\377\377\377\0\15MPJ\377\313\313\315\375" "\315\315\316\370\222\224\220\325FIC\247UUU\3\377\377\377\0FJC\360\312" "\312\313\375\314\313\314\370\235\236\234\323EJC\264UUU\6\213\377\377" "\377\0\16MPJ\377\313\313\314\372\224\223\223\377\323\323\324\370\223" "\225\222\325FJB\245UUU\3FJC\360\313\313\314\375\221\217\220\377\322\321" "\322\370\236\240\235\324FJC\262UUU\6\212\377\377\377\0\17MPJ\377\314" "\313\314\373\212\210\210\377\230\226\230\377\331\330\331\370\226\231" "\225\326FJC\243FJD\360\312\312\314\375\211\207\210\377\226\224\225\377" "\326\326\327\370\241\243\240\324GID\261333\5\211\377\377\377\0\20MPJ" "\377\312\312\313\372\212\210\210\377\215\213\214\377\235\233\233\377" "\336\336\336\370\230\232\227\324FJC\372\310\310\312\375\211\207\210\377" "\215\213\214\377\232\231\231\377\333\333\334\371\244\246\243\324FJC\257" "333\5\210\377\377\377\0\21MPJ\377\311\310\312\372\212\210\210\377\215" "\213\214\377\221\220\220\377\241\240\240\377\344\344\344\370\214\217" "\213\374vxt\376\211\207\210\377\215\213\214\377\221\220\220\377\236\235" "\235\377\341\341\341\371\247\251\246\324EJB\255@@@\4\207\377\377\377" "\0\21MPJ\377\301\300\302\371\212\210\210\377\215\213\214\377\221\220" "\220\377\225\224\224\377\245\244\244\377\344\344\344\376\230\231\227" "\376cda\377\215\213\214\377\221\220\220\377\225\224\224\377\243\242\241" "\377\346\346\347\370\233\235\232\316FJC\241\207\377\377\377\0\21MPJ\377" "\265\264\266\370hef\377}{|\377\177}}\377}||\377\207\206\206\377\334\334" "\334\376\220\222\216\376TUQ\377}{{\377\177~~\377~}}\377\204\203\202\377" "\336\336\337\365\223\226\222\312FJC\241\207\377\377\377\0\21MPJ\377\263" "\262\264\370LIJ\377ROP\377XVV\377qoo\377\330\330\331\364\202\205\200" "\374oqm\376KHI\377ROP\377XVV\377lkk\377\325\325\325\365\232\234\231\317" "EJB\255@@@\4\207\377\377\377\0\20MPJ\377\263\262\264\370LIJ\377ROP\377" "jhh\377\320\320\320\365\214\217\213\320FJC\372\264\264\266\374KHI\377" "ROP\377fdd\377\314\314\315\365\227\231\226\316FJC\257333\5\210\377\377" "\377\0\17MPJ\377\263\262\264\370LIJ\377c`b\377\307\306\307\364\211\214" "\210\321FJC\243FJD\360\264\264\266\374KHI\377_]^\377\303\303\305\364" "\223\225\222\316GID\261333\5\211\377\377\377\0\16MPJ\377\263\262\264" "\370\\Z[\377\276\276\300\364\205\207\204\320FJB\245UUU\3FJC\360\264\264" "\266\374XUV\377\274\273\274\364\217\221\216\316FJC\262UUU\6\212\377\377" "\377\0\15MPJ\377\264\264\266\374\266\266\267\364\203\205\201\320FIC\247" "UUU\3\377\377\377\0FJC\360\264\264\266\374\263\262\264\364\214\215\213" "\315EJC\264UUU\6\213\377\377\377\0\5JMG\377\263\263\265\357~\200~\320" "EJB\251UUU\3\202\377\377\377\0\5FJC\360\262\262\264\350\207\211\207\315" "FJC\266III\7\212\377\377\377\0\7\0\0\0\1\0\0\0\10EIC\342HLE\377CF@\257" "\7\7\7#\0\0\0#\202\0\0\0%\6DGA\326HLE\377CG@\273\24\24\24\31\0\0\0\15" "\0\0\0\6\210\377\377\377\0\21\0\0\0\2\0\0\0\14\0\0\0\25\0\0\0\35\0\0" "\0&\0\0\0/\0\0\0""7\0\0\0@\0\0\0I\0\0\0F\0\0\0=\0\0\0""4\0\0\0,\0\0\0" "#\0\0\0\32\0\0\0\21\0\0\0\5\210\377\377\377\0\17\0\0\0\1\0\0\0\5\0\0" "\0\12\0\0\0\20\0\0\0\27\0\0\0\37\0\0\0%\0\0\0(\0\0\0%\0\0\0\40\0\0\0" "\31\0\0\0\22\0\0\0\14\0\0\0\6\0\0\0\1\316\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_next_year) #endif #ifdef __GNUC__ const guint8 osmo_stock_next_year[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_next_year[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1590) */ "\0\0\6N" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\310\377\377\377\0\4FJC\340HLE\377FJC\246FJC\4\203\377\377\377\0\4FJ" "C\320HLE\377FJC\263III\7\203\377\377\377\0\4FJC\340HLE\377FJC\246FJC" "\4\206\377\377\377\0\5JNG\377\313\312\313\364\217\222\216\326FJC\251" "FJC\3\202\377\377\377\0\5FJC\360\310\310\312\357\231\233\231\324FJC\266" "III\7\202\377\377\377\0\5JMG\377\312\312\313\364\217\221\217\326FJC\251" "FJC\3\205\377\377\377\0\24MPJ\377\313\313\315\375\315\315\316\370\220" "\223\220\325FJC\247FJC\3\377\377\377\0FJC\360\312\312\313\375\314\313" "\314\370\235\236\234\323EJC\264UUU\6\377\377\377\0MPJ\377\313\313\315" "\375\315\315\316\370\222\224\220\325FJC\247FJC\3\204\377\377\377\0\25" "MPJ\377\313\313\314\372\224\223\223\377\322\322\324\371\223\225\222\326" "FJC\245FJC\3FJC\360\313\313\314\375\221\217\220\377\322\321\322\370\236" "\240\235\324FJC\262UUU\6MPJ\377\313\313\314\372\224\223\223\377\323\323" "\324\370\223\225\222\325FJC\245FJC\3\203\377\377\377\0\26MPJ\377\313" "\313\314\373\212\210\210\377\230\226\230\377\331\331\332\370\225\227" "\224\326FJC\243FJC\360\312\312\314\375\211\207\210\377\226\224\225\377" "\326\326\327\370\241\243\240\324GID\261LOJ\377\314\313\314\373\212\210" "\210\377\230\226\230\377\331\330\331\370\226\230\225\326FJC\243FJC\2" "\202\377\377\377\0\177MPJ\377\312\312\313\372\212\210\210\377\215\213" "\214\377\235\233\233\377\336\336\336\370\227\231\226\325FJC\372\310\310" "\312\375\211\207\210\377\215\213\214\377\232\231\231\377\333\333\334" "\371\244\246\243\324HLE\377\307\307\310\372\212\210\210\377\215\213\214" "\377\235\233\233\377\336\336\336\370\230\232\226\324FJC\242FJC\2\377" "\377\377\0MPJ\377\310\310\312\372\212\210\210\377\215\213\214\377\221" "\220\220\377\241\240\240\377\344\344\344\370\214\216\213\374vxt\376\210" "\207\207\377\215\213\214\377\221\220\220\377\236\235\235\377\341\341" "\341\371\230\231\226\377orm\375\211\207\207\377\215\213\214\377\221\220" "\220\377\241\240\240\377\344\344\344\370\232\234\230\325FJC\240FJC\2" "MPJ\377\300\300\301\371\212\210\210\377\215\213\214\377\221\220\220\377" "\225\224\224\377\245\244\244\377\344\344\344\376\227\231\227\376cda\377" "\215\213\214\377\221\220\220\377\225\224\224\377\243\242\241\377\342" "\342\343\377\243\244\241\376_a\\\377\215\213\214\377\221\220\220\377" "\225\224\224\377\245\244\244\377\350\350\350\370\217\220\215\320FJC\221" "MPJ\377\264\264\266\370hef\377}{|\377\177}}\377}||\377\207\206\206\377" "\334\334\334\376\217\221\216\376TUQ\377}{{\377\177~~\377~}}\377\204\203" "\202\377\330\330\331\377\232\234\231\376RTP\377}{|\377\177}}\377}||\377" "\207\206\206\377\342\342\342\365\207\211\205\315FJC\221MPJ\377\262\262" "\264\370LIJ\377ROP\377XVV\377qoo\377\330\330\331\365\202\204\200\374" "oqn\376KHI\377ROP\377XVV\377lkk\377\325\325\325\365\214\215\212\377h" "kf\375LIJ\377ROP\377XVV\377qoo\377\330\330\331\364\217\221\215\321FJ" "C\240FJC\2MPJ\377\262\262\264\370LIJ\377ROP\377jhh\377\320\320\320\365" "\213\215\212\321'FJC\372\263\263\265\374KHI\377ROP\377fdd\377\314\314" "\315\365\227\231\226\316HLE\377\260\257\261\370LIJ\377ROP\377jhh\377" "\320\320\320\365\214\216\212\320FJC\242FJC\2\377\377\377\0MPJ\377\262" "\262\264\370LIJ\377c`b\377\307\307\310\365\210\212\206\321FJC\243FJC" "\360\264\264\266\374KHI\377_]^\377\303\303\305\364\223\225\222\316GI" "D\261LOJ\377\263\262\264\370LIJ\377c`b\377\307\306\307\364\211\213\210" "\321FJC\243FJC\2\202\377\377\377\0\25MPJ\377\262\262\264\370\\Z[\377" "\276\276\300\365\205\207\204\321FJC\245FJC\3FJC\360\264\264\266\374X" "UV\377\274\273\274\364\217\221\216\316FJC\262UUU\6MPJ\377\263\262\264" "\370\\Z[\377\276\276\300\364\205\207\204\320FJC\245FJC\3\203\377\377" "\377\0\24MPJ\377\264\264\266\374\266\266\267\364\201\204\201\320FJC\247" "FJC\3\377\377\377\0FJC\360\264\264\266\374\263\262\264\364\214\215\213" "\315EJC\264UUU\6\377\377\377\0MPJ\377\264\264\266\374\266\266\267\364" "\203\205\201\320FJC\247FJC\3\204\377\377\377\0\5JNG\377\264\263\265\357" "~\201}\320FJC\251FJC\3\202\377\377\377\0\5FJC\360\262\262\264\350\207" "\211\207\315FJC\266III\7\202\377\377\377\0\5JMG\377\263\263\265\357~" "\200~\320FJC\251FJC\3\205\377\377\377\0\23FJC\341HLE\377CG@\255\12\12" "\11\35\0\0\0\35\0\0\0!\0\0\0#DGA\327HLE\377BF\77\276\14\14\14+\0\0\0" "#\0\0\0\40\0\0\0\34\77B<\343BF@\377@D=\253\24\25\23\15\0\0\0\4\205\377" "\377\377\0\25\0\0\0\11\0\0\0\32\0\0\0#\0\0\0*\0\0\0""0\0\0\0""7\0\0\0" "=\0\0\0C\0\0\0J\0\0\0H\0\0\0B\0\0\0;\0\0\0""5\0\0\0.\0\0\0(\0\0\0\"\0" "\0\0\33\0\0\0\25\0\0\0\17\0\0\0\10\0\0\0\2\205\377\377\377\0\21\0\0\0" "\3\0\0\0\12\0\0\0\16\0\0\0\22\0\0\0\26\0\0\0\32\0\0\0\35\0\0\0\40\0\0" "\0!\0\0\0\"\0\0\0\37\0\0\0\31\0\0\0\24\0\0\0\17\0\0\0\12\0\0\0\6\0\0" "\0\2\315\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_prev_day) #endif #ifdef __GNUC__ const guint8 osmo_stock_prev_day[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_prev_day[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (703) */ "\0\0\2\327" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\324\377\377\377\0\4III\7FJC\263HLE\377FJC\320\223\377\377\377\0\5II" "I\7FJC\266\231\233\231\324\310\310\312\357FJC\360\222\377\377\377\0\6" "UUU\6EJC\264\235\236\234\323\314\313\314\370\312\312\313\375FJC\360\221" "\377\377\377\0\7UUU\6FJC\262\236\240\235\324\322\321\322\370\221\217" "\220\377\313\313\314\375FJC\360\220\377\377\377\0\10""333\5GID\261\241" "\243\240\324\326\326\327\370\226\224\225\377\211\207\210\377\312\312" "\314\375FJC\360\217\377\377\377\0\11""333\5FJC\257\244\246\243\324\333" "\333\334\371\232\231\231\377\215\213\214\377\211\207\210\377\311\311" "\313\375FJC\360\216\377\377\377\0\12@@@\4EJB\255\247\251\246\324\341" "\341\341\371\236\235\235\377\221\220\220\377\215\213\214\377\211\207" "\210\377\307\307\310\375FJC\360\216\377\377\377\0\12FJC\241\233\235\232" "\316\346\346\347\370\243\242\241\377\225\224\224\377\221\220\220\377" "\215\213\214\377\211\207\210\377\277\277\301\375FJC\360\216\377\377\377" "\0\12FJC\241\223\226\222\312\336\336\337\365\204\203\202\377~}}\377\177" "~~\377}{{\377fcd\377\265\265\267\374FJC\360\216\377\377\377\0\12@@@\4" "EJB\255\232\234\231\317\325\325\325\365lkk\377XVV\377ROP\377KHI\377\264" "\264\266\374FJC\360\217\377\377\377\0\11""333\5FJC\257\227\231\226\316" "\314\314\315\365fdd\377ROP\377KHI\377\264\264\266\374FJC\360\220\377" "\377\377\0\10""333\5GID\261\223\225\222\316\303\303\305\364_]^\377KH" "I\377\264\264\266\374FJC\360\221\377\377\377\0\7UUU\6FJC\262\217\221" "\216\316\274\273\274\364XUV\377\264\264\266\374FJC\360\222\377\377\377" "\0\6UUU\6EJC\264\214\215\213\315\263\262\264\364\264\264\266\374FJC\360" "\223\377\377\377\0\5III\7FJC\267\207\211\207\316\262\262\264\350FJC\360" "\217\377\377\377\0\14\0\0\0\2\0\0\0\14\0\0\0\25\0\0\0\36\0\0\0$\13\13" "\13-BF\77\277HLE\377DHB\326\0\0\0\25\0\0\0\14\0\0\0\1\214\377\377\377" "\0\5\0\0\0\14\0\0\0\27\0\0\0#\0\0\0.\0\0\0:\202\0\0\0F\5\0\0\0:\0\0\0" ".\0\0\0#\0\0\0\27\0\0\0\7\215\377\377\377\0\12\0\0\0\5\0\0\0\14\0\0\0" "\24\0\0\0\35\0\0\0#\0\0\0\40\0\0\0\31\0\0\0\21\0\0\0\12\0\0\0\2\316\377" "\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_prev_month) #endif #ifdef __GNUC__ const guint8 osmo_stock_prev_month[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_prev_month[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1165) */ "\0\0\4\245" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\321\377\377\377\0\4III\7FJC\263HLE\377FJC\320\203\377\377\377\0\4@@" "@\4GJD\246HLE\377EJC\340\214\377\377\377\0\5III\7FJC\266\231\233\231" "\324\310\310\312\357FJC\360\202\377\377\377\0\5UUU\3EJB\251\217\221\217" "\326\312\312\313\364JMG\377\213\377\377\377\0\15UUU\6EJC\264\235\236" "\234\323\314\313\314\370\312\312\313\375FJC\360\377\377\377\0UUU\3FI" "C\247\222\224\220\325\315\315\316\370\313\313\315\375MPJ\377\212\377" "\377\377\0\16UUU\6FJC\262\236\240\235\324\322\321\322\370\221\217\220" "\377\313\313\314\375FJC\360UUU\3FJB\245\223\225\222\325\323\323\324\370" "\224\223\223\377\313\313\314\372MPJ\377\211\377\377\377\0\17""333\5G" "ID\261\241\243\240\324\326\326\327\370\226\224\225\377\211\207\210\377" "\312\312\314\375FJD\360FJC\243\226\231\225\326\331\330\331\370\230\226" "\230\377\212\210\210\377\314\313\314\373MPJ\377\210\377\377\377\0\20" "333\5FJC\257\244\246\243\324\333\333\334\371\232\231\231\377\215\213" "\214\377\211\207\210\377\310\310\312\375FJC\372\230\232\227\324\336\336" "\336\370\235\233\233\377\215\213\214\377\212\210\210\377\312\312\313" "\372MPJ\377\207\377\377\377\0\21@@@\4EJB\255\247\251\246\324\341\341" "\341\371\236\235\235\377\221\220\220\377\215\213\214\377\211\207\210" "\377vxt\376\214\217\213\374\344\344\344\370\241\240\240\377\221\220\220" "\377\215\213\214\377\212\210\210\377\311\310\312\372MPJ\377\207\377\377" "\377\0\21FJC\241\233\235\232\316\346\346\347\370\243\242\241\377\225" "\224\224\377\221\220\220\377\215\213\214\377cda\377\230\231\226\376\344" "\344\344\376\245\244\244\377\225\224\224\377\221\220\220\377\215\213" "\214\377\212\210\210\377\301\300\302\371MPJ\377\207\377\377\377\0\21" "FJC\241\223\226\222\312\336\336\337\365\204\203\202\377~}}\377\177~~" "\377}{{\377TUQ\377\220\222\216\376\334\334\334\376\207\206\206\377}|" "|\377\177}}\377}{|\377hef\377\265\264\266\370MPJ\377\207\377\377\377" "\0\21@@@\4EJB\255\232\234\231\317\325\325\325\365lkk\377XVV\377ROP\377" "KHI\377oqm\376\202\205\200\374\330\330\331\364qoo\377XVV\377ROP\377L" "IJ\377\263\262\264\370MPJ\377\210\377\377\377\0\20""333\5FJC\257\227" "\231\226\316\314\314\315\365fdd\377ROP\377KHI\377\264\264\266\374FJC" "\372\214\217\213\320\320\320\320\365jhh\377ROP\377LIJ\377\263\262\264" "\370MPJ\377\211\377\377\377\0\17""333\5GID\261\223\225\222\316\303\303" "\305\364_]^\377KHI\377\264\264\266\374FJD\360FJC\243\211\214\210\321" "\307\306\307\364c`b\377LIJ\377\263\262\264\370MPJ\377\212\377\377\377" "\0\16UUU\6FJC\262\217\221\216\316\274\273\274\364XUV\377\264\264\266" "\374FJC\360UUU\3FJB\245\205\207\204\320\276\276\300\364\\Z[\377\263\262" "\264\370MPJ\377\213\377\377\377\0\15UUU\6EJC\264\214\215\213\315\263" "\262\264\364\264\264\266\374FJC\360\377\377\377\0UUU\3FIC\247\203\205" "\201\320\266\266\267\364\264\264\266\374MPJ\377\214\377\377\377\0\5I" "II\7FJC\266\207\211\207\315\262\262\264\350FJC\360\202\377\377\377\0" "\5UUU\3EJB\251~\200~\320\263\263\265\357JMG\377\213\377\377\377\0\7\0" "\0\0\1\0\0\0\10\30\30\30\26CGA\272HLE\377DHB\326\0\0\0#\202\0\0\0%\6" "\7\7\7&BE\77\261HLE\377EIB\342\0\0\0\15\0\0\0\6\210\377\377\377\0\21" "\0\0\0\2\0\0\0\14\0\0\0\25\0\0\0\35\0\0\0&\0\0\0/\0\0\0""7\0\0\0@\0\0" "\0I\0\0\0F\0\0\0=\0\0\0""4\0\0\0,\0\0\0#\0\0\0\32\0\0\0\21\0\0\0\5\210" "\377\377\377\0\17\0\0\0\1\0\0\0\5\0\0\0\12\0\0\0\20\0\0\0\27\0\0\0\37" "\0\0\0%\0\0\0(\0\0\0%\0\0\0\40\0\0\0\31\0\0\0\22\0\0\0\14\0\0\0\6\0\0" "\0\1\312\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_prev_year) #endif #ifdef __GNUC__ const guint8 osmo_stock_prev_year[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_prev_year[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1574) */ "\0\0\6>" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\316\377\377\377\0\4FJC\4FJC\246HLE\377FJC\340\203\377\377\377\0\4II" "I\7FJC\263HLE\377FJC\320\203\377\377\377\0\4FJC\4FJC\246HLE\377FJC\340" "\205\377\377\377\0\5FJC\3FJC\251\217\221\217\326\312\312\313\364JMG\377" "\202\377\377\377\0\5III\7FJC\266\231\233\231\324\310\310\312\357FJC\360" "\202\377\377\377\0\5FJC\3FJC\251\217\222\216\326\313\312\313\364JNG\377" "\204\377\377\377\0\24FJC\3FJC\247\222\224\220\325\315\315\316\370\313" "\313\315\375MPJ\377\377\377\377\0UUU\6EJC\264\235\236\234\323\314\313" "\314\370\312\312\313\375FJC\360\377\377\377\0FJC\3FJC\247\220\223\220" "\325\315\315\316\370\313\313\315\375MPJ\377\203\377\377\377\0\25FJC\3" "FJC\245\223\225\222\325\323\323\324\370\224\223\223\377\313\313\314\372" "MPJ\377UUU\6FJC\262\236\240\235\324\322\321\322\370\221\217\220\377\313" "\313\314\375FJC\360FJC\3FJC\245\223\225\222\326\322\322\324\371\224\223" "\223\377\313\313\314\372MPJ\377\202\377\377\377\0\177FJC\2FJC\243\226" "\230\225\326\331\330\331\370\230\226\230\377\212\210\210\377\314\313" "\314\373LOJ\377GID\261\241\243\240\324\326\326\327\370\226\224\225\377" "\211\207\210\377\312\312\314\375FJC\360FJC\243\225\227\224\326\331\331" "\332\370\230\226\230\377\212\210\210\377\313\313\314\373MPJ\377\377\377" "\377\0FJC\2FJC\242\230\232\226\324\336\336\336\370\235\233\233\377\215" "\213\214\377\212\210\210\377\307\307\310\372HLE\377\244\246\243\324\333" "\333\334\371\232\231\231\377\215\213\214\377\211\207\210\377\310\310" "\312\375FJC\372\227\231\226\325\336\336\336\370\235\233\233\377\215\213" "\214\377\212\210\210\377\312\312\313\372MPJ\377FJC\2FJC\240\232\234\230" "\325\344\344\344\370\241\240\240\377\221\220\220\377\215\213\214\377" "\211\207\207\377orm\375\230\231\226\377\341\341\341\371\236\235\235\377" "\221\220\220\377\215\213\214\377\210\207\207\377vxt\376\214\216\213\374" "\344\344\344\370\241\240\240\377\221\220\220\377\215\213\214\377\212" "\210\210\377\310\310\312\372MPJ\377FJC\221\217\220\215\320\350\350\350" "\370\245\244\244\377\225\224\224\377\221\220\220\377\215\213\214\377" "_a\\\377\243\244\241\376\342\342\343\377\243\242\241\377\225\224\224" "\377\221\220\220\377\215\213\214\377cda\377\227\231\226\376\344\344\344" "\376\245\244\244\377\225\224\224\377\221\220\220\377\215\213\214\377" "\212\210\210\377\300\300\302\371MPJ\377FJC\221\207\211\205\315\342\342" "\342\365\207\206\206\377}||\377\177}}\377}{|\377RTP\377\232\234\231\376" "\330\330\331\377\204\203\202\377~}}\377\177~~\377}{{\377TUQ\377\217\221" "\216\376\334\334\334\376\207\206\206\377}||\377\177}}\377}{|\377hef\377" "\264\264\266\370MPJ\377FJC\2FJC\240\217\221\215\321\330\330\331\364q" "oo\377XVV\377ROP\377LIJ\377hkf\375'\214\215\212\377\325\325\325\365l" "kk\377XVV\377ROP\377KHI\377oqn\376\202\204\200\374\330\330\331\365qo" "o\377XVV\377ROP\377LIJ\377\262\262\264\370MPJ\377\377\377\377\0FJC\2" "FJC\242\214\216\212\320\320\320\320\365jhh\377ROP\377LIJ\377\260\257" "\261\370HLE\377\227\231\226\316\314\314\315\365fdd\377ROP\377KHI\377" "\263\263\265\374FJC\372\213\215\212\321\320\320\320\365jhh\377ROP\377" "LIJ\377\262\262\264\370MPJ\377\202\377\377\377\0\26FJC\2FJC\243\211\213" "\210\321\307\306\307\364c`b\377LIJ\377\263\262\264\370LOJ\377GID\261" "\223\225\222\316\303\303\305\364_]^\377KHI\377\264\264\266\374FJC\360" "FJC\243\210\212\206\321\307\307\310\365c`b\377LIJ\377\262\262\264\370" "MPJ\377\203\377\377\377\0\25FJC\3FJC\245\205\207\204\320\276\276\300" "\364\\Z[\377\263\262\264\370MPJ\377UUU\6FJC\262\217\221\216\316\274\273" "\274\364XUV\377\264\264\266\374FJC\360FJC\3FJC\245\205\207\204\321\276" "\276\300\365\\Z[\377\262\262\264\370MPJ\377\204\377\377\377\0\24FJC\3" "FJC\247\203\205\201\320\266\266\267\364\264\264\266\374MPJ\377\377\377" "\377\0UUU\6EJC\264\214\215\213\315\263\262\264\364\264\264\266\374FJ" "C\360\377\377\377\0FJC\3FJC\247\201\204\201\320\266\266\267\364\264\264" "\266\374MPJ\377\205\377\377\377\0\5FJC\3FJC\251~\200~\320\263\263\265" "\357JMG\377\202\377\377\377\0\14III\7FJC\266\207\211\207\315\262\262" "\264\350FJC\360\0\0\0\0\377\377\377\0FJC\3FJC\251~\201}\320\264\263\265" "\357JNG\377\206\377\377\377\0\22\"$!\10BF\77\251DHA\377@D=\342\0\0\0" "\30\0\0\0\34\0\0\0\40\14\14\14)BF\77\276HLE\377DGA\327\0\0\0&\0\0\0#" "\0\0\0!\11\11\10!CF@\257HLE\377FJC\341\204\377\377\377\0\24\0\0\0\2\0" "\0\0\10\0\0\0\17\0\0\0\25\0\0\0\33\0\0\0\"\0\0\0(\0\0\0.\0\0\0""5\0\0" "\0;\0\0\0B\0\0\0H\0\0\0J\0\0\0C\0\0\0=\0\0\0""7\0\0\0""0\0\0\0*\0\0\0" "\40\0\0\0\13\206\377\377\377\0\6\0\0\0\3\0\0\0\7\0\0\0\13\0\0\0\20\0" "\0\0\26\0\0\0\33\203\0\0\0\37\7\0\0\0\35\0\0\0\33\0\0\0\27\0\0\0\23\0" "\0\0\17\0\0\0\13\0\0\0\4\312\377\377\377\0"}; #ifdef PRINTING_SUPPORT /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_print) #endif #ifdef __GNUC__ const guint8 osmo_stock_print[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_print[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1222) */ "\0\0\4\336" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\265\377\377\377\0\2\200\200\200\332{{{\377\213|||\377\1\177\177\177" "\351\212\377\377\377\0\2\210\210\210\366\365\365\365\377\212\377\377" "\377\377\2\374\374\374\377\206\206\206\377\212\377\377\377\0\4\222\222" "\222\365\372\372\372\377\352\352\352\377\257\257\260\377\206\236\236" "\237\377\4\257\257\260\377\346\346\346\377\377\377\377\377\217\217\217" "\377\212\377\377\377\0\3\233\233\233\365\373\373\373\377\356\356\356" "\377\211\353\353\353\377\2\377\377\377\377\231\231\231\377\212\377\377" "\377\0\5\245\245\245\365\374\374\374\377\363\363\363\377\361\361\361" "\377\263\263\264\377\204\243\243\244\377\1\262\262\262\377\202\361\361" "\361\377\2\377\377\377\377\243\243\243\377\212\377\377\377\0\3\246\246" "\246\364\375\375\375\377\370\370\370\377\211\367\367\367\377\2\377\377" "\377\377\243\243\243\377\212\377\377\377\0\4\247\247\247\363\376\376" "\376\377\374\374\374\377\275\275\276\377\206\251\251\252\377\4\272\272" "\273\377\374\374\374\377\377\377\377\377\243\243\243\377\212\377\377" "\377\0\3\246\246\246\363\374\374\374\377\360\360\360\377\211\356\356" "\356\377\2\377\377\377\377\243\243\243\377\212\377\377\377\0\4\244\244" "\244\362\371\371\371\377\330\330\330\377\241\241\242\377\203\224\224" "\225\377\203\223\223\224\377\4\242\242\243\377\321\321\321\377\377\377" "\377\377\243\243\243\377\207\377\377\377\0\6nnm\222hhh\375ggg\377\241" "\241\241\377\366\366\366\377\304\304\304\377\204\274\274\274\377\205" "\273\273\273\377\5\377\377\377\377\243\243\243\377ggg\377ggg\375lll\205" "\203\377\377\377\0\10gggH\213\213\213\366\370\370\370\377\372\372\372" "\377\222\222\222\377\324\324\324\377\321\321\321\377\316\316\316\377" "\202\315\315\315\377\202\313\313\313\377\12\311\311\311\377\310\310\310" "\377\307\307\307\377\306\306\306\377\336\336\336\377\216\216\216\377" "\360\360\360\377\353\353\353\377\205\205\205\367gggF\202\377\377\377" "\0\4oon\331\361\361\361\377\374\374\374\377\235\237\232\377\216\210\212" "\205\377\4\225\227\223\377\355\355\355\377\360\360\360\377kkk\337\202" "\377\377\377\0\"ggg\376\373\373\372\377\346\346\345\377\344\344\343\377" "\343\343\342\377\342\342\341\377\341\341\340\377\340\340\336\377\337" "\336\335\377\336\336\335\377\335\335\333\377\334\333\332\377\333\332" "\331\377\331\331\330\377\331\330\327\377\330\327\326\377\326\326\324" "\377\325\325\324\377\323\323\322\377\323\323\321\377\367\367\367\377" "hhh\374ggg\6\377\377\377\0ggg\377\365\365\364\377\331\331\327\377\327" "\327\325\377\325\325\323\377\324\324\322\377\322\322\320\377\320\320" "\316\377\317\316\314\377\207\211\210\377\202\203\205\204\377B\207\211" "\210\377\306\306\304\377\305\304\302\377\303\302\300\377\301\300\276" "\377\277\277\275\377\276\275\273\377\274\273\271\377\353\353\352\377" "hhh\374ggg\10\377\377\377\0ggg\377\360\360\360\377\331\331\327\377\327" "\327\325\377\325\325\323\377\324\324\322\377\322\322\320\377\320\320" "\316\377\317\316\314\377\315\315\313\377\313\313\311\377\312\311\307" "\377\310\307\305\377\306\306\304\377\305\304\302\377\303\302\300\377" "\301\300\276\377\277\277\275\377\276\275\273\377\274\273\271\377\343" "\342\342\377hhh\374ggg\10\377\377\377\0ggg\377\354\354\353\377\331\331" "\327\377\327\327\325\377\322\322\320\377\321\321\317\377\317\317\315" "\377\315\315\314\377\315\314\312\377\313\313\311\377\311\311\307\377" "\310\307\305\377\306\305\303\377\304\304\302\377\303\302\300\377\301" "\300\276\377\277\276\274\377\275\275\273\377\276\275\273\377\274\273" "\271\377\332\332\331\377hhh\374ggg\10\377\377\377\0ggg\377\350\350\346" "\377\331\331\327\377\327\327\325\377vxy\377xzz\377\204xz{\377\1xzz\377" "\206wyz\377\1vxy\377\202\274\273\271\377\26\322\321\320\377hhh\374gg" "g\10\377\377\377\0ggg\377\343\343\342\377\331\331\327\377\327\327\325" "\377vxy\377\216\215\207\377\220\217\211\377\227\226\217\377\236\235\226" "\377\245\244\235\377\254\253\244\377\263\262\252\377\272\271\261\377" "\301\277\270\377\310\306\276\377\276\274\264\377\253\251\242\377wyz\377" "\202\274\273\271\377\10\312\311\307\377hhh\374ggg\10\377\377\377\0hh" "h\375\327\327\325\377\335\335\333\377\333\333\331\377\216vxy\377\10\303" "\302\300\377\303\302\301\377\274\273\272\377hhh\374ggg\6\377\377\377" "\0nnn\233ggg\376\222ggg\377\2ggg\376lll\243\205\377\377\377\0\7\0\0\0" "\2\0\0\0\7\0\0\0\16\0\0\0\26\0\0\0\37\0\0\0(\0\0\0""1\202\0\0\0:\10\0" "\0\0""4\0\0\0,\0\0\0#\0\0\0\32\0\0\0\23\0\0\0\13\0\0\0\5\0\0\0\1\233" "\377\377\377\0"}; #endif /* PRINTING_SUPPORT */ /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_today) #endif #ifdef __GNUC__ const guint8 osmo_stock_today[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_today[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1617) */ "\0\0\6i" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\237\377\377\377\0\4\0\0\0\1vvsMxxv\207{{{\271\202\177\177~\343\4{{{" "\271xxv\207vvsM\0\0\0\1\215\377\377\377\0\3www,}}|\322\214\214\213\377" "\206\222\222\221\377\3\214\214\213\377}}|\322www,\213\377\377\377\0\4" "xxx\200\205\205\204\367\225\225\224\377\213\213\212\377\202\202\202\201" "\377\202\204\204\203\377\202\202\202\201\377\4\213\213\212\377\225\225" "\224\377\205\205\204\367xxx\200\211\377\377\377\0\7zzx\204\214\214\213" "\377\223\223\222\377\203\203\202\377\211\212\210\377\247\250\245\377" "\265\266\263\377\202\300\301\277\377\7\265\266\263\377\247\250\245\377" "\211\212\210\377\203\203\202\377\223\223\222\377\214\214\213\377{{y\203" "\207\377\377\377\0\6xxx2\206\206\205\371\223\223\222\377\202\202\201" "\377\232\233\231\377\276\300\275\377\202\302\303\300\377\202\275\276" "\273\377\202\302\303\300\377\6\276\300\275\377\232\233\231\377\202\202" "\201\377\223\223\222\377\206\206\205\371xxx2\205\377\377\377\0\11\300" "\300\300\4\200\200\177\325\225\225\224\377\203\203\202\377\234\235\233" "\377\302\303\300\377\301\303\300\377\244\245\243\377\211\212\210\377" "\202\202\202\201\377\11\211\212\210\377\244\245\243\377\301\303\300\377" "\302\303\300\377\234\235\233\377\203\203\202\377\225\225\224\377\200" "\200\177\325\300\300\300\4\204\377\377\377\0\2xxx]\216\216\215\377\202" "\213\213\212\377\5\277\300\275\377\301\302\277\377\222\222\220\377\202" "\202\201\377\204\204\203\377\202\216\216\215\377\5\204\204\203\377\202" "\202\201\377\222\222\220\377\301\302\277\377\277\300\275\377\202\213" "\213\212\377\2\216\216\215\377xxx]\204\377\377\377\0\11zzy\225\223\223" "\222\377\202\202\201\377\253\253\251\377\302\303\300\377\244\245\243" "\377\202\202\201\377\216\216\215\377\271\272\267\377\202\302\303\300" "\377\11\271\272\267\377\216\216\215\377\202\202\201\377\244\245\243\377" "\302\303\300\377\253\253\251\377\202\202\201\377\223\223\222\377zzy\225" "\204\377\377\377\0\24~~}\305\223\223\222\377\202\202\201\377\270\271" "\266\377\302\303\300\377\207\210\206\377\204\204\203\377\271\272\270" "\377\302\303\300\377\303\270\266\377\303\265\263\377\302\303\300\377" "\271\272\270\377\204\204\203\377\207\210\206\377\302\303\300\377\270" "\271\266\377\202\202\201\377\223\223\222\377~~}\305\204\377\377\377\0" "\24vvu\353\177\177\177\377eee\377\257\261\256\377\242\244\240\377QQQ" "\377ghg\377\260\261\257\377\267\246\243\377\302UT\377\310ed\377\303\261" "\256\377\302\303\300\377\221\221\220\377\202\202\201\377\272\273\270" "\377\301\303\300\377\205\205\204\377\222\222\221\377\201\201\200\355" "\204\377\377\377\0\24CCC\347\\\\\\\377JJI\377\250\252\247\377\230\232" "\227\377CCC\377[\\[\377\250\252\247\377\252\216\212\377\261\27\26\377" "\262\32\31\377\261\215\213\377\265\266\263\377\203\204\202\377\200\200" "\177\377\270\271\266\377\302\303\300\377\207\207\205\377\213\213\212" "\377TTS\351\204\377\377\377\0\24CCC\264]]]\377CCC\377\231\233\230\377" "\247\251\246\377JJI\377FFF\377\234\236\233\377\250\252\247\377\252\205" "\203\377\252\201\177\377\250\252\247\377\234\236\233\377FFF\377KKJ\377" "\256\257\254\377\246\247\245\377TTT\377___\377CCC\264\204\377\377\377" "\0\11DDD\200^^^\377CCC\377\204\206\204\377\250\252\247\377qrp\377CCC" "\377YZY\377\235\237\234\377\202\250\252\247\377\11\235\237\234\377YZ" "Y\377CCC\377qrp\377\250\252\247\377\204\206\204\377CCC\377^^^\377DDD" "\200\204\377\377\377\0\11CCCLVVV\377NNN\377RSR\377\245\247\244\377\244" "\246\243\377RSR\377CCC\377GGG\377\202\\\\[\377\11GGG\377CCC\377RSR\377" "\244\246\243\377\245\247\244\377RSR\377NNN\377VVV\377CCCL\204\377\377" "\377\0\11@@@\4DDD\314bbb\377DDD\377opo\377\250\252\247\377\242\244\241" "\377mml\377EEE\377\202CCC\377\11EEE\377mml\377\242\244\241\377\250\252" "\247\377opo\377DDD\377bbb\377DDD\314@@@\4\205\377\377\377\0\10AAA+HH" "H\370\\\\\\\377DDD\377pqo\377\244\246\243\377\250\252\247\377\245\247" "\244\377\202\222\224\222\377\10\245\247\244\377\250\252\247\377\244\246" "\243\377pqo\377DDD\377\\\\\\\377HHH\370AAA+\207\377\377\377\0\7CCCvS" "SS\377\\\\\\\377DDD\377RRR\377\203\205\203\377\232\233\231\377\202\247" "\251\246\377\7\232\233\231\377\203\205\203\377RRR\377DDD\377\\\\\\\377" "SSS\377CCCv\210\377\377\377\0\5\200\200\200\2CCC{III\371aaa\377LLL\377" "\202CCC\377\202III\377\202CCC\377\5LLL\377aaa\377III\372@@@\200+++\6" "\207\377\377\377\0\6\0\0\0\6\0\0\0\24\0\0\0\"%%%T\77\77\77\331UUU\377" "\206\\\\\\\377\7UUU\377\77\77\77\333\40\40\40^\0\0\0""0\0\0\0\"\0\0\0" "\24\0\0\0\4\205\377\377\377\0\23\0\0\0\17\0\0\0\36\0\0\0.\0\0\0=\3\3" "\3O$$$\215000\265888\327\77\77\77\363>>>\365777\334...\275\"\"\"\227" "\3\3\3_\0\0\0L\0\0\0=\0\0\0.\0\0\0\36\0\0\0\12\205\377\377\377\0\23\0" "\0\0\3\0\0\0\22\0\0\0\"\0\0\0""0\0\0\0=\0\0\0I\0\0\0T\0\0\0]\0\0\0d\0" "\0\0f\0\0\0d\0\0\0]\0\0\0T\0\0\0I\0\0\0=\0\0\0""0\0\0\0\37\0\0\0\12\0" "\0\0\1\207\377\377\377\0\16\0\0\0\1\0\0\0\7\0\0\0\20\0\0\0\32\0\0\0\"" "\0\0\0*\0\0\0""0\0\0\0""1\0\0\0-\0\0\0'\0\0\0\40\0\0\0\25\0\0\0\13\0" "\0\0\4\235\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_calculator) #endif #ifdef __GNUC__ const guint8 osmo_stock_calculator[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_calculator[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1626) */ "\0\0\6r" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\4\377\377\377\0RRR7PPP\341MMM\377\221LLL\377\2MNM\341MMM8\202\377\377" "\377\0\15PPP\333|}{\377\240\241\236\377\236\240\234\377\233\235\231\377" "\227\231\225\377\224\226\222\377\220\222\216\377\215\216\212\377\211" "\212\206\377\205\206\203\377\201\203\200\377}\177|\377\206|~{\377\3}" "\177|\377lmk\377NNN\337\202\377\377\377\0\13NNN\376\236\236\233\377\201" "\204~\377|\177y\377wzu\377rup\377mpk\377ikf\377dfa\377_a]\377Z\\X\377" "\211VXT\377\2~\177|\377LML\377\202\377\377\377\0\6MMM\377\233\235\231" "\377z}x\377llZ\377kkP\377klP\377\203kkP\377\202jkO\377\202jjO\377\202" "jkO\377\203jjO\377\4bcN\377VXT\377|~{\377LLL\377\202\377\377\377\0\5" "MML\377\226\230\224\377tvq\377jjN\377\242\243r\377\215\306\306\225\377" "\4\210\207m\377UWS\377|~{\377LLL\377\202\377\377\377\0\5LLL\377\221\223" "\217\377moj\377ijN\377\302\303\222\377\215\314\314\232\377\4\216\216" "r\377UWS\377|~{\377LLL\377\202\377\377\377\0\5LLL\377\214\215\212\377" "fhd\377iiM\377\305\305\224\377\215\314\314\232\377\4\214\213q\377UWS" "\377|~{\377LLL\377\202\377\377\377\0\5LLL\377\206\210\205\377_a]\377" "llX\377\222\222s\377\215\225\225v\377\4qqa\377VXT\377|~{\377LLL\377\202" "\377\377\377\0\2LLL\377uuu\377\222MMM\377\2uuu\377LLL\377\202\377\377" "\377\0\2LLL\375\317\317\316\375\211\305\305\303\375\13\303\303\301\375" "\277\277\276\375\273\273\272\375\267\267\266\375\263\263\262\375\257" "\257\256\375\253\253\252\375\246\247\246\375\242\243\242\375\262\263" "\262\375LLL\375\202\377\377\377\0\3LLL\375\317\317\316\375mpj\377\202" "tvs\377\3mpj\377\305\305\303\375mpj\377\202tvs\377\14loj\377\277\277" "\275\375kni\377suq\377rtq\377jmg\377\252\253\252\375pfg\376H:<\377lc" "c\376\260\260\260\375LLL\375\202\377\377\377\0\3LLL\375\317\317\316\375" "tvs\377\202\310\311\305\377\3tvs\377\305\305\303\375tvs\377\202\310\311" "\305\377\3sur\377\273\273\271\375suq\377\202\310\311\305\377\7qsp\377" "\246\247\246\375H:<\377\376\33\33\377G9;\377\254\254\254\375LLL\375\202" "\377\377\377\0\3LLL\375\317\317\316\375mpj\377\202tvs\377\21mpj\377\305" "\305\303\375mpj\377tvs\377sur\377kni\377\266\267\265\375jmh\377rtq\377" "qsp\377hkf\377\242\242\241\375lbc\376G9;\377h_`\376\251\251\251\375L" "LL\375\202\377\377\377\0\2LLL\375\317\317\316\375\205\305\305\303\375" "\17\303\303\301\375\276\277\275\375\272\273\271\375\266\266\265\375\262" "\262\261\375\256\256\255\375\252\252\251\375\246\246\245\375\242\242" "\241\375\235\236\235\375\231\232\231\375\225\226\225\375\221\222\221" "\375\246\246\246\375LLL\375\202\377\377\377\0\3LLL\375\317\317\316\375" "mpj\377\202tvs\377\21mpj\377\302\302\300\375kli\377sur\377suq\377jkh" "\377\256\256\255\375ilg\377qsp\377pro\377gje\377\231\232\231\375qsp\376" "jmh\377nqm\376\242\243\242\375LLL\375\202\377\377\377\0\3LLL\375\317" "\317\316\375tvs\377\202\310\311\305\377\3tvs\377\276\276\274\375sur\377" "\202\310\311\305\377\3rtq\377\251\252\251\375qsp\377\202\310\311\305" "\377\7pro\377\225\226\225\375ijg\377\310\311\305\377hif\377\237\237\237" "\375LLL\375\202\377\377\377\0\3LLL\375\317\317\316\375mpj\377\202tvs" "\377\10loi\377\272\272\270\375jkh\377rtq\377rtp\377hjf\377\245\246\245" "\375hkf\377\202pro\377\7fid\377\220\221\221\375lnj\377\310\311\305\377" "kmi\377\237\237\237\375LLL\375\202\377\377\377\0\26LLL\375\317\317\316" "\375\305\305\303\375\302\302\300\375\276\276\274\375\271\272\270\375" "\265\266\264\375\261\262\260\375\255\256\254\375\251\251\250\375\245" "\245\244\375\241\241\240\375\235\235\235\375\231\231\231\375\224\225" "\225\375\220\221\221\375\214\215\215\375kmi\377\310\311\305\377kmi\377" "\237\237\237\375LLL\375\202\377\377\377\0\3LLL\375\317\317\316\375lo" "j\377\202sur\377\3jmh\377\261\261\260\375ilg\377\202qsp\377\3hkf\377" "\234\235\234\375fjd\377\202oqn\377\7ehc\377\210\211\211\375kmi\377\310" "\311\305\377kmi\377\237\237\237\375LLL\375\202\377\377\377\0\3LLL\375" "\314\314\313\375sur\377\202\310\311\305\377\3rtq\377\255\255\254\375" "qsp\377\202\310\311\305\377\3pro\377\230\231\230\375oqn\377\202\310\311" "\305\377\7npm\377\204\205\205\375hif\377\310\311\305\377hif\377\237\237" "\237\375LLL\375\202\377\377\377\0\3OOO\363\301\301\277\375kni\377\202" "rtq\377\3ilg\377\250\251\250\375hkf\377\202pro\377\3fjd\377\224\225\224" "\375ehc\377\202npm\377\7dgb\377\204\205\205\375knk\376ikg\377knk\376" "\234\234\234\375MMM\363\202\377\377\377\0\16PPP\236\205\205\205\372\275" "\275\274\375\300\301\277\375\275\275\274\375\272\272\272\375\267\267" "\267\375\263\264\263\375\260\261\260\375\256\256\256\375\253\253\253" "\375\247\250\250\375\244\245\245\375\241\242\242\375\205\237\237\237" "\375\3\234\235\235\375wxx\372OOO\236\202\377\377\377\0\3LLL\33QQQ\242" "MMM\372\220LLL\375\3MMM\372NNN\242LLL\33\231\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_calendar) #endif #ifdef __GNUC__ const guint8 osmo_stock_calendar[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_calendar[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1501) */ "\0\0\5\365" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\205\377\377\377\0\3\231\232\230)||{\350aaa\23\211\377\377\377\0\2rr" "q\266\307\311\305\225\212\377\377\377\0\3\276\300\275\247\212\212\211" "\363aaat\210\377\377\377\0\4aaa\34llk\354\334\335\332\372\237\240\236" "\2\211\377\377\377\0\3\302\304\300\265lll\261aaa\225\210\377\377\377" "\0\4aaa8fff\307\303\305\302\343\242\243\241\31\205\377\377\377\0\2jl" "h\314WYU\377\202UWS\377\3\257\261\256\377\\][\377[\\Z\377\210UWS\377" "\4WYU\377YZX\377\242\244\240\377bd`\377\202UWS\377\5\\^Z\251\377\377" "\377\0rto\1egb\376\357\360\357\377\202\377\377\377\377\2\315\315\313" "\377\326\326\326\377\212\377\377\377\3779\340\340\340\377\241\242\240" "\377\356\356\356\377\377\377\377\377\355\356\355\377[]Y\345\377\377\377" "\0rup\20egc\377\372\372\372\377\376\376\376\377\374\374\374\377\313\314" "\312\377\255\255\255\377\344\344\344\377\365\365\365\377\364\364\364" "\377\362\362\362\377\360\360\360\377\357\357\357\377\356\356\356\377" "\354\354\354\377\352\352\352\377\342\342\342\377\270\270\270\377\203" "\203\201\377\325\325\325\377\357\357\357\377\367\367\367\377XZV\366\377" "\377\377\0sup!fhc\377\375\375\375\377\377\377\377\377\375\375\375\377" "\333\334\333\377ooo\377\311\311\311\377\365\365\365\377\363\363\363\377" "\361\361\361\377\357\357\357\377\355\355\355\377\353\353\353\377\352" "\352\352\377\350\350\350\377\341\341\341\377\232\232\232\377\200\201" "\200\377\335\335\335\377\353\353\353\377\374\374\374\377UWS\377UWS\7" "suq1fhd\377\202\377\377\377\377\26\376\376\376\377\372\372\372\377qq" "q\377\314\314\314\377\366\366\366\377\364\364\364\377\362\362\362\377" "\360\360\360\377\356\356\356\377\354\354\354\377\352\352\352\377\350" "\350\350\377\346\346\346\377\261\261\261\377mmm\377\345\345\345\377\351" "\351\351\377\377\377\377\377VXT\377UWS\33tvqBlok\376\203\377\377\377" "\377\25\375\375\375\377\373\373\373\377\372\372\372\377\367\367\367\377" "\317\320\320\377z~\177\377BHI\377[`a\377\244\246\247\377\353\353\353" "\377\351\351\351\377\347\347\347\377\352\352\352\377\356\356\356\377" "\346\346\346\377\350\350\350\377\377\377\377\377`b^\377UWS0tvqS~\200" "}\376\203\377\377\377\377\14\376\376\376\377\374\374\374\377\372\372" "\372\377\370\370\370\377\222\225\226\377afg\377\210\213\214\377LQS\377" "/57\377\323\324\324\377\352\352\352\377\350\350\350\377\204\346\346\346" "\377\5\377\377\377\377pro\374UWSFtwrc\217\221\216\376\204\377\377\377" "\377\14\375\375\375\377\373\373\373\377\371\371\371\377\345\346\346\377" "\365\365\365\377\363\363\363\377\314\315\315\377.46\377\230\233\234\377" "\353\353\353\377\351\351\351\377\347\347\347\377\203\346\346\346\377" "\5\375\375\375\377\204\205\202\374UWS[uwrt\241\242\237\377\204\377\377" "\377\377\14\375\375\375\377\374\374\374\377\372\372\372\377\370\370\370" "\377\366\366\366\377\364\364\364\377\301\302\303\377.46\377\272\273\274" "\377\354\354\354\377\352\352\352\377\350\350\350\377\203\346\346\346" "\377\5\374\374\374\377\226\230\225\376UWSpuxs\205\261\264\261\377\204" "\377\377\377\377\15\376\376\376\377\374\374\374\377\372\372\372\377\371" "\371\371\377\367\367\367\377\353\353\353\377QVW\377^bd\377\354\354\354" "\377\355\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377" "\202\346\346\346\377\5\372\372\372\377\251\252\250\376UWS\205vxs\226" "\301\302\300\377\205\377\377\377\377\14\375\375\375\377\373\373\373\377" "\371\371\371\377\354\354\354\377Z_`\377HMO\377\341\341\342\377\360\360" "\360\377\356\356\356\377\354\354\354\377\352\352\352\377\350\350\350" "\377\202\346\346\346\377\5\371\371\371\377\271\272\271\377VXT\233y{w" "\256\316\317\316\377\205\377\377\377\377\23\376\376\376\377\374\374\374" "\377\357\360\360\377\\`b\377OTV\377\340\340\341\377\362\362\362\377\360" "\360\360\377\356\356\356\377\355\355\355\377\353\353\353\377\351\351" "\351\377\347\347\347\377\346\346\346\377\367\367\367\377\310\310\307" "\377[\\Y\266|~y\307\332\332\331\377\206\377\377\377\377\22\375\375\375" "\377]bd\3775;=\377\236\240\241\377\252\255\255\377\251\254\254\377\305" "\307\307\377\357\357\357\377\355\355\355\377\353\353\353\377\351\351" "\351\377\350\350\350\377\346\346\346\377\365\365\365\377\324\324\323" "\377\\^Z\320|\177{\333\343\343\343\377\206\377\377\377\377\1\376\376" "\376\377\205.46\377\14}\201\202\377\360\360\360\377\356\356\356\377\354" "\354\354\377\352\352\352\377\350\350\350\377\346\346\346\377\364\364" "\364\377\337\337\336\377[]Y\352}\177z\353\353\353\353\377\207\377\377" "\377\377\21\375\375\375\377\373\373\373\377\371\371\371\377\367\367\367" "\377\365\365\365\377\363\363\363\377\361\361\361\377\357\357\357\377" "\355\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\362" "\362\362\377\350\350\350\377XZW\371{}y\366\362\362\362\377\210\377\377" "\377\377\203\376\376\376\377\203\375\375\375\377\202\374\374\374\377" "\203\373\373\373\377\6\374\374\374\377\360\360\357\377UWS\377z|w\374" "\243\244\241\377\256\257\255\377\207\252\253\251\377\6\251\253\251\377" "\251\252\250\377\251\251\250\377\251\251\247\377\250\251\247\377\250" "\251\246\377\202\247\250\246\377\1\246\250\246\377\202\246\247\245\377" "\6\246\246\244\377\226\230\226\377UWS\377opn\271\203\204\202\377\212" "\213\211\377\223\206\207\205\377\4\205\206\204\377jki\362hhh\217}}}\374" "\224\235\235\235\377\3\213\213\213\377nnn\345hhhg\226hhh\377\1mmm\307" "\230\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_close) #endif #ifdef __GNUC__ const guint8 osmo_stock_close[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_close[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1209) */ "\0\0\4\321" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\345\377\377\377\0\4\35\40\40Y+-.\355\"%%\317\30\40\40\40\206\377\377" "\377\0\4\30\40\40\40!$$\317%'(\354\35\40\40Y\211\377\377\377\0\6\35\40" "\40Y_bb\364\321\321\321\377\277\300\300\376011\351\30\40\40\40\204\377" "\377\377\0\6\30\40\40\40""133\352\271\273\272\376\311\311\311\377XZ[" "\364\35\40\40Y\210\377\377\377\0\7-/0\356\320\320\320\377\265\266\266" "\377\277\300\300\377\301\301\301\376022\352\30\40\40\40\202\377\377\377" "\0\7\30\40\40\40""133\352\274\275\275\376\265\266\265\377\247\247\247" "\377\307\307\307\377+-.\355\210\377\377\377\0\7&))\321\302\303\303\376" "\300\301\301\377\255\255\255\377\276\277\277\377\300\301\301\376233\352" "\202\30\40\40\40\7""233\352\275\275\275\376\266\267\266\377\237\240\237" "\377\264\265\264\377\267\270\270\376#&&\320\210\377\377\377\0\20\30\40" "\40\40""234\352\302\303\303\376\277\300\300\377\253\254\253\377\275\275" "\275\377\300\301\301\376344\352233\352\275\275\275\376\267\270\270\377" "\241\242\241\377\265\266\265\377\271\271\271\376.01\352\30\40\40\40\211" "\377\377\377\0\16\30\40\40\40""234\352\302\302\303\376\276\277\277\377" "\252\252\252\377\274\275\274\377\304\304\304\376\301\302\302\376\271" "\271\271\377\242\243\243\377\266\267\266\377\272\272\272\376./0\352\30" "\40\40\40\213\377\377\377\0\14\30\40\40\40""234\352\302\302\302\376\275" "\275\275\377\250\251\251\377\256\256\256\377\255\256\255\377\244\244" "\244\377\267\270\270\377\272\273\273\376-/0\351\30\40\40\40\215\377\377" "\377\0\12\30\40\40\40""344\352\303\303\303\376\261\262\262\377\247\247" "\247\377\245\246\246\377\253\254\253\377\261\262\261\376,./\351\30\40" "\40\40\216\377\377\377\0\12\30\40\40\40/00\351\277\300\277\376\253\255" "\254\377\237\240\237\377\213\214\214\377xyx\377\235\236\235\376)+,\351" "\30\40\40\40\215\377\377\377\0\14\30\40\40\40*+,\351\241\242\242\376" "\215\216\215\377ikj\377ttt\377qsr\377bcb\377\203\205\204\377\231\232" "\232\376(*+\351\30\40\40\40\213\377\377\377\0\16\30\40\40\40*+,\351\242" "\242\243\376\217\221\220\377lml\377\213\215\214\377\243\244\244\376\242" "\243\243\376\206\206\206\377_a`\377\202\203\202\377\230\230\230\376(" "*+\351\30\40\40\40\211\377\377\377\0\7\30\40\40\40*+,\351\242\243\243" "\376\221\222\222\377npo\377\215\216\215\377\237\240\240\376\202+,,\351" "\7\233\234\234\376\203\205\204\377]^]\377\200\201\200\377\226\226\226" "\376(*+\351\30\40\40\40\210\377\377\377\0\21#&&\320\242\243\243\376\223" "\224\224\377qrr\377\217\221\220\377\240\241\241\376*+,\352\22\30\30+" "\21\27\27,*+,\352\233\233\234\376\202\203\202\377Z\\Z\377~\177~\377\224" "\225\225\376#&&\321\0\0\0\2\206\377\377\377\0\23\0\0\0\1&()\355\262\262" "\262\377\200\201\201\377\221\222\222\377\242\242\243\376*+,\353\15\21" "\21;\0\0\0#\0\0\0%\14\20\20@)+,\354\232\233\233\376\200\201\200\377g" "hg\377\243\244\243\377&((\356\0\0\0\5\0\0\0\2\205\377\377\377\0\11\0" "\0\0\1\34\37\37\\MOO\364\262\263\262\377\241\242\242\376),-\354\13\17" "\17E\0\0\0""2\0\0\0""7\202\0\0\0;\11\12\15\15P(*,\356\227\231\230\376" "\246\246\246\377FII\364\32\34\34c\0\0\0\10\0\0\0\3\0\0\0\1\204\377\377" "\377\0\11\0\0\0\1\0\0\0\4\33\36\36^!#$\355\37##\323\15\21\21<\0\0\0)" "\0\0\0""1\0\0\0""7\202\0\0\0;\11\0\0\0""7\12\16\16K\37\"\"\327!#$\356" "\31\33\33h\0\0\0\16\0\0\0\10\0\0\0\3\0\0\0\1\204\377\377\377\0\11\0\0" "\0\1\0\0\0\2\0\0\0\5\0\0\0\10\0\0\0\15\0\0\0\23\0\0\0\31\0\0\0\37\0\0" "\0#\202\0\0\0%\10\0\0\0\"\0\0\0\35\0\0\0\30\0\0\0\22\0\0\0\15\0\0\0\10" "\0\0\0\4\0\0\0\2\207\377\377\377\0\7\0\0\0\1\0\0\0\3\0\0\0\4\0\0\0\6" "\0\0\0\11\0\0\0\13\0\0\0\15\202\0\0\0\16\7\0\0\0\15\0\0\0\12\0\0\0\10" "\0\0\0\6\0\0\0\4\0\0\0\2\0\0\0\1\212\377\377\377\0\202\0\0\0\1\202\0" "\0\0\2\204\0\0\0\3\202\0\0\0\2\202\0\0\0\1\235\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_preferences) #endif #ifdef __GNUC__ const guint8 osmo_stock_preferences[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_preferences[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1306) */ "\0\0\5""2" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\260\377\377\377\0\4jlg4klh\332^`[\377XZV\377\222UWS\377\5\\^Z\332UW" "S4qso\314\320\321\317\377\376\376\376\377\223\377\377\377\377\5\321\322" "\321\377^`\\\314kmh\375\375\375\375\377\352\352\352\377\205\347\347\347" "\377\2\346\346\346\377\333\333\333\377\213\321\321\321\377\6\324\324" "\324\377\375\375\375\377[]Y\375jlg\377\377\377\377\377\347\347\347\377" "\207\346\346\346\377\2\343\343\343\377\322\322\322\377\212\317\317\317" "\377\5\376\376\376\377`b^\377jlg\377\377\377\377\377\351\351\351\377" "\202\347\347\347\377\206\346\346\346\377\1\337\337\337\377\212\317\317" "\317\377\5\376\376\376\377`b^\377jlg\377\377\377\377\377\352\352\352" "\377\204guy\377\203\346\346\346\377\204333\377\203\317\317\317\377\204" "guy\377\6\317\317\317\377\376\376\376\377`b^\377jlg\377\377\377\377\377" "\353\353\353\377\204amp\377\1\350\350\350\377\202\347\347\347\377\204" "333\377\203\317\317\317\377\204amp\377\6\317\317\317\377\376\376\376" "\377`b^\377jlg\377\377\377\377\377\355\355\355\377\204V_b\377\1\351\351" "\351\377\202\350\350\350\377\204333\377\203\317\317\317\377\204V_b\377" "\6\317\317\317\377\376\376\376\377`b^\377jlg\377\377\377\377\377\356" "\356\356\377\204KQS\377\202\352\352\352\377\2\201\201\200\377\205\204" "\203\377\202\212\211\210\377\4\207\206\205\377\177\177~\377\316\316\316" "\377\317\317\317\377\204KQS\377\6\317\317\317\377\376\376\376\377`b^" "\377jlg\377\377\377\377\377\357\357\357\377\204@CD\377\4\354\354\354" "\377\353\353\353\377\211\210\207\377\373\373\373\377\202\364\363\363" "\377\4\373\373\373\377\226\225\225\377\315\315\315\377\320\320\320\377" "\204@CD\377\6\317\317\317\377\376\376\376\377`b^\377jlg\377\377\377\377" "\377\360\360\360\377\204556\377\4\355\355\355\377\354\354\354\377\211" "\210\207\377\367\366\366\377\202\330\325\323\377\5\362\361\360\377\231" "\230\230\377\317\317\317\377\177\177~\377\205\204\203\377\202\212\211" "\210\377\7\207\206\205\377\177\177~\377\374\374\374\377`b^\377jlg\377" "\377\377\377\377\361\361\361\377\204333\377\202\356\356\356\377\2\211" "\210\207\377\373\373\373\377\202\360\357\357\377\5\372\372\371\377\227" "\226\226\377\320\320\320\377\207\206\205\377\373\373\373\377\202\364" "\363\363\377\10\373\373\373\377\226\225\225\377\371\371\371\377`b^\377" "jlg\377\377\377\377\377\202\202\201\377\205\204\203\377\202\212\211\210" "\377\5\207\206\205\377\202\202\201\377\355\355\355\377\202\202\201\377" "\220\220\217\377\202\230\227\226\377\5\224\224\223\377\177\177~\377\323" "\323\323\377\207\206\205\377\367\366\366\377\202\330\325\323\377\10\362" "\361\360\377\231\230\230\377\372\372\372\377`b^\377jlg\377\377\377\377" "\377\211\210\207\377\373\373\373\377\202\364\363\363\377\14\373\373\373" "\377\230\227\227\377\355\355\355\377\360\360\360\377PXZ\377PWZ\377OW" "Z\377OWY\377\331\331\331\377\327\327\327\377\207\206\205\377\373\373" "\373\377\202\360\357\357\377\10\372\372\371\377\227\226\226\377\372\372" "\372\377`b^\377jlg\377\377\377\377\377\211\210\207\377\367\366\366\377" "\202\330\325\323\377\4\362\361\360\377\233\232\232\377\356\356\356\377" "\361\361\361\377\202\\gj\377\6[fj\377[fi\377\334\334\334\377\331\331" "\331\377\200\200\177\377\220\217\216\377\202\227\226\225\377\10\224\223" "\222\377\177\177~\377\374\374\374\377_a]\377jlg\377\377\377\377\377\211" "\210\207\377\373\373\373\377\202\360\357\357\377\4\372\372\371\377\231" "\230\230\377\357\357\357\377\363\363\363\377\204guy\377\3\336\336\336" "\377\333\333\333\377\331\331\331\377\204333\377\7\325\325\325\377\376" "\376\376\377_a]\377jlg\377\377\377\377\377\202\202\201\377\226\225\224" "\377\202\235\234\233\377\4\232\231\230\377\201\201\200\377\363\363\363" "\377\364\364\364\377\204guy\377\4\340\340\340\377\336\336\336\377\334" "\334\334\377\226\226\226\377\202\225\225\225\377\6\224\224\224\377\327" "\327\327\377\376\376\376\377^`\\\377jlg\377\377\377\377\377\202\371\371" "\371\377\1\370\370\370\377\202\367\367\367\377\202\366\366\366\377\12" "\365\365\365\377\343\345\345\377\342\344\344\377\333\335\335\377\325" "\327\327\377\343\343\343\377\341\341\341\377\337\337\337\377\334\334" "\334\377\332\332\332\377\203\330\330\330\377\6\376\376\376\377^`\\\377" "kmh\375\376\376\376\377\373\373\373\377\372\372\372\377\202\371\371\371" "\377\202\370\370\370\377\202\367\367\367\377\202\366\366\366\377\16\365" "\365\365\377\353\353\353\377\346\346\346\377\345\345\345\377\342\342" "\342\377\337\337\337\377\335\335\335\377\334\334\334\377\336\336\336" "\377\341\341\341\377\375\375\375\377Y[W\375sup\314\326\327\325\377\224" "\377\377\377\377\6\324\325\324\377^`]\314jlg4lni\332^`[\377XZV\377\222" "UWS\377\2]_[\332UWS4\230\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_tasks) #endif #ifdef __GNUC__ const guint8 osmo_stock_tasks[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_tasks[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1877) */ "\0\0\7m" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\1\0\0\0\2\227\377\377\377\0\15\0\0\0\2{{{nzzz\352vvv\354sss\354nnn\354" "kkk\354ggg\354ccc\354___\354[[[\354XXX\354TTT\354\204SSS\354\2ded\357" "PPP\210\205\377\377\377\0\4\0\0\0\2yyy\375\334\334\334\377\341\341\341" "\377\202\337\337\337\377\7\336\336\336\377\334\334\334\377\333\333\333" "\377\331\331\331\377\330\330\330\377\327\327\327\377\325\325\325\377" "\202\324\324\324\377\202\323\323\323\377\3\257\260\257\377zzz\375RRR" "\235\204\377\377\377\0\5\0\0\0\2www\377\363\363\363\377\362\362\362\377" "\361\361\361\377\202\360\360\360\377\16\357\357\357\377\356\356\356\377" "\355\355\355\377\354\354\354\377\353\353\353\377\352\352\352\377\351" "\351\351\377\350\350\350\377\347\347\347\377\346\346\346\377\254\255" "\253\377\357\357\357\377\202\202\202\375UUU\257\203\377\377\377\0\2\0" "\0\0\2vvv\377\202\363\363\363\377\1\213\212\213\377\205}|}\377L\213\212" "\213\377\354\354\354\377\353\353\353\377\352\352\352\377\351\351\351" "\377\350\350\350\377\347\347\347\377\246\247\246\377\375\375\375\377" "\353\353\353\377\213\213\213\375UUU\276\0\0\0\1\377\377\377\0\0\0\0\2" "uuu\377\364\364\364\377\363\363\363\377}|}\377\362\362\362\377\361\361" "\361\377\360\360\360\377\357\357\357\377\356\356\356\377}|}\377\354\354" "\354\377\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350" "\377\347\347\347\377\240\241\240\377\343\343\343\377\341\341\341\377" "\310\311\311\377\210\211\211\376XXX\305\377\377\377\0\0\0\0\2sss\377" "\365\365\365\377\364\364\364\377}|}\377\363\363\363\377\362\362\362\377" "\361\361\361\377\360\360\360\377\357\357\357\377}|}\377\355\355\355\377" "\354\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\350" "\350\350\377\247\250\247\377\216\220\220\377\207\212\212\377\200\203" "\204\377}\200\201\377^__\376\377\377\377\0\0\0\0\2qqq\377\366\366\366" "\377\365\365\365\377}|}\377\364\364\364\377\363\363\363\377\362\362\362" "\377\361\361\361\377\360\360\360\377}|}\377\356\356\356\377\353\353\353" "\377\351\351\351\377\203\350\350\350\377\1\346\346\346\377\204\341\341" "\341\377\4KKK\377\377\377\377\0\0\0\0\2nnn\377\202\366\366\366\377\2" "}|}\377\364\364\364\377\202\363\363\363\377\5\362\362\362\377\361\361" "\361\377}|}\377\357\357\357\377\263\263\262\377\202xxw\377\1wwv\377\202" "vvu\377\1\256\256\256\377\203\346\346\346\377\26LLL\377\377\377\377\0" "\0\0\0\2kkk\377\367\367\367\377\366\366\366\377}|}\377\365\365\365\377" "\364\364\364\377\363\363\363\377\362\362\362\377\361\361\361\377}|}\377" "\357\357\357\377\356\356\356\377\355\355\355\377\354\354\354\377\353" "\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\347\347" "\347\377\202\346\346\346\377\7LLL\377\377\377\377\0\0\0\0\2iii\377\370" "\370\370\377\367\367\367\377\214\213\214\377\205}|}\377\12\213\212\213" "\377\360\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377" "\354\354\354\377\353\353\353\377\352\352\352\377\350\350\350\377\347" "\347\347\377\202\346\346\346\377\6LLL\377\377\377\377\0\0\0\0\2eee\377" "\371\371\371\377\370\370\370\377\202\367\367\367\377\24\366\366\366\377" "\365\365\365\377\364\364\364\377\363\363\363\377\362\361\361\377\304" "UV\377\253\14\14\377\335\263\263\377\355\355\355\377\354\354\354\377" "\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\347" "\347\347\377\346\346\346\377LLL\377\377\377\377\0\0\0\0\2bbb\377\202" "\371\371\371\377\3\370\370\370\377\367\367\367\377\366\366\366\377\202" "\365\365\365\377\24\362\361\361\377\303QQ\377\303\35\35\377\304SS\377" "\357\357\357\377\356\356\356\377\355\355\355\377\354\354\354\377\353" "\353\353\377\352\352\352\377\351\351\351\377\347\347\347\377\346\346" "\346\377LLL\377\377\377\377\0\0\0\0\2___\377\372\372\372\377\370\365" "\365\377\214\207\210\377\203}|}\377'}{|\377\237*+\377\312\40!\377\275" "77\377\357\354\354\377\360\360\360\377\357\357\357\377\356\356\356\377" "\354\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\350" "\350\350\377\347\347\347\377LLL\377\377\377\377\0\0\0\0\2[[[\377\373" "\373\373\377\27344\377\257\23\23\377\306PP\377\361\342\342\377\366\364" "\364\377\303LL\377\326)+\377\254\32\32\377\355\337\337\377\362\362\362" "\377\360\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377" "\354\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\347" "\347\347\377LLL\377\202\377\377\377\0\26XXX\377\373\373\373\377\363\343" "\343\377\253\32\33\377\335()\377\274**\377\300BC\377\332,.\377\301()" "\377\205ef\377\363\363\363\377\362\362\362\377\361\361\361\377\360\360" "\360\377\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353" "\377\352\352\352\377\351\351\351\377\350\350\350\377LLL\377\202\377\377" "\377\0\1TTT\377\202\374\374\374\377\11\201mn\377\277()\377\35213\377" "\341-.\377\333*+\377\321yy\377}|}\377\364\364\364\377\221\221\220\377" "\206uut\377\4\210\210\207\377\352\352\352\377\351\351\351\377LLL\377" "\202\377\377\377\0\1QQQ\377\202\375\375\375\377\23}|}\377\326\204\204" "\377\327)*\377\35535\377\274*+\377\365\360\360\377}|}\377\365\365\365" "\377\363\363\363\377\362\362\362\377\361\361\361\377\360\360\360\377" "\357\357\357\377\356\356\356\377\355\355\355\377\353\353\353\377\352" "\352\352\377\351\351\351\377LLL\377\202\377\377\377\0\1MMM\377\202\375" "\375\375\377\23}|}\377\373\370\370\377\274/0\377\273!!\377\334\235\235" "\377\367\367\367\377}|}\377\365\365\365\377\364\364\364\377\363\363\363" "\377\362\362\362\377\361\361\361\377\357\357\357\377\356\356\356\377" "\355\355\355\377\354\354\354\377\353\353\353\377\352\352\352\377LLL\377" "\202\377\377\377\0\4LLL\377\375\375\375\377\376\376\376\377\215\214\215" "\377\205}|}\377\15\214\213\214\377\366\366\366\377\365\365\365\377\363" "\363\363\377\362\362\362\377\361\361\361\377\360\360\360\377\357\357" "\357\377\356\356\356\377\354\354\354\377\353\353\353\377\352\352\352" "\377LLL\377\202\377\377\377\0\2LLL\377\374\374\374\377\202\376\376\376" "\377\22\375\375\375\377\374\374\374\377\373\373\373\377\372\372\372\377" "\370\370\370\377\367\367\367\377\366\366\366\377\365\365\365\377\364" "\364\364\377\363\363\363\377\362\362\362\377\360\360\360\377\357\357" "\357\377\356\356\356\377\355\355\355\377\354\354\354\377\353\353\353" "\377LLL\377\202\377\377\377\0\26LLL\377\363\363\363\377\375\375\375\377" "\376\376\376\377\375\375\375\377\374\374\374\377\373\373\373\377\372" "\372\372\377\371\371\371\377\370\370\370\377\367\367\367\377\365\365" "\365\377\364\364\364\377\363\363\363\377\362\362\362\377\361\361\361" "\377\360\360\360\377\357\357\357\377\355\355\355\377\354\354\354\377" "\343\343\343\377LLL\377\202\377\377\377\0\2VVV\222LLL\376\222LLL\377" "\2LLL\376TTT\222\231\377\377\377\0"}; #ifdef CONTACTS_ENABLED /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1457) */ "\0\0\5\311" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\310\377\377\377\0\4ilg\77kni\337]`[\377WYU\377\222UWS\377\4\\^Z\337" "UWS\77qto\332\340\341\337\377\203\377\377\377\377\1\377\377\376\377\220" "\376\376\376\377\21\331\332\327\377\\^Z\332ilg\377\377\377\376\377\366" "\366\365\377\362\362\361\377\357\360\356\377\355\356\353\377\352\353" "\350\377\347\351\345\377\345\347\342\377\342\344\337\377\337\342\335" "\377\335\340\332\377\332\335\327\377\327\333\324\377\325\331\321\377" "\206\323\327\317\377\26\324\330\321\377\374\374\374\377\\^Z\377ilg\377" "\377\377\377\377\365\365\363\377\362\362\361\377\357\360\356\377\355" "\356\353\377\352\353\350\377\347\351\345\377\345\347\342\377\342\344" "\337\377\337\342\334\377\335\337\331\377\332\335\327\377\327\333\324" "\377\325\330\321\377\254\253\232\377zva\377{wc\377\265\266\245\377\203" "\323\327\317\377Z\373\373\373\377`b^\377ilg\377\377\377\377\377\240\240" "\237\377^^]\377\254\255\254\377\200\200\177\377\311\312\307\377]^\\\377" "\213\214\211\377\252\254\250\377\\][\377\252\253\247\377\313\316\311" "\377\325\331\321\377ZUE\377D@>\377C@D\377C@C\377DA>\377e_L\377\312\316" "\307\377\323\327\317\377\373\373\373\377`b^\377ilg\377\377\377\377\377" "\235\235\234\377LLK\377``_\377rrq\377\226\227\225\377YZX\377ijh\377q" "rp\377120\377stq\377\246\250\243\377qkX\377FCB\377FBF\377CAD\377GDD\377" "KFE\377>=@\377miY\377\323\327\317\377\373\373\373\377`b^\377ilg\377\377" "\377\377\377\364\364\363\377\362\362\360\377\357\360\355\377\354\355" "\352\377\352\353\350\377\347\351\345\377\344\346\342\377\342\344\337" "\377\337\342\334\377\334\337\331\377\332\335\326\377C\77;\377JFA\377" "j]M\377\235\205`\377\256\222g\377\272\234m\377JFA\377C\77<\377\322\325" "\316\377\373\373\373\377`b^\377ilg\377\377\377\377\377\364\364\363\377" "\361\362\360\377\357\360\355\377\354\355\352\377\351\353\347\377\347" "\351\345\377\344\346\342\377\342\344\337\377\337\341\334\377\334\337" "\331\377\332\335\326\377~kH\377\341\272}\377\353\307\205\377\203\353" "\307\206\377\10\260\227l\377989\377\304\310\301\377\373\373\373\377`" "b^\377ilg\377\377\377\377\377\251\251\250\377\205uut\377C\207\207\205" "\377\341\344\337\377\337\341\334\377\334\337\331\377\331\335\326\377" "\244\214N\377\337\266y\377\351\304\203\377\352\307\206\377\353\307\206" "\377\352\306\205\377\335\266w\377\231\207V\377\323\327\317\377\373\373" "\373\377`b^\377ilg\377\377\377\377\377\364\364\363\377\361\362\360\377" "\357\357\355\377\354\355\352\377\351\353\347\377\347\350\344\377\344" "\346\341\377\341\344\337\377\337\341\334\377\334\337\331\377\331\335" "\326\377\310\307\263\377\245\212A\377\337\265y\377\340\265x\377\341\267" "z\377\336\265w\377\240\207>\377\312\313\272\377\323\327\317\377\373\373" "\373\377`b^\377ilg\377\377\377\377\377\364\364\363\377\361\362\360\377" "\356\357\355\377\354\355\352\377\351\353\347\377\346\350\344\377\344" "\346\341\377\341\344\336\377\337\341\334\377\334\337\331\377\331\334" "\326\377\207\247l\377\225\247|\377\230\207F\377\235\205>\377\237\206" "@\377\235\214N\377\205\242n\377\263\302\245\377\323\327\317\377\373\373" "\373\377`b^\377ilg\377\377\377\377\377\211\211\210\377\207uut\3775\203" "\203\201\377\334\337\331\377\331\334\326\377Y\210/\377l\225^\377\337" "\343\332\377O\201:\377y\235i\377\322\332\313\377l\232d\377b\220>\377" "\323\327\317\377\373\373\373\377`b^\377ilg\377\377\377\377\377\364\364" "\362\377\361\361\357\377\356\357\355\377\354\355\352\377\351\352\347" "\377\346\350\344\377\344\346\341\377\341\343\336\377\336\341\333\377" "\334\337\330\377\331\334\326\377W\214-\377U\2200\377r\241Q\377O\213%" "\377P\214'\377p\240N\377e\234M\377f\227F\377\323\327\317\377\373\373" "\373\377`b^\377ilg\377\377\377\377\377\363\364\362\377\361\361\357\377" "\356\357\355\377\353\355\352\377\351\352\347\377\346\350\344\377\344" "\346\341\377\341\343\336\377\336\341\333\377\334\337\330\377\331\334" "\325\377W\214(\377g\2465\377\204[\237\35\377\10}\264d\377q\234J\377\323" "\327\317\377\373\373\373\377`b^\377ilg\377\377\377\377\377\211\211\210" "\377\206uut\377#}}|\377\334\337\331\377\333\336\330\377\331\334\325\377" "\221\257u\377[\225'\377p\260>\377l\2575\377l\2577\377y\264W\377h\233" "F\377\260\300\240\377\323\327\317\377\373\373\373\377`b^\377ilg\377\377" "\377\377\377\363\363\362\377\361\361\357\377\356\357\354\377\353\354" "\351\377\351\352\346\377\346\350\344\377\343\345\341\377\341\343\336" "\377\336\341\333\377\333\336\330\377\331\334\325\377\326\332\322\377" "\237\267\211\377a\2234\377e\226<\377f\227>\377h\225>\377\303\315\271" "\377\202\323\327\317\377\20\373\373\373\377`b^\377ilg\377\377\377\376" "\377\364\364\363\377\360\361\357\377\356\357\354\377\353\354\351\377" "\351\352\346\377\346\350\344\377\343\345\341\377\341\343\336\377\336" "\341\333\377\333\336\330\377\331\334\325\377\326\332\322\377\207\323" "\327\317\377\5\324\330\321\377\374\374\374\377\\^Z\377qto\332\340\341" "\337\377\202\377\377\377\377\1\377\377\376\377\221\376\376\376\377\6" "\331\332\327\377\\^Z\332ilg\77kni\337]`[\377WYU\377\222UWS\377\2\\^Z" "\337UWS\77\260\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts_add) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts_add[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts_add[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1557) */ "\0\0\6-" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\205\377\377\377\0\7aS#GNG/\330B>5\371@=4\376@=5\373MF/\332UK)d\217\377" "\377\377\0\13{e\26\3OG.\304778\377><=\377A\77B\377B\77C\377B\77B\377" "><=\377778\377OG-\313o]\34\6\215\377\377\377\0\13VL*\265878\377DAE\377" "IEI\377HDH\377FBF\377GCG\377HDH\377EBE\377:99\377LF/\316\214\377\377" "\377\0\6YN'V778\377B@C\377B\77B\377@>@\377779\377\202668\377\5""779\377" "FCF\377EBE\377768\377VL(f\213\377\377\377\0\15SJ,\305879\377;:;\377B" "@>\377\202tW\377\253\223c\377\303\246l\377\275\241j\377f\\J\377><=\377" "HDH\377><>\377HC1\341\213\377\377\377\0\15IC2\362GD\77\377\220~Y\377" "\307\252u\377\325\272\211\377\332\304\226\377\335\305\230\377\336\304" "\225\377\312\262\206\377MIC\377;::\377:9:\377=;6\374\213\377\377\377" "\0\4k[#\356\255\224d\377\335\302\221\377\346\317\245\377\202\351\324" "\255\377\7\346\320\246\377\342\311\232\377\335\302\215\377\323\265}\377" "\244\214_\377rcF\377B>3\375\213\377\377\377\0\15\201j\35\271\275\241" "b\377\336\302\217\377\341\310\230\377\343\313\235\377\343\313\236\377" "\342\310\231\377\336\303\220\377\332\275\205\377\326\265x\377\321\256" "k\377\260\220E\377\177h\33\310\213\377\377\377\0\4{e\26s\224{1\366\332" "\273\203\377\334\300\212\377\202\336\302\216\377\7\334\300\213\377\332" "\274\204\377\326\267z\377\322\260o\377\316\251c\377\225z-\367|f\27\201" "\213\377\377\377\0\4{e\26\13\177h\32\344\262\226P\376\327\267{\377\202" "\330\271\177\377\7\327\270|\377\325\264v\377\322\260n\377\317\252d\377" "\263\222H\377}g\32\353{e\26\16\214\377\377\377\0\15HI2\\yd\33\377\242" "\207@\377\321\256m\377\323\260o\377\322\257m\377\320\254h\377\313\247" "`\377\244\206<\377|g\33\377$3H\327\0\0U\3""5o\4\1\2035o\4\10\1""5o\4" "\1\206\377\377\377\0\23\0\34U\11\1\37[\347\237\244\244\377\216}A\377" "~h\35\377\212r*\377\234\2004\377\213s*\377~h\35\377\204s5\377\274\275" "\262\3774Kx\370\2\40[\2017q\4\331I\177\32\363O\203\"\364G}\30\3636q\4" "\3345o\4\1\205\377\377\377\0\23\0\35^O\40;j\363\264\273\300\377\355\355" "\351\377\332\326\305\377\233\227|\377LK,\377\217\214q\377\330\324\303" "\377\355\354\350\377\227\241\250\377\213\227\246\377\4!]\361=u\14\365" "\267\323\231\377\262\320\221\377\267\323\230\377E|\26\3625o\4\10\205" "\377\377\377\0\23\2\36[\250Vj\211\376r\203\223\377\347\350\345\377\332" "\334\333\3770Ha\377\40:V\377(A\\\377\314\320\322\377\355\355\351\377" "DZp\377\205\224\243\377/Hy\366@w\22\370\263\321\222\377\222\274c\377" "\262\320\221\377J\200\34\3645o\4\10\205\377\377\377\0\5\1\37]\356\211" "\231\255\377Kd\200\377\210\230\246\377\207\226\246\377\203-Jj\377\13" "o\202\225\377\240\254\266\377-Kg\377f}\217\377]r\217\371@w\23\371\263" "\321\222\377\222\274c\377\262\320\221\377J\200\34\3645o\4\17\2025o\4" "\10\1""5o\4\2\202\377\377\377\0\5\3!^\347\221\242\270\377Tp\217\377;" "[\177\377Kh\211\377\203;[\177\377\12Hf\206\3778o\24\377By\31\377J\177" "\40\377I~\37\377Z\215.\370\261\317\220\377\222\274c\377\257\316\215\377" "g\227;\362\202M\201\37\364\2G}\30\3636q\4\342\202\377\377\377\0\3\5$" "`\320\206\233\266\377j\210\250\377\206Hl\224\377\2Cy\30\377\266\323\230" "\377\202\262\320\221\377\11\260\317\216\377\234\303r\377\222\274c\377" "\233\302p\377\253\314\207\377\247\311\200\377\245\310\177\377\263\321" "\222\377C{\24\362\202\377\377\377\0\4\5#_\251[t\234\373\244\272\321\377" "[\202\253\377\205U}\250\377\10Cz\31\377\235\303s\377w\254=\377z\256A" "\377s\2527\377i\244)\377_\235\33\377U\227\14\377\203Q\225\7\377\2\204" "\264O\377Ay\20\363\202\377\377\377\0\13\0\40`\30\3!_\352w\216\260\376" "\252\276\324\377\203\241\301\377p\222\270\377o\221\267\377m\220\266\377" "n\221\267\377\77v\22\377\215\272]\377\202\206\265R\377\5\203\263N\377" "c\240\40\377Q\225\7\377`\236\34\377\202\263M\377\202\206\265R\377\2\216" "\272^\377>w\15\362\203\377\377\377\0\21\0\34[-\3\"_\337,G{\366\177\226" "\266\377\226\253\306\377\236\264\314\377\236\262\314\377\231\255\307" "\377=s\32\376:r\16\377=u\17\371=v\15\365O\205\36\362\203\264N\377Q\225" "\7\377\200\262J\377S\211#\362\202=v\15\365\2;u\12\3656q\4\337\204\377" "\377\377\0\21\0\0\0\14\0\27Kc\4!Z\276\6#]\343\2\40]\371\4\"^\362\6\"" "\\\340\1\34Q\252\0\13%F\0\0\0!\0\0\0\23=v\15\365\206\265R\377Q\225\7" "\377\204\264O\377Ay\20\3635o\4\10\207\377\377\377\0\21\0\0\0\7\0\0\0" "\26\0\0\0%\0\0\0""7\0\0\0K\0\0\0Y\0\0\0R\0\0\0\77\0\0\0,\0\0\0\33\0\0" "\0\14=v\15\365\206\265R\377Q\225\7\377\204\264O\377Ay\20\3635o\4\10\222" "\377\377\377\0\6;t\12\365\215\272]\377\206\265R\377\216\272^\377>w\15" "\3625o\4\10\222\377\377\377\0\6""7q\4\325;t\12\365=v\15\365;u\12\365" "7q\4\3315o\4\1\203\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts_birthdays) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts_birthdays[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts_birthdays[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1825) */ "\0\0\7""9" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\207\377\377\377\0\2\245\0\0\15\245\0\0\3\206\377\377\377\0\5\245\0\0" "\24\251\13\13\226\246\4\4\372\251\13\13\274\245\0\0\21\212\377\377\377" "\0\4\245\0\0""3\250\10\10\351\251\12\12\343\245\0\0Y\204\377\377\377" "\0\6\245\0\0\6\251\11\11\324\304ED\372\352\242\241\377\305QP\371\252" "\14\14\311\212\377\377\377\0\17\252\16\16\273\345\257\257\377\365\336" "\340\377\275@@\366\251\11\11\265\245\0\0\17\377\377\377\0\231\0\0\12" "\251\6\6\242\275''\366\362\211\207\377\362\224\222\377\361\235\232\377" "\251\11\11\366\245\0\0!\211\377\377\377\0\17\252\14\14\337\354\256\255" "\377\371\325\325\377\376\370\370\377\313YX\374\246\7\7\372\246\6\6\363" "\245\0\0\376\254\7\7\370\355VU\377\362ed\377\362po\377\362|z\377\306" ":9\367\247\4\4\203\210\377\377\377\0\20RRT\6\246\4\4\372\356\214\212" "\377\362\212\211\377\366\252\250\377\373\331\332\377\265\27\27\377\302" "32\377\271\"!\377\311\27\27\377\36166\377\361AA\377\361ML\377\361XW\377" "\335II\377\251\6\6\335\205\377\377\377\0\23RRT\12RRTRRRT\245TPR\356\245" "\3\3\376\362vu\377\362ml\377\361dc\377\361[Z\377\301\40\40\377\274((" "\377\263\31\30\377\266\13\13\377\337$$\377\343''\377\334##\377\323\40" "\40\377\256\12\12\371\235\15\15\235\203\377\377\377\0/RRT\12RRT\323R" "RT\364RRT\276RRTfh<>\36\246\1\1\374\361ZY\377\361PP\377\361GG\377\354" ":9\377\264\13\13\377\251\6\6\377\277##\377\266\27\27\376\252\4\4\373" "\252\3\3\334\252\5\5\307\237\15\15\305z*+\267RRT\333RRT\357RRT\325RR" "T\10\377\377\377\0RRT\377pqr\362YY[\367XXZ\360aZ\\\311\246\2\2\376\361" "=<\377\36133\377\335##\377\253\4\4\377\301\32\32\377\260\15\13\365\303" "*)\370\362zy\377\314ED\373\244\13\13\350`QS\233^^a\320XSU\367d`a\362" "~\177\200\362RRT\377\202\377\377\377\0\1RRT\377\202\371\373\371\377\23" "\277@@\377\277YY\377\250\14\14\377\322\35\35\377\301\25\25\377\243\7" "\7\377\250\7\7\376\361JI\377\271\35\34\372\244\0\0\377\340^]\377\362" "\212\210\377\300>=\377\252--\377\276NM\377\305DB\377\350\310\306\377" "\371\373\371\377RRT\377\202\377\377\377\0\1RRT\377\202\371\373\371\377" "\23\313MK\377\317JI\377\333\240\236\377\265''\377\317|{\377\344\305\304" "\377\255\16\16\377\361JI\377\312--\377\254\37\37\377\261\30\30\377\360" "\207\205\377\361\230\226\377\27688\377\263\36\35\377\321KJ\377\351\310" "\306\377\371\373\371\377RRT\377\202\377\377\377\0\1RRT\377\202\371\373" "\371\377\3\313MK\377\317JI\377\357\334\332\377\202\371\373\371\377\16" "\360\337\336\377\255\16\16\377\361JI\377\327;:\377\277HG\377\300ML\377" "\310@\77\377\355\220\216\377\310LK\377\247\4\4\377\272$$\377\351\310" "\306\377\371\373\371\377RRT\377\202\377\377\377\0\26VVX\352XXZ\377{}" "}\377\300A@\377\316IH\377\333\307\307\377\370\372\370\377\371\373\371" "\377\362\343\342\377\254\14\14\377\361JI\377\343II\377\262\"\40\377\363" "\353\351\377\257\33\32\377\27621\377\262++\377\262\35\34\377\257\34\33" "\377\212VW\377YY[\377VVX\352\203\377\377\377\0\24RRT\377\307\310\310" "\377\252vv\377\237LL\377eST\377[XZ\377{|}\377\237\223\223\377\250\6\6" "\377\302#\"\377\274!!\377\246\3\3\377\242\240\240\377\210de\377\246\2" "\2\377\230#$\377~mn\377\220\217\220\377\247\246\246\377RRT\377\204\377" "\377\377\0\1RRT\377\203\370\372\370\377\20\315UU\377\300ML\377\300\302" "\301\377\240\227\227\377\245\0\0\377\214\"\"\377z99\377\230()\377\225" "\201\202\377\256\256\256\377\270((\377\306KK\377\321\320\317\377\316" "\314\314\377\312\311\310\377RRT\377\204\377\377\377\0\1RRT\377\203\370" "\372\370\377\20\315TR\377\313LK\377\357\361\357\377\352\346\345\377\307" "\211\210\377``a\377\342\343\342\377\337\340\336\377\334\334\333\377\331" "\331\330\377\310IG\377\307NN\377\317\316\316\377\314\313\312\377\311" "\310\307\377RRT\377\204\377\377\377\0\1RRT\377\202\370\372\370\377\21" "\367\371\367\377\313SQ\377\313LK\377\356\357\355\377\353\354\352\377" "\332\332\331\377``a\377\341\342\340\377\336\336\335\377\333\333\332\377" "\330\327\326\377\310HG\377\307MM\377\316\315\314\377\313\312\311\377" "\310\306\306\377RRT\377\204\377\377\377\0\1RRT\377\202\370\372\370\377" "\21\366\370\366\377\313QP\377\312LJ\377\355\356\354\377\352\352\351\377" "\330\331\330\377_``\377\340\340\337\377\335\335\334\377\332\331\330\377" "\326\326\325\377\307HG\377\306LL\377\315\314\313\377\312\310\310\377" "\307\305\304\377RRT\377\204\377\377\377\0\1RRT\377\202\370\372\370\377" "\21\365\367\365\377\313OO\377\312KJ\377\353\354\353\377\350\351\350\377" "\327\330\327\377__`\377\337\337\336\377\334\333\332\377\330\330\327\377" "\325\325\324\377\307HG\377\307JJ\377\314\312\312\377\311\307\306\377" "\305\304\303\377RRT\377\204\377\377\377\0\24RRT\377\370\372\370\377\367" "\371\367\377\364\365\363\377\312NM\377\312KJ\377\352\353\352\377\347" "\350\346\377\327\327\326\377__`\377\335\335\334\377\332\332\331\377\327" "\327\326\377\324\323\322\377\307HG\377\306JJ\377\312\311\310\377\307" "\306\305\377\304\302\302\377RRT\377\204\377\377\377\0\24RRT\377\320\322" "\321\377\363\364\362\377\362\364\362\377\313MM\377\312KJ\377\351\352" "\350\377\346\346\345\377\326\326\325\377__`\377\334\334\333\377\331\331" "\330\377\326\325\324\377\323\322\321\377\307HG\377\306IH\377\311\310" "\307\377\306\304\304\377\303\301\300\377RRT\377\204\377\377\377\0\24" "WWY\205^^`\326XXZ\367|}~\361\266@@\377\276:9\377\350\350\347\377\344" "\345\344\377\324\325\323\377__`\377\333\333\332\377\330\327\326\377\325" "\324\323\377\321\321\320\377\306GF\377\302BB\377\223\222\223\376srt\360" "ZZ[\364UUV\353\206\377\377\377\0\21RRT\20RRTT[[\\\243aOQ\355^^`\363\210" "\211\211\365\251\251\251\377^^_\377\312\311\310\377\252\251\251\377\210" "\210\211\367gfh\357\21411\374xAB\344VVX\226RRTWRRT\36\213\377\377\377" "\0\11RRT'RRTm[[]\304TTV\373WWY\357[[]\272SSUuRRT;RRT\10\222\377\377\377" "\0\1RRT\3\214\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts_edit) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts_edit[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts_edit[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1603) */ "\0\0\6[" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\205\377\377\377\0\7ZN&QJC1\336><6\373>;5\377=;6\374JD0\336PH+n\217\377" "\377\377\0\13{e\26\3KD0\313768\377><=\377B@C\377C@C\377B@C\377><>\377" "878\377LE/\320\\P%\11\215\377\377\377\0\13SJ+\271988\377EBF\377IEI\377" "GDH\377EBE\377FCF\377GDG\377EBF\377:99\377JD0\323\214\377\377\377\0\15" "WL(Y778\377C@C\377A\77B\377@>\77\377668\377:9;\377668\377768\377EBF\377" "FBF\377778\377RI*n\213\377\377\377\0\15RI,\306879\377:::\377HEA\377\212" "yY\377\264\232f\377\306\250m\377\303\246l\377nbM\377=<=\377HDH\377><" "\77\377GB2\343\213\377\377\377\0\15HB2\363LG@\377\231\205]\377\313\256" "w\377\325\274\213\377\334\304\230\377\336\307\231\377\337\306\226\377" "\321\270\211\377UOF\377:9:\37799:\377;97\375\213\377\377\377\0\4m\\\"" "\355\257\227e\377\334\302\221\377\346\317\245\377\202\351\324\255\377" "\10\346\320\246\377\342\311\232\377\335\302\215\377\325\266~\377\251" "\220a\377vgG\377E@2\375668\1\202\377\377\377\0\3\0\0\0\1\0\0\0\13\0\0" "\0\10\205\377\377\377\0\15\201j\35\271\274\240a\377\336\302\217\377\341" "\310\230\377\343\313\235\377\343\313\236\377\342\310\231\377\336\303" "\220\377\332\275\205\377\326\265x\377\321\256k\377\260\220E\377\177h" "\32\307\202\377\377\377\0\6\0\0\0\2\204-\32\211\244\20\12\376\234\31" "\16\357U\22\14*\0\0\0\1\203\377\377\377\0\4{e\26s\224{1\366\332\273\202" "\377\334\300\212\377\202\336\302\216\377\17\334\300\213\377\332\274\204" "\377\326\267z\377\322\260o\377\316\251c\377\225z-\367|f\27\201\377\377" "\377\0\0\0\0\2\1773\34~\246\13\11\377\351bd\377\305++\377\236\15\10\373" "(\0\0\31\203\377\377\377\0\4{e\26\13\177h\32\344\262\226P\376\327\267" "{\377\202\330\271\177\377\20\327\270|\377\325\264v\377\322\260n\377\317" "\252d\377\263\222H\377}g\32\353{e\26\16\0\0\0\1dV1Y\2338\40\375\314]" "[\377\355Z\\\377\336IJ\377\253\16\14\377\202\31\16\306\0\0\0\7\203\377" "\377\377\0\25HI2\\yd\33\377\242\207@\377\321\256m\377\323\260o\377\322" "\257m\377\320\254h\377\313\247`\377\244\206<\377|g\33\377$3H\327\0\0" "@\4fT0U\220wC\374\353\274f\377\320jC\377\306JG\377\311((\377\253\10\6" "\377\224!\22\372\0\0\0\24\202\377\377\377\0\26\0\34U\11\1\37[\347\237" "\244\244\377\216}A\377~h\35\377\212r*\377\234\2004\377\213s*\377~h\35" "\377\204s5\377\274\275\262\3774Kx\37019F\252\220xC\373\351\273f\377\375" "\314r\377\372\271F\377\300D\36\377\246\5\4\377\235\21\11\376*\23\14{" "\0\0\0\7\202\377\377\377\0\25\0\35^O\40;j\363\264\273\300\377\355\355" "\351\377\332\326\305\377\233\227|\377LK,\377\217\214q\377\330\324\303" "\377\355\354\350\377\226\240\247\377\177\202\202\377\214wC\377\351\273" "e\377\374\314q\377\373\273E\377\347\257>\377\312\232=\377\224'\26\375" "+\17\13v\0\0\0\16\203\377\377\377\0\24\2\36[\250Vj\211\376r\203\223\377" "\347\350\345\377\332\334\333\3770Ha\377\40:V\377(A\\\377\314\320\322" "\377\354\354\350\377LX^\377\216wE\377\346\272e\377\374\312o\377\373\272" "D\377\345\256>\377\311\234\77\377|h9\371\24\22\12e\0\0\0\14\204\377\377" "\377\0\5\1\37]\356\211\231\255\377Kd\200\377\210\230\246\377\207\226" "\246\377\203-Jj\377\13o\201\224\377\217\223\222\377\215vD\377\346\271" "d\377\374\312m\377\372\272B\377\344\255>\377\304\232\77\377ze9\370\23" "\20\10]\0\0\0\13\205\377\377\377\0\5\3!^\347\221\242\270\377Tp\217\377" ";[\177\377Kh\211\377\203;[\177\377\12N`o\377\214vD\377\343\267d\377\374" "\311k\377\371\271@\377\343\254>\377\300\225@\377va6\366\17\14\6W\0\0" "\0\12\206\377\377\377\0\3\5$`\320\206\233\266\377j\210\250\377\203Hl" "\224\377\13Hl\223\377Nez\377\215uD\377\342\266c\377\375\311h\377\370" "\270A\377\342\254>\377\272\221\77\377q^4\364\15\11\6Q\0\0\0\11\207\377" "\377\377\0\4\5#_\251[t\234\373\244\272\321\377[\202\253\377\202U}\250" "\377\12Uv\231\377\213uE\377\340\265c\377\375\310e\377\367\270\77\377" "\341\254>\377\264\217\77\377m[2\363\12\7\3K\0\0\0\11\210\377\377\377" "\0\17\0\40`\30\3!_\352w\216\260\376\252\276\324\377\203\241\301\377o" "\221\267\377ouq\377\271\225R\377\374\310g\377\367\267\77\377\341\253" ">\377\260\213\77\377gV2\366\7\4\4E\0\0\0\7\212\377\377\377\0\15\0\34" "[-\3\"_\337,G{\366\177\226\266\377\220\244\275\377\211vI\377\350\267" "]\377\364\265A\377\341\254>\377\253\210@\377bR0\366\4\4\4A\0\0\0\7\213" "\377\377\377\0\16\0\0\0\15\0\0\0\34\0\25Ek\4!X\302'6T\355qhR\377\350" "\260D\377\310\233\77\377\225zB\377\\M+\360\3\0\0^\0\0\0$\0\0\0\21\0\0" "\0\3\212\377\377\377\0\15\0\0\0\12\0\0\0\34\0\0\0-\0\0\0Ea[N\3464:;\377" "`V<\377WH(\362\33\27\15\262\0\0\0a\0\0\0""4\0\0\0\36\0\0\0\13\216\377" "\377\377\0\7\24\24\24\15JH<\35585'\327\13\13\10_\0\0\0\40\0\0\0\16\0" "\0\0\2\221\377\377\377\0\4\0\0\0\1\0\0\0\24\0\0\0\17\0\0\0\5\216\377" "\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts_export) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts_export[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts_export[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1509) */ "\0\0\5\375" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\205\377\377\377\0\7ZN&QJC1\336><6\373>;5\377=;6\374JD0\336PH+n\217\377" "\377\377\0\13{e\26\3KD0\313768\377><=\377B@C\377C@C\377B@C\377><>\377" "878\377LE/\320\\P%\11\215\377\377\377\0\13SJ+\271988\377EBF\377IEI\377" "GDH\377EBE\377FCF\377GDG\377EBF\377:99\377JD0\323\214\377\377\377\0\15" "WL(Y778\377C@C\377A\77B\377@>\77\377668\377:9;\377668\377768\377EBF\377" "FBF\377778\377RI*n\213\377\377\377\0\15RI,\306879\377:::\377HEA\377\212" "yY\377\264\232f\377\306\250m\377\303\246l\377nbM\377=<=\377HDH\377><" "\77\377GB2\343\213\377\377\377\0\15HB2\363LG@\377\231\205]\377\313\256" "w\377\325\274\213\377\334\304\230\377\336\307\231\377\337\306\226\377" "\321\270\211\377UOF\377:9:\37799:\377;97\375\213\377\377\377\0\4m\\\"" "\355\257\227e\377\334\302\221\377\346\317\245\377\202\351\324\255\377" "\10\346\320\246\377\342\311\232\377\335\302\215\377\325\266~\377\251" "\220a\377vgG\377E@2\375668\1\212\377\377\377\0\15\201j\35\271\274\240" "a\377\336\302\217\377\341\310\230\377\343\313\235\377\343\313\236\377" "\342\310\231\377\336\303\220\377\332\275\205\377\326\265x\377\321\256" "k\377\260\220E\377\177h\32\307\213\377\377\377\0\4{e\26s\224{1\366\332" "\273\202\377\334\300\212\377\202\336\302\216\377\11\334\300\213\377\332" "\274\204\377\326\267z\377\322\260o\377\316\251c\377\225z-\367|f\27\201" "\377\377\377\0\250n\1G\211\377\377\377\0\4{e\26\13\177h\32\344\262\226" "P\376\327\267{\377\202\330\271\177\377\12\327\270|\377\325\264v\377\322" "\260n\377\317\252d\377\263\222H\377}g\32\353{e\26\16\377\377\377\0\252" "p\1\334\252q\1|\211\377\377\377\0\20HI2\\yd\33\377\242\207@\377\321\256" "m\377\323\260o\377\322\257m\377\320\254h\377\313\247`\377\244\206<\377" "|g\33\377$3H\327\0\0U\3\377\377\377\0\254r\1\345\261{\15\370\253q\1\220" "\207\377\377\377\0\23\0\34U\11\1\37[\347\237\244\244\377\216}A\377~h" "\35\377\212r*\377\234\2004\377\213s*\377~h\35\377\204s5\377\274\275\262" "\3774Kx\370\2\40[\201\377\377\377\0\254r\1\345\352\312e\377\276\215!" "\364\253q\1\242\250n\1\2\205\377\377\377\0\24\0\35^O\40;j\363\264\273" "\300\377\355\355\351\377\332\326\305\377\233\227|\377LK,\377\217\214" "q\377\330\324\303\377\274\220;\377\252w\22\377\251v\22\377\234k\12\376" "\254r\1\346\251o\1\374\355\320o\377\363\332\201\377\303\223'\366\253" "r\1\263\250n\1\6\204\377\377\377\0\13\2\36[\250Vj\211\376r\203\223\377" "\347\350\345\377\332\334\333\3770Ha\377\40:V\377(A\\\377\314\320\322" "\377\262\177\30\377\347\307d\377\203\356\321r\377\7\356\321s\377\363" "\330x\377\355\302%\377\363\331|\377\310\232.\366\253r\1\302\250n\1\12" "\203\377\377\377\0\5\1\37]\356\211\231\255\377Kd\200\377\210\230\246" "\377\207\226\246\377\203-Jj\377\4o\202\225\377\253x\23\377\356\323w\377" "\355\302#\377\203\354\276\25\377\7\352\271\4\377\352\270\0\377\354\277" "\32\377\364\332{\377\315\2415\370\253r\1\320\250n\1\20\202\377\377\377" "\0\5\3!^\347\221\242\270\377Tp\217\377;[\177\377Kh\211\377\203;[\177" "\377\5Hf\206\377\241p\16\377\360\327\205\377\363\325g\377\362\322\\\377" "\202\361\321[\377\202\361\321Z\377\5\361\321Y\377\364\333\177\377\367" "\345\250\377\262|\22\371\250n\1~\202\377\377\377\0\3\5$`\320\206\233" "\266\377j\210\250\377\206Hl\224\377\3\242r\20\377\361\332\216\377\370" "\346\247\377\203\367\344\241\377\202\367\343\234\377\5\370\350\256\377" "\371\356\305\377\304\232=\365\253q\1\227\250n\1\1\202\377\377\377\0\4" "\5#_\251[t\234\373\244\272\321\377[\202\253\377\205U}\250\377\2\243s" "\22\377\355\324\203\377\203\371\356\307\377\6\371\356\310\377\372\356" "\304\377\371\351\260\377\370\354\302\377\277\2211\366\252q\1\206\204" "\377\377\377\0\23\0\40`\30\3!_\352w\216\260\376\252\276\324\377\203\241" "\301\377p\222\270\377o\221\267\377m\220\266\377n\221\267\377\245})\377" "\252u\14\377\243n\7\377\247o\3\366\253q\1\361\250p\2\376\371\356\311" "\377\370\352\276\377\272\212(\366\252p\1t\206\377\377\377\0\13\0\34[" "-\3\"_\337,G{\366\177\226\266\377\226\253\306\377\236\264\314\377\236" "\262\314\377\231\255\307\377g~\243\372\23""0i\370\2\36Yo\202\377\377" "\377\0\4\254r\1\345\361\340\254\377\265\203\36\367\251o\1c\207\377\377" "\377\0\20\0\0\0\15\0\0\0\34\0\25Ek\4!X\302\6#]\345\2\40]\371\4\"^\362" "\6\"\\\341\1\34O\256\0\12!N\0\0\0-\0\0\0\37\0\0\0\21\254r\1\346\256w" "\16\372\251o\1T\210\377\377\377\0\17\0\0\0\12\0\0\0\34\0\0\0-\0\0\0A" "\0\0\0P\0\0\0^\0\0\0f\0\0\0a\0\0\0T\0\0\0D\0\0\0""1\0\0\0\36\0\0\0\13" "\251o\1\320\250n\1F\215\377\377\377\0\5\0\0\0\6\0\0\0\13\0\0\0\17\0\0" "\0\12\0\0\0\4\204\377\377\377\0\1\250n\1\"\237\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_contacts_import) #endif #ifdef __GNUC__ const guint8 osmo_stock_contacts_import[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_contacts_import[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1497) */ "\0\0\5\361" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\213\377\377\377\0\10[O&\15TJ+\257@=5\366>;6\376=;6\376C\77""4\363PG" ",\263GB0\27\217\377\377\377\0\12WL(\\<:6\374:99\377@>A\377C@C\377C@D" "\377@>A\377;::\377=;6\374WL(V\215\377\377\377\0\5[O&.=;6\376\77=\77\377" "HEH\377IEI\377\202EBF\377\5GCG\377HDH\377\77=\77\377987\376SJ*0\214\377" "\377\377\0\14GB2\357><=\377EBE\377@>@\377;:;\37798:\377779\377668\377" "\77=\77\377IEI\377><=\377FA2\354\213\377\377\377\0\16kZ\36#778\377::" ";\377889\377mcP\377\241\213_\377\303\245l\377\305\250m\377\252\222c\377" "779\377C@D\377GCG\377668\377JD.-\212\377\377\377\0\16WM(y768\377zlR\377" "\272\237k\377\321\266\202\377\332\302\224\377\335\306\231\377\336\306" "\231\377\337\304\223\377\223\204f\377889\377=<<\377668\377ME-\205\212" "\377\377\377\0\16o]\34p\205sG\373\317\263|\377\344\313\237\377\350\322" "\252\377\351\325\256\377\350\322\252\377\344\314\240\377\340\305\223" "\377\333\275\206\377\276\243n\377\226\201W\377EA6\375WM(\211\212\377" "\377\377\0\16{e\26""8\226}5\367\331\274\206\377\340\306\224\377\343\312" "\233\377\344\314\236\377\343\312\234\377\340\306\224\377\334\300\212" "\377\330\271~\377\323\261q\377\316\251c\377\200j\33\366{e\26,\210\377" "\377\377\0\20""6o\4G\377\377\377\0{e\26\11|f\30\371\310\252l\377\333" "\276\207\377\335\301\215\377\336\303\217\377\335\301\215\377\333\276" "\207\377\330\271\177\377\324\263t\377\320\254h\377\274\232P\377}g\30" "\365{e\26\2\210\377\377\377\0\17""5p\4\3578o\5e\377\377\377\0|f\27o\207" "p#\365\323\263v\377\330\271~\377\330\271\177\377\330\271~\377\326\266" "y\377\324\262r\377\320\255i\377\312\244\\\377\203l\40\371|f\27f\211\377" "\377\377\0\17""6o\4\367By\21\3676o\4w{e\26\1eY'\353\205o&\377\302\242" "]\377\323\260p\377\322\260n\377\321\255j\377\317\252d\377\274\232P\377" "\206o%\377^V/\375\0\36^<\211\377\377\377\0\20""6o\4\367\232\277s\377" "I\200\32\365'Z\34\2764Iv\366\260\247\204\377}h\34\377\203m$\377\226{" "1\377\225z1\377\203l$\377}h\34\377\252\243\202\377\205\222\244\377\3" "\40\\\354\0\40`\20\203\377\377\377\0\1""5p\4\330\2047r\3\345\20""5o\4" "\376\247\311\203\377\244\307~\377K\200!\376Mv;\377\342\344\340\377\345" "\344\333\377\311\303\253\377]\\@\377[Z>\377\311\303\253\377\346\345\335" "\377\345\346\343\377}\212\230\377\77U}\366\0\37\\d\203\377\377\377\0" "\2""6p\4\373\232\277s\377\203\234\301v\377\10\236\302y\377\234\303s\377" "n\2460\377\244\307\177\377W\212*\377X\202;\377\351\352\344\377{\211\227" "\377\202\40:V\377\6u\204\223\377\355\355\351\377\243\254\263\377Mbx\377" "v\206\236\377\1!\\\303\203\377\377\377\0\3""6p\4\373\252\312\206\377" "a\237\36\377\203_\236\33\377\7S\226\12\377Q\225\7\377i\244)\377\244\310" "\177\377Z\214/\377\\\2118\377/Lg\377\203-Jj\377\5\310\316\320\377Ha{" "\3774Po\377\236\253\273\377\5#^\360\203\377\377\377\0\4""6p\4\373\266" "\322\230\377\222\274b\377\220\273`\377\202\217\273`\377\202\216\272_" "\377\5\216\272^\377\255\315\213\377\275\326\243\377<6\373>;5\377=;6\374JD0\336PH+n\217\377" "\377\377\0\13{e\26\3KD0\313768\377><=\377B@C\377C@C\377B@C\377><>\377" "878\377LE/\320\\P%\11\215\377\377\377\0\13SJ+\271988\377EBF\377IEI\377" "GDH\377EBE\377FCF\377GDG\377EBF\377:99\377JD0\323\214\377\377\377\0\15" "WL(Y778\377C@C\377A\77B\377@>\77\377668\377:9;\377668\377768\377EBF\377" "FBF\377778\377RI*n\213\377\377\377\0\15RI,\306879\377:::\377HEA\377\212" "yY\377\264\232f\377\306\250m\377\303\246l\377nbM\377=<=\377HDH\377><" "\77\377GB2\343\213\377\377\377\0\15HB2\363LG@\377\231\205]\377\313\256" "w\377\325\274\213\377\334\304\230\377\336\307\231\377\337\306\226\377" "\321\270\211\377UOF\377:9:\37799:\377;97\375\213\377\377\377\0\4m\\\"" "\355\257\227e\377\334\302\221\377\346\317\245\377\202\351\324\255\377" "\10\346\320\246\377\342\311\232\377\335\302\215\377\325\266~\377\251" "\220a\377vgG\377E@2\375668\1\212\377\377\377\0\15\201j\35\271\274\240" "a\377\336\302\217\377\341\310\230\377\343\313\235\377\343\313\236\377" "\342\310\231\377\336\303\220\377\332\275\205\377\326\265x\377\321\256" "k\377\260\220E\377\177h\32\307\213\377\377\377\0\4{e\26s\224{1\366\332" "\273\202\377\334\300\212\377\202\336\302\216\377\7\334\300\213\377\332" "\274\204\377\326\267z\377\322\260o\377\316\251c\377\225z-\367|f\27\201" "\213\377\377\377\0\4{e\26\13\177h\32\344\262\226P\376\327\267{\377\202" "\330\271\177\377\7\327\270|\377\325\264v\377\322\260n\377\317\252d\377" "\263\222H\377}g\32\353{e\26\16\214\377\377\377\0\14HI2\\yd\33\377\242" "\207@\377\321\256m\377\323\260o\377\322\257m\377\320\254h\377\313\247" "`\377\244\206<\377|g\33\377$3H\327\0\0U\3\213\377\377\377\0\15\0\34U" "\11\1\37[\347\237\244\244\377\216}A\377~h\35\377\212r*\377\234\2004\377" "\213s*\377~h\35\377\204s5\377\274\275\262\3774Kx\370\2\40[\201\213\377" "\377\377\0\16\0\35^O\40;j\363\264\273\300\377\355\355\351\377\332\326" "\305\377\233\227|\377LK,\377\217\214q\377\330\324\303\377\355\354\350" "\377\227\241\250\377\213\227\246\377\4!]\361\0\0U\3\212\377\377\377\0" "\16\2\36[\250Vj\211\376r\203\223\377\347\350\345\377\332\334\333\377" "0Ha\377\40:V\377(A\\\377\314\320\322\377\355\355\351\377DZp\377\205\224" "\243\377/Hy\366\0\40\\@\212\377\377\377\0\5\1\37]\356\211\231\255\377" "Kd\200\377\210\230\246\377\207\226\246\377\203-Jj\377\6o\202\225\377" "\241\254\267\377-Jj\377h}\224\377^r\224\371\0\36\\o\212\377\377\377\0" "\5\3!^\347\221\242\270\377Tp\217\377;[\177\377Kh\211\377\203;[\177\377" "\11Ie\205\377\206\14\20\377\223\20\21\377\227\26\27\377\226\26\27\377" "\226\23\24\371\230\23\23\365\231\25\25\365\232\27\27\366\203\232\30\30" "\366\2\227\20\20\365\221\0\0\334\202\377\377\377\0\3\5$`\320\206\233" "\266\377j\210\250\377\205Hl\224\377\3Ji\217\377\225\26\30\377\342\225" "\225\377\206\340\217\217\377\5\337\213\213\377\334\201\201\377\334\177" "\177\377\341\220\220\377\225\12\12\365\202\377\377\377\0\4\5#_\251[t" "\234\373\244\272\321\377[\202\253\377\204U}\250\377\11Wy\243\377\225" "\27\31\377\327pp\377\311::\377\312\77\77\377\30744\377\303%%\377\277" "\27\27\377\273\10\10\377\203\271\0\0\377\2\315KK\377\224\11\11\365\202" "\377\377\377\0\13\0\40`\30\3!_\352w\216\260\376\252\276\324\377\203\241" "\301\377p\222\270\377o\221\267\377m\220\266\377o\214\261\377\224\17\21" "\377\321XX\377\211\315KK\377\2\321XX\377\223\6\6\365\203\377\377\377" "\0\13\0\34[-\3\"_\337,G{\366\177\226\266\377\226\253\306\377\236\264" "\314\377\236\262\314\377\231\254\305\377\213\16\22\376\217\13\15\377" "\223\15\16\367\210\226\15\15\363\2\225\11\11\362\220\0\0\337\202\377" "\377\377\0\17\0\0\0\1\0\0\0\15\0\0\0\34\0\25Ek\4!X\302\6#]\345\2\40]" "\371\4\"^\362\6\"\\\341\3\34N\257\16\11\36T\26\0\0""4\36\0\0&.\0\0\30" "`\0\0\14\206\216\0\0\10\1\216\0\0\2\202\377\377\377\0\17\0\0\0\1\0\0" "\0\13\0\0\0\34\0\0\0-\0\0\0A\0\0\0P\0\0\0]\0\0\0e\0\0\0`\0\0\0T\0\0\0" "D\0\0\0""1\0\0\0\36\0\0\0\13\0\0\0\1\215\377\377\377\0\6\0\0\0\1\0\0" "\0\6\0\0\0\13\0\0\0\16\0\0\0\12\0\0\0\4\244\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_contacts_export) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_contacts_export[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_contacts_export[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1213) */ "\0\0\4\325" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\202\377\377\377\0\7\\P%\11UL+\253A>6\367=;6\376;:7\376GB3\354NG,\203" "\214\377\377\377\0\4^Q$9><6\373=<;\377C@C\377\202EBF\377\4A>A\377;99" "\376JD1\336PG+\10\211\377\377\377\0\13QI+\12C\77""4\370A\77@\377IEI\377" "DAE\377@>A\377A>A\377B\77C\377GDG\377<;;\377LE/\306\211\377\377\377\0" "\14UK+\247;::\377@>A\377=<=\377GDB\377pgX\377pgW\377EB\77\377A\77B\377" "FCG\377888\377RI*>\210\377\377\377\0\14LF1\352668\377^VG\377\244\215" "`\377\307\251o\377\313\257w\377\317\263|\377\247\222k\377;::\377A>B\377" "<:;\377LE-\242\210\377\377\377\0\14SJ-\371\234\207^\377\327\274\212\377" "\342\315\242\377\354\331\264\377\352\326\260\377\345\316\242\377\337" "\305\222\377\255\227n\377bXH\377;:9\377KD0\323\210\377\377\377\0\14\204" "l\37\331\307\252n\377\340\306\225\377\344\314\240\377\346\317\244\377" "\344\315\241\377\341\307\227\377\334\300\212\377\327\267|\377\321\256" "l\377\230~8\371l[\35\200\210\377\377\377\0\16\200i\33\231\254\221N\375" "\334\277\210\377\336\303\220\377\337\305\223\377\337\304\221\377\334" "\277\212\377\330\271\177\377\324\262r\377\317\252d\377\211p\"\357{e\26" "8\377\377\377\0\250n\1\31\206\377\377\377\0\17{e\26$\200i\33\363\314" "\255n\377\330\272\177\377\331\273\202\377\331\272\200\377\327\267z\377" "\323\262r\377\317\253g\377\253\214B\376\177h\32\313{e\26\1\377\377\377" "\0\252p\1\223\254r\1r\206\377\377\377\0\12QM0\236~i!\376\274\235Y\377" "\323\261p\377\322\260o\377\321\255j\377\315\250b\377\245\207>\377zf\40" "\376\32-M\234\202\377\377\377\0\3\256u\1\236\257y\15\373\254r\1\203\204" "\377\377\377\0\21\0\36\\\35\10%`\362\274\272\251\377\203p+\377\200k\"" "\377\216v/\377\210q*\377~i\36\377\214\177J\377\266\271\270\377\";o\364" "\0\36\\;\377\377\377\0\256u\1\236\341\275V\377\304\226.\363\254s\1\222" "\203\377\377\377\0\31\0\36\\qK_\201\372\274\301\305\377\355\355\351\377" "\316\315\301\377HND\377hmd\377\345\344\333\377\355\355\351\377\251o\4" "\377\255y\24\377\254v\20\373\257y\17\365\260y\16\366\346\305b\377\363" "\331|\377\310\2333\364\254s\1\242\250n\1\2\377\377\377\0\3!\\\317~\215" "\242\377k}\217\377\355\355\351\377Wk\200\377\202$\77\\\377\4\227\242" "\254\377\340\342\340\377\254z\27\377\365\334\201\377\203\363\326j\377" "\12\361\321X\377\353\274\20\377\363\327p\377\314\2419\366\254s\1\257" "\250n\1\4\3!^\366\240\256\276\3774Rt\377\214\234\254\377\2033Qs\377\5" "Vo\211\377l\201\227\377\254{\30\377\363\330u\377\354\300\36\377\203\355" "\301\37\377\10\355\301\40\377\356\304*\377\365\334\205\377\316\246E\371" "\253r\1\262\4\"_\346\237\257\303\377Eg\214\377\206Ad\211\377\2\255{\30" "\377\367\345\243\377\205\367\343\234\377\7\370\350\255\377\367\351\273" "\377\270\205\40\362\251o\1F\7%b\314\220\244\277\377p\217\261\377\206" "Pv\240\377\2\257}\32\377\371\351\261\377\203\372\357\305\377\30\372\354" "\274\377\370\350\255\377\366\350\272\377\266\204\36\360\250n\1;\377\377" "\377\0\1\37]P\40s\363\2\37Z`\202\377\377\377\0\4\256u\1\236" "\344\313\215\377\266\202\34\353\250n\1*\204\377\377\377\0\17\0\0\0\16" "\0\17-5\5\40V\247\6$^\344\3!^\370\3!]\371\5#]\356\5\37S\276\0\14%Z\0" "\0\0""1\0\0\0!\0\0\0\21\255t\1\235\254t\4\353\250n\1#\205\377\377\377" "\0\16\0\0\0\4\0\0\0\20\0\0\0\36\0\0\0/\0\0\0B\0\0\0T\0\0\0R\0\0\0@\0" "\0\0.\0\0\0\36\0\0\0\20\0\0\0\2\250n\1i\250n\1\34\205\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_button_contacts_import) #endif #ifdef __GNUC__ const guint8 osmo_stock_button_contacts_import[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_button_contacts_import[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1198) */ "\0\0\4\306" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (80) */ "\0\0\0P" /* width (20) */ "\0\0\0\24" /* height (20) */ "\0\0\0\24" /* pixel_data: */ "\211\377\377\377\0\7\\P%\11UL+\253A>6\367=;6\376;:7\376GB3\354NG,\203" "\214\377\377\377\0\4^Q$9><6\373=<;\377C@C\377\202EBF\377\4A>A\377;99" "\376JD1\336PG+\10\211\377\377\377\0\13QI+\12C\77""4\370A\77@\377IEI\377" "DAE\377@>A\377A>A\377B\77C\377GDG\377<;;\377LE/\306\211\377\377\377\0" "\14UK+\247;::\377@>A\377=<=\377GDB\377pgX\377pgW\377DB\77\377A\77B\377" "FCG\377888\377RI*>\210\377\377\377\0\14LF1\352668\377^VG\377\244\215" "`\377\307\251o\377\314\257w\377\317\263|\377\247\222k\377;::\377A>B\377" "<:;\377LE-\242\210\377\377\377\0\14SJ-\371\233\207^\377\327\274\212\377" "\342\315\242\377\354\330\265\377\352\326\260\377\345\316\242\377\337" "\305\222\377\255\227n\377bXH\377;:9\377KD0\323\210\377\377\377\0\14\204" "l\37\331\307\252n\377\340\306\225\377\344\314\240\377\346\317\244\377" "\344\315\241\377\341\307\227\377\334\300\212\377\327\267|\377\321\256" "l\377\230~9\371l[\35\200\205\377\377\377\0\1""5o\4\31\202\377\377\377" "\0\14\200i\33\231\254\222N\375\334\277\210\377\336\303\220\377\337\305" "\223\377\337\304\221\377\334\277\212\377\330\271\177\377\324\262r\377" "\317\252d\377\211p\"\357{e\26""8\205\377\377\377\0\17""6p\4\2237q\4r" "\377\377\377\0{e\26$\200i\33\363\314\255n\377\330\272\177\377\331\273" "\202\377\331\272\200\377\327\267z\377\323\262r\377\317\253g\377\253\214" "B\376\177h\32\313{e\26\1\205\377\377\377\0\16""7r\4\236\77x\20\3737q" "\4\203\377\377\377\0QM0\236~i!\376\274\235Y\377\323\261p\377\322\260" "o\377\321\255j\377\315\250b\377\245\207>\377zf\40\376\32-M\234\206\377" "\377\377\0\21""7r\4\236\204\257Z\377^\2201\3633k\13\237\10%`\362\274" "\272\251\377\203p+\377\200k\"\377\216v/\377\210q*\377~i\36\377\214\177" "J\377\266\271\270\377\"k1\375\273\300" "\303\377\355\355\351\377\316\315\301\377HND\377hmd\377\345\344\333\377" "\355\355\351\377|\210\223\377r\201\230\376\1\37[\250\377\377\377\0E|" "\26\363\251\312\204\377\203\231\301n\377\7\215\272\\\377\\\234\27\377" "\235\303t\377i\230\77\377Hu0\377\352\353\345\377Wk\200\377\202$\77\\" "\377\11\227\242\254\377\340\342\340\377.Gb\377\221\236\256\377\20,e\363" "\0\36\\\2E|\26\363\240\305y\377e\241$\377\203f\242%\377\5g\242&\377m" "\246/\377\254\315\211\377p\234I\377P~7\377\2033Qs\377\10Vo\211\377l\201" "\227\3773Qs\377\205\227\253\377%>s\371\0\36\\\4E|\26\363\300\331\246" "\377\205\273\326\237\377\4\307\335\260\377\317\341\274\377N\202'\377" ">gd\377\206Ad\211\377\5\226\251\276\377\34""7n\371\377\377\377\0E|\26" "\363\312\337\263\377\203\327\347\307\377\5\321\343\276\377\307\335\260" "\377\317\340\274\377Q\203*\377b\210\211\377\206Pv\240\377\6g\210\254" "\377\221\244\277\377\6%a\273\377\377\377\0""6p\6\376E{\27\365\202H~\33" "\365\17I~\32\366\307\333\263\377\316\340\273\377L\200!\364#F\\\366\250" "\273\322\377\202\240\300\377_\205\257\377Z\201\254\377X\200\253\377X" "\200\254\377x\230\273\377\244\270\317\377'Bw\365\0\36\\:\205\377\377" "\377\0\16""7r\4\236\251\305\216\377L\201\37\3535o\4*\4\"_r\30""4l\365" "p\210\254\374\246\270\320\377\255\300\326\377\257\302\327\377\252\275" "\322\377\203\230\270\375#>s\363\2\37Z`\206\377\377\377\0\20""7r\4\235" "9s\7\3535o\4#\377\377\377\0\0\0\0\16\0\17-5\5\40V\247\6$^\344\3!^\370" "\3!]\371\5#]\356\5\37S\276\0\14%Z\0\0\0""1\0\0\0!\0\0\0\21\204\377\377" "\377\0\2""5o\4i5o\4\34\202\377\377\377\0\14\0\0\0\4\0\0\0\20\0\0\0\36" "\0\0\0/\0\0\0B\0\0\0T\0\0\0R\0\0\0@\0\0\0.\0\0\0\36\0\0\0\20\0\0\0\2"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_systray_birthday) #endif #ifdef __GNUC__ const guint8 osmo_stock_systray_birthday[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_systray_birthday[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (6112) */ "\0\0\27\370" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (256) */ "\0\0\1\0" /* width (64) */ "\0\0\0@" /* height (64) */ "\0\0\0@" /* pixel_data: */ "\377\377\377\377\0\256\377\377\377\0\2\211\0\0\15\200\0\0\4\274\377\377" "\377\0\5\212\0\0;\210\0\0\237\211\0\0\364\210\0\0\310\207\0\0\"\272\377" "\377\377\0\1\211\0\0l\204\211\0\0\377\2\211\0\0\362\212\0\0;\250\377" "\377\377\0\2\222\0\0\7\226\0\0\21\216\377\377\377\0\1\210\0\0r\206\211" "\0\0\377\1\211\0\0\300\246\377\377\377\0\6\237\0\0\10\222\0\0|\221\0" "\0\346\221\0\0\375\221\0\0\314\221\0\0A\213\377\377\377\0\1\211\0\0j" "\203\211\0\0\377\2\223\23\23\377\267UW\377\203\211\0\0\377\1\210\0\0" ":\244\377\377\377\0\2\237\0\0\10\222\0\0\270\204\221\0\0\377\1\221\0" "\0\311\212\377\377\377\0\2\211\0\0""8\211\0\0\372\202\211\0\0\377\4\223" "\21\20\377\345\237\237\377\371\307\313\377\234$%\377\202\211\0\0\377" "\1\211\0\0\244\243\377\377\377\0\2\237\0\0\10\222\0\0\270\206\221\0\0" "\377\1\223\0\0B\210\377\377\377\0\2\214\0\0\24\211\0\0\342\202\211\0" "\0\377\5\221\14\13\377\343\214\210\377\366\262\257\377\367\275\276\377" "\315z|\377\202\211\0\0\377\2\210\0\0\361\200\0\0\6\241\377\377\377\0" "\2\237\0\0\10\222\0\0\270\203\221\0\0\377\2\253\36\27\377\242\21\14\377" "\202\221\0\0\377\1\221\0\0\273\207\377\377\377\0\2\200\0\0\2\210\0\0" "\271\202\211\0\0\377\7\212\1\1\377\324h_\377\363\233\223\377\364\247" "\241\377\366\262\260\377\357\260\261\377\213\3\3\377\202\211\0\0\377" "\1\210\0\0K\240\377\377\377\0\2\222\0\0\7\222\0\0\270\203\221\0\0\377" "\3\254!\33\377\350dL\377\315=,\377\203\221\0\0\377\1\220\0\0\27\206\377" "\377\377\0\1\211\0\0\200\203\211\0\0\377\7\273=4\377\360\205v\377\361" "\220\205\377\363\234\223\377\364\247\242\377\366\263\261\377\24734\377" "\202\211\0\0\377\1\210\0\0\237\240\377\377\377\0\1\221\0\0\211\203\221" "\0\0\377\5\252\"\35\377\352mY\377\353fN\377\351Z@\377\226\5\3\377\202" "\221\0\0\377\2}\31\31hQQQ\23\204\377\377\377\0\2\210\0\0G\211\0\0\375" "\202\211\0\0\377\10\244\34\25\377\354nY\377\356zh\377\360\205w\377\361" "\221\206\377\363\234\224\377\364\250\243\377\313lk\377\202\211\0\0\377" "\2\211\0\0\355\200\0\0\4\236\377\377\377\0\12\222\0\0\77\221\0\0\375" "\222\3\3\377\226\13\13\377\256.+\377\354{j\377\355q]\377\353fN\377\352" "[A\377\246\23\14\377\202\221\0\0\377\7o+,\377RRT\372RRT\264QQT[UUU\14" "\215\0\0\35\211\0\0\353\202\211\0\0\377\12\224\11\6\377\343Q9\377\353" "dL\377\355o[\377\356{i\377\360\206x\377\361\221\206\377\363\235\225\377" "\354\232\226\377\212\2\2\377\202\211\0\0\377\1\211\0\0E\235\377\377\377" "\0\13\231\0\0\17\221\0\0\341\221\0\0\377\235\33\33\377\264JH\377\360" "\240\226\377\361\221\203\377\355s_\377\353fN\377\352[A\377\266#\26\377" "\202\221\0\0\377\1{\34\35\377\203RRT\377\2SPR\365\201\15\15\354\202\211" "\0\0\377\13\213\1\0\377\3234\32\377\350M/\377\352Y>\377\353dM\377\355" "p[\377\356{j\377\360\206x\377\362\222\207\377\363\235\226\377\245,*\377" "\202\211\0\0\377\1\211\0\0\231\235\377\377\377\0\1\221\0\0\244\202\221" "\0\0\377\10\270YY\377\360\303\277\377\371\320\313\377\366\272\261\377" "\356xf\377\353fN\377\352[A\377\3072\40\377\202\221\0\0\377\5\211\17\17" "\377^KL\377\\BD\377TOQ\377z\35\36\377\203\211\0\0\377\13\276\31\2\377" "\3457\23\377\347B\"\377\350N0\377\352Y\77\377\353eM\377\355p\\\377\356" "|j\377\360\207y\377\362\222\210\377\310^Y\377\202\211\0\0\377\2\211\0" "\0\351\252\0\0\3\233\377\377\377\0\1\221\0\0X\203\221\0\0\377\12\345" "\263\261\377\375\354\352\377\375\355\353\377\372\333\327\377\357|j\377" "\353fN\377\352[A\377\327A)\377\220\0\0\377\211\0\0\377\203\205\0\0\377" "\2\206\3\3\377\210\0\0\377\202\211\0\0\377\15\251\16\0\377\343(\0\377" "\344,\5\377\3457\24\377\347C\"\377\350N1\377\352Z\77\377\353eN\377\355" "q\\\377\357|k\377\360\210z\377\350\206|\377\212\1\1\377\202\211\0\0\377" "\1\210\0\0>\232\377\377\377\0\2\252\0\0\3\221\0\0\337\202\221\0\0\377" "\16\245!\40\377\370\316\311\377\373\343\340\377\374\343\340\377\371\317" "\311\377\356yf\377\353fN\377\352[A\377\334E,\377\207\0\0\377\205\0\0" "\377\214\16\16\377\213\14\14\377\205\1\1\377\202\205\0\0\377\3\210\0" "\0\377\230\7\0\377\337&\0\377\202\343(\0\377\12\344-\6\377\3458\24\377" "\347C#\377\350O1\377\352Z@\377\353fO\377\355q]\377\357}l\377\360\210" "z\377\237\37\35\377\202\211\0\0\377\1\212\0\0q\232\377\377\377\0\1\223" "\0\0I\203\221\0\0\377\16\224\5\5\377\265LK\377\313|{\377\322\210\205" "\377\313nj\377\304A6\377\331R\77\377\351Z@\377\230\17\12\377\205\0\0" "\377\206\2\2\377\260WV\377\266VN\377\224\17\6\377\202\205\0\0\377\2\210" "\1\0\377\325\"\0\377\204\343(\0\377\11\344-\6\377\3458\25\377\347D$\377" "\350O2\377\352[A\377\354fO\377\355r^\377\357}l\377\2574.\377\202\211" "\0\0\377\1\211\0\0\231\232\377\377\377\0\1\223\0\0-\204\221\0\0\377\4" "\227\15\15\377\237!!\377\241&&\377\230\20\20\377\202\221\0\0\377\1\225" "\5\4\377\202\205\0\0\377\4\213\10\5\377\355\305\273\377\356\275\256\377" "\3076\13\377\202\205\0\0\377\1\214\3\0\377\206\343(\0\377\10\344.\7\377" "\3459\26\377\347D$\377\350P3\377\352[A\377\354gP\377\355r_\377\277C:" "\377\202\211\0\0\377\1\211\0\0\300\231\377\377\377\0\4UUU\36QQT\235\204" "\21\22\376\217\3\3\377\202\221\0\0\377\3\221\1\1\377\223\5\5\377\224" "\6\6\377\203\221\0\0\377\1\214\0\0\377\202\205\0\0\377\4\244\32\5\377" "\361\312\276\377\355\274\254\377\266(\11\377\202\205\0\0\377\1\226\10" "\0\377\207\343(\0\377\7\344.\10\377\345:\26\377\347E%\377\351P3\377\352" "\\B\377\354gQ\377\315N@\377\202\211\0\0\377\3\205\5\6\371RRU`UUU\17\225" "\377\377\377\0\3NNY\27SST\221RRT\370\202RRT\377\12SRT\377\\MN\377\210" "hi\377\260\202\202\377\262vv\377\255cc\377\247PP\377\234&&\377\221\1" "\1\377\215\0\0\377\202\205\0\0\377\4\222\12\1\377\316nY\377\302]K\377" "\207\4\3\377\202\205\0\0\377\1\263\23\0\377\210\343(\0\377\6\344/\10" "\377\345:\27\377\347E%\377\351Q4\377\352\\C\377\333VC\377\203\211\0\0" "\377\3VMO\377SST\371PPRs\222\377\377\377\0\3PPP\20RRT\206RRT\364\203" "RRT\377\3TTV\377\201\200\201\377\273\271\272\377\205\311\307\307\377" "\4\313\246\246\377\314\"\"\377\272\0\0\377\211\0\0\377\202\205\0\0\377" "\2\215\20\20\377\212\13\13\377\203\205\0\0\377\2\236\11\0\377\326\"\0" "\377\210\343(\0\377\5\344/\11\377\346;\30\377\347F&\377\351Q5\377\350" "ZA\377\203\211\0\0\377\3^AB\377RRT\377SST\364\220\377\377\377\0\3]]]" "\13RRTzRRT\357\203RRT\377\3SSU\377{z|\377\270\266\266\377\205\311\307" "\307\377\3\311\306\306\377\315qq\377\322\6\6\377\202\323\0\0\377\2\274" "\1\1\377\207\0\0\377\204\205\0\0\377\1\206\0\0\377\203\211\0\0\377\15" "\233\10\0\377\262\22\0\377\272\26\0\377\302\31\0\377\310\34\0\377\320" "\40\0\377\330#\0\377\334%\0\377\336&\0\377\342/\12\377\344:\30\377\335" "\77#\377\3138$\377\203\211\0\0\377\3[EF\377RRT\377SSU\361\217\377\377" "\377\0\2PPP\20RRU\337\204RRT\377\2vuw\377\264\262\262\377\206\311\307" "\307\377\2\313\263\263\377\32077\377\203\323\0\0\377\10\324\3\3\377\324" "\12\12\377\310\10\10\377\251\0\0\377\246\0\0\377\253\0\0\377\267\0\0" "\377\243\31\31\377\222\211\0\0\377\1\203\11\11\377\202RRT\377\1RRT\351" "\217\377\377\377\0\1RRT\300\204RRT\377\3__a\377\233\232\233\377\304\302" "\302\377\205\311\307\307\377\2\315\205\205\377\322\16\16\377\203\323" "\0\0\377\3\323\6\6\377\324\13\13\377\323\5\5\377\203\323\0\0\377\5\321" "\24\24\377\314\214\214\377\310\305\305\377\253hh\377\222\33\33\377\220" "\211\0\0\377\4o34\377SSU\377RRT\377RRT\352\217\377\377\377\0\207RRT\377" "\6XXZ\377\201\201\202\377\260\257\257\377\311\307\307\377\312\275\275" "\377\320KK\377\203\323\0\0\377\1\323\1\1\377\202\324\11\11\377\1\323" "\1\1\377\203\323\0\0\377\2\320KK\377\311\273\273\377\204\311\307\307" "\377\7\274\234\234\377\247\\\\\377\237EE\377\23266\377\226&&\377\220" "\27\27\377\213\7\7\377\206\211\0\0\377\7\207\3\3\377\201\14\15\377\205" "OP\377\302\301\301\377UUW\377RRT\377RRT\353\217\377\377\377\0\1RRT\374" "\211RRT\377\3hhj\377\266JJ\377\322\5\5\377\204\323\0\0\377\1\323\1\1" "\377\203\323\0\0\377\2\322\26\26\377\313\216\216\377\215\311\307\307" "\377\10\273\265\265\377k^_\377YHI\377ZEG\377\\DF\377WLM\377jjl\377\261" "\260\261\377\202\313\312\312\377\3VVX\377RRT\377RRT\354\217\377\377\377" "\0\5RRT\371RRT\377ZZ\\\377\223\224\224\377^^_\377\207RRT\377\3_OQ\377" "\244EE\377\316\31\31\377\205\323\0\0\377\2\317MM\377\311\273\273\377" "\214\311\307\307\377\3\310\306\306\377\211\210\212\377TTU\377\203RRT" "\377\3ZZ\\\377\232\231\232\377\312\311\311\377\203\313\312\312\377\3" "WWY\377RRT\377RRT\355\217\377\377\377\0\10RRT\366RRT\377^^_\377\350\351" "\347\377\345\346\344\377\267\270\270\377\177\177\201\377UUW\377\207R" "RT\377\5\201JK\377\27522\377\322\4\4\377\322\27\27\377\314\220\220\377" "\215\311\307\307\377\2\256\254\254\377]]_\377\203RRT\377\3TSU\377\242" "PQ\377\313jj\377\205\313\312\312\377\3WWY\377RRT\377SST\356\217\377\377" "\377\0\3RRT\363RRT\377\\\\]\377\204\350\351\347\377\3\332\333\332\377" "\244\245\245\377kkm\377\207RRT\377\4^MO\377\177st\377\251\247\250\377" "\310\306\306\377\212\311\307\307\377\2\302\300\300\377wvx\377\204RRT" "\377\4{Z[\377\314+,\377\325\0\0\377\320bb\377\205\313\312\312\377\3W" "WY\377RRT\377RRT\357\217\377\377\377\0\3RRT\360RRT\377ZZ\\\377\207\350" "\351\347\377\3\312\312\311\377\236qq\377tJJ\377\207RRT\377\3__`\377\217" "\216\217\377\275\273\273\377\206\311\307\307\377\3\310\306\306\377\231" "\230\230\377VVX\377\203RRT\377\3\\XZ\377\267OO\377\325\6\6\377\202\325" "\0\0\377\1\320ee\377\205\313\312\312\377\3XXZ\377RRT\377RRT\360\217\377" "\377\377\0\3RRT\355RRT\377WWY\377\210\350\351\347\377\5\337\203\202\377" "\323\0\0\377\314''\377\233RR\377VRT\377\206RRT\377\4SSU\377tsu\377\245" "\244\244\377\310\306\306\377\202\311\307\307\377\2\263\261\261\377ee" "g\377\203RRT\377\3SSU\377\214rs\377\321!!\377\204\325\0\0\377\1\317g" "g\377\205\313\312\312\377\3XXZ\377RRT\377QQT\361\217\377\377\377\0\3" "RRT\352RRT\377UUW\377\210\350\351\347\377\1\337\203\202\377\203\323\0" "\0\377\3\323\26\26\377\272SS\377qbc\377\207RRT\377\3[[]\377\207\206\207" "\377|{|\377\204RRT\377\3jjl\377\262\261\261\377\316\221\221\377\205\325" "\0\0\377\1\320hh\377\205\313\312\312\377\3XXZ\377RRT\377RRT\362\217\377" "\377\377\0\3RRT\347RRT\377SSU\377\210\350\351\347\377\1\337\203\202\377" "\205\323\0\0\377\4\340\227\225\377\307\310\306\377\216\216\216\377[[" "]\377\211RRT\377\5[[]\377\233\232\233\377\312\311\311\377\313\312\312" "\377\316\221\221\377\202\325\0\0\377\1\326\34\34\377\202\325\0\0\377" "\1\320ii\377\205\313\312\312\377\3YY[\377RRT\377RRT\363\217\377\377\377" "\0\1RRT\344\202RRT\377\210\350\351\347\377\1\337\203\202\377\202\323" "\0\0\377\1\323\17\16\377\202\323\0\0\377\1\341\232\231\377\202\350\351" "\347\377\4\343\344\342\377\263\264\263\377{{|\377SSU\377\204RRT\377\3" "SSU\377\202\202\203\377\302\301\301\377\203\313\312\312\377\1\316\221" "\221\377\202\325\0\0\377\1\326\35\34\377\202\325\0\0\377\1\317kk\377" "\205\313\312\312\377\3ZZ\\\377RRT\377RRT\364\217\377\377\377\0\1RRT\341" "\202RRT\377\1\345\346\344\377\207\350\351\347\377\1\337\203\202\377\202" "\323\0\0\377\1\324\"\"\377\202\323\0\0\377\1\341\235\234\377\205\350" "\351\347\377\2\327\330\327\377\223\224\224\377\202RRT\377\2ZZ\\\377\262" "\261\261\377\205\313\312\312\377\1\316\221\221\377\202\325\0\0\377\1" "\326\34\34\377\202\325\0\0\377\1\320mm\377\205\313\312\312\377\3ZZ\\" "\377RRT\377RRT\365\217\377\377\377\0\1RRT\336\202RRT\377\1\344\345\343" "\377\207\350\351\347\377\1\337\203\202\377\202\323\0\0\377\1\325!!\377" "\202\323\0\0\377\1\341\240\237\377\206\350\351\347\377\1\313\314\313" "\377\202RRT\377\1eeg\377\206\313\312\312\377\1\316\221\221\377\202\325" "\0\0\377\1\326\34\34\377\202\325\0\0\377\1\320nn\377\205\313\312\312" "\377\3[Z[\377RRT\377RRT\367\217\377\377\377\0\1RRT\333\202RRT\377\1\342" "\343\341\377\207\350\351\347\377\1\337\203\202\377\202\323\0\0\377\1" "\324\40\40\377\202\323\0\0\377\1\342\242\240\377\206\350\351\347\377" "\1\311\311\310\377\202RRT\377\1eeg\377\206\313\312\312\377\1\316\221" "\221\377\202\325\0\0\377\1\326\34\33\377\202\325\0\0\377\1\317pp\377" "\205\313\312\312\377\3ZZ\\\377RRT\377RRT\370\217\377\377\377\0\1QQT\330" "\202RRT\377\1\340\341\337\377\207\350\351\347\377\1\337\203\202\377\202" "\323\0\0\377\1\325\37\37\377\202\323\0\0\377\1\342\244\243\377\206\350" "\351\347\377\1\305\306\305\377\202RRT\377\1fef\377\206\313\312\312\377" "\1\316\221\221\377\202\325\0\0\377\1\325\33\33\377\202\325\0\0\377\1" "\320qq\377\205\313\312\312\377\3[[]\377RRT\377RRT\371\217\377\377\377" "\0\1QQT\325\202RRT\377\1\336\336\336\377\207\350\351\347\377\1\337\203" "\202\377\202\323\0\0\377\1\324\36\35\377\202\323\0\0\377\1\342\246\245" "\377\206\350\351\347\377\1\302\303\303\377\202RRT\377\1fef\377\206\313" "\312\312\377\1\316\221\221\377\202\325\0\0\377\1\325\33\33\377\202\325" "\0\0\377\1\317ss\377\205\313\312\312\377\3\\\\]\377RRT\377RRT\372\217" "\377\377\377\0\1SST\322\202RRT\377\1\334\335\333\377\207\350\351\347" "\377\1\337\203\202\377\202\323\0\0\377\1\325\35\34\377\202\323\0\0\377" "\1\342\251\250\377\206\350\351\347\377\1\301\302\301\377\202RRT\377\1" "fef\377\206\313\312\312\377\1\316\221\221\377\202\325\0\0\377\1\326\32" "\32\377\202\325\0\0\377\1\317tt\377\205\313\312\312\377\3\\\\]\377RR" "T\377RRT\373\217\377\377\377\0\1SST\317\202RRT\377\1\332\333\331\377" "\207\350\351\347\377\1\337\203\202\377\202\323\0\0\377\1\324\34\33\377" "\202\323\0\0\377\1\342\253\251\377\206\350\351\347\377\1\276\277\276" "\377\202RRT\377\1eeg\377\206\313\312\312\377\1\316\221\221\377\202\325" "\0\0\377\1\326\32\32\377\202\325\0\0\377\1\320vv\377\205\313\312\312" "\377\3\\\\^\377RRT\377RRT\374\217\377\377\377\0\1SST\314\202RRT\377\1" "\330\330\327\377\207\350\351\347\377\1\337\203\202\377\202\323\0\0\377" "\1\325\33\32\377\202\323\0\0\377\1\343\256\254\377\206\350\351\347\377" "\1\274\274\273\377\202RRT\377\1eeg\377\206\313\312\312\377\1\316\221" "\221\377\202\325\0\0\377\1\326\32\31\377\202\325\0\0\377\1\317xx\377" "\205\313\312\312\377\3]\\^\377RRT\377RRT\375\217\377\377\377\0\1RRT\311" "\202RRT\377\1\326\327\325\377\207\350\351\347\377\1\337\203\202\377\202" "\323\0\0\377\1\324\32\31\377\202\323\0\0\377\1\343\260\257\377\206\350" "\351\347\377\1\271\272\271\377\202RRT\377\1eeg\377\206\313\312\312\377" "\1\316\221\221\377\202\325\0\0\377\1\325\31\31\377\202\325\0\0\377\1" "\317xx\377\205\313\312\312\377\3]]^\377RRT\377RRT\376\217\377\377\377" "\0\1RRT\306\202RRT\377\1\323\324\323\377\207\350\351\347\377\1\337\203" "\202\377\202\323\0\0\377\1\325\31\30\377\202\323\0\0\377\1\343\262\261" "\377\206\350\351\347\377\1\266\267\266\377\202RRT\377\1ffh\377\206\313" "\312\312\377\1\316\221\221\377\202\325\0\0\377\1\325\31\31\377\202\325" "\0\0\377\1\317zz\377\204\313\312\312\377\2\251\250\251\377UUW\377\202" "RRT\377\217\377\377\377\0\1RRT\303\202RRT\377\1\321\322\322\377\207\350" "\351\347\377\1\337\203\202\377\202\323\0\0\377\1\324\30\27\377\202\323" "\0\0\377\1\343\265\263\377\206\350\351\347\377\1\264\264\264\377\202" "RRT\377\1ffh\377\206\313\312\312\377\1\316\221\221\377\202\325\0\0\377" "\1\326\31\30\377\202\325\0\0\377\1\317||\377\202\313\312\312\377\2\305" "\304\304\377\202\202\203\377\203RRT\377\1RRT\306\217\377\377\377\0\1" "RRT\300\202RRT\377\1\320\321\320\377\207\350\351\347\377\1\337\203\202" "\377\202\323\0\0\377\1\324\27\26\377\202\323\0\0\377\1\344\267\265\377" "\206\350\351\347\377\1\261\262\261\377\202RRT\377\1ggi\377\206\313\312" "\312\377\1\316\221\221\377\202\325\0\0\377\1\325\17\16\377\202\325\0" "\0\377\4\317}}\377\313\312\312\377\256\256\256\377bbd\377\203RRT\377" "\2RRT\327QQQ,\217\377\377\377\0\1RRT\275\202RRT\377\1\315\316\315\377" "\207\350\351\347\377\1\337\203\202\377\202\323\0\0\377\1\324\26\25\377" "\202\323\0\0\377\1\344\271\270\377\206\350\351\347\377\1\257\257\260" "\377\202RRT\377\1ggi\377\206\313\312\312\377\1\316\221\221\377\205\325" "\0\0\377\3\314\177\177\377\211\211\212\377SSU\377\202RRT\377\3RRT\376" "RRT\217UUU\11\220\377\377\377\0\1RRT\272\202RRT\377\2\206\206\207\377" "\313\314\314\377\206\350\351\347\377\1\337\203\202\377\202\323\0\0\377" "\1\324\25\24\377\202\323\0\0\377\1\344\273\272\377\206\350\351\347\377" "\1\254\255\255\377\202RRT\377\1ggi\377\206\313\312\312\377\1\316\221" "\221\377\203\325\0\0\377\3\325\2\2\377\305WW\377fdf\377\203RRT\377\2" "RRS\337TTT@\222\377\377\377\0\1RRT\203\204RRT\377\3uvw\377\267\267\267" "\377\345\346\344\377\203\350\351\347\377\1\337\203\202\377\202\323\0" "\0\377\1\324\24\23\377\202\323\0\0\377\1\344\276\274\377\206\350\351" "\347\377\1\251\252\253\377\202RRT\377\1hhi\377\206\313\312\312\377\1" "\316\221\221\377\202\325\0\0\377\3\324\20\20\377\242hh\377TTV\377\203" "RRT\377\2RRS\234NNN\15\223\377\377\377\0\3III\7SST\252RRT\374\204RRT" "\377\5bcd\377\241\241\241\377\334\335\334\377\350\351\347\377\337\203" "\202\377\202\323\0\0\377\1\323\2\2\377\202\323\0\0\377\1\344\301\277" "\377\206\350\351\347\377\1\250\250\250\377\202RRT\377\1hhi\377\206\313" "\312\312\377\4\316\221\221\377\325\0\0\377\316*+\377v_a\377\203RRT\377" "\2RRT\346RRUK\227\377\377\377\0\3UUU\36SST\210RRT\354\204RRT\377\3VV" "X\377\213\214\214\377\316\177\177\377\205\323\0\0\377\1\345\303\301\377" "\206\350\351\347\377\1\245\246\246\377\202RRT\377\1hhi\377\206\313\312" "\312\377\3\315\221\221\377\271BB\377WTV\377\203RRT\377\2RRS\250UUU\22" "\232\377\377\377\0\3UUU\11RRUcRRU\320\205RRT\377\2\213]]\377\31344\377" "\203\323\0\0\377\1\345\304\303\377\206\350\351\347\377\1\243\243\243" "\377\202RRT\377\1hgi\377\205\313\312\312\377\2\274\273\274\377qno\377" "\203RRT\377\2RRT\355RRUW\237\377\377\377\0\3RRR>RRT\253RRT\374\204RR" "T\377\4zNO\377\304//\377\323\0\0\377\345\304\303\377\206\350\351\347" "\377\1\240\240\240\377\202RRT\377\1hgi\377\204\313\312\312\377\2\233" "\233\234\377XXZ\377\203RRT\377\2RRT\264RRR\31\242\377\377\377\0\3OOX" "\35RRT\206RRT\353\204RRT\377\3oDF\377\220\201\201\377\313\314\313\377" "\205\350\351\347\377\1\235\236\236\377\202RRT\377\1hhj\377\202\313\312" "\312\377\2\277\276\276\377vuv\377\203RRT\377\2RRT\362RRUc\246\377\377" "\377\0\3```\10QQTaSST\317\205RRT\377\3uuv\377\266\266\265\377\345\346" "\344\377\202\350\351\347\377\1\233\233\233\377\202RRT\377\4hhj\377\313" "\312\312\377\242\241\242\377ZZ\\\377\203RRT\377\2QQT\277PPX\40\252\377" "\377\377\0\3QQUA\377\5\77=@\37799" "9\377;97\376QH+YQH+\0\206\377\377\377\0\13MG-\237668\377<;=\37799:\377" "779\377668\377<:<\377=<>\377IC1\367\200\200\0\2\200\200\0\0\205\377\377" "\377\0\13HC2\354889\377f\\J\377\242\213`\377\310\255y\377\306\255z\377" "UOE\377889\377768\377ZO%NZO%\0\205\377\377\377\0\3n\\#\352\254\225e\377" "\335\305\225\377\202\352\326\260\377\6\344\314\237\377\322\267\206\377" "\207vW\377EA7\375ZN'}ZN'\0\205\377\377\377\0\13\202k\35\270\274\241b" "\377\340\305\223\377\343\312\234\377\342\312\233\377\336\303\220\377" "\331\272\200\377\322\257m\377\202m\35\364yg\30*yg\30\0\205\377\377\377" "\0\13{c\27M\204m!\366\325\266{\377\333\275\206\377\332\275\205\377\330" "\270}\377\323\261q\377\252\213B\377{g\33\334\0\0\0\1\0\0\0\0\205\377" "\377\377\0\13\0\36\\\14RP7\361\204p&\377\262\224N\377\302\243_\377\272" "\231S\377\233\2007\377\177l%\377\24*Q\350\0\36\\\15\0\36\\\0\205\377" "\377\377\0\13\0\36\\oG[\202\367\313\305\254\377\217\200G\377zf!\377{" "j*\377\241\226i\377\317\320\313\3771Gp\367\1\36[}\1\36[\0\205\377\377" "\377\0\13\2\40\\\315}\215\241\377\236\251\262\377\305\313\314\377#=Y" "\3770Ib\377\344\346\343\377\177\216\234\377\177\217\242\377\2\40\\\335" "\2\40\\\0\205\377\377\377\0\4\1\37]\366\234\253\274\377Ea~\377m\202\230" "\377\2023Rs\377\5x\213\237\377Fb\200\377\221\242\264\377\1\37]\367\1" "\37]\0\205\377\377\377\0\3\4\"_\345\230\252\300\377\\|\236\377\204Ei" "\220\377\4q\214\252\377\177\226\261\377\4\"_\350\4\"_\0\205\377\377\377" "\0\13\6$a\266Wr\234\372\250\275\324\377v\227\272\377g\214\263\377f\213" "\263\377\204\241\301\377\255\300\326\377;W\210\370\3!^\201\3!^\0\205" "\377\377\377\0\13\0\36\\\23\4\"_\345B]\214\367\217\244\301\377\231\256" "\310\377\234\260\312\377\215\243\301\377(G|\367\4#`\317\0\36\\\12\0\36" "\\\0\206\377\377\377\0\11\0\36\\\15\2\40^w\6%b\317\6%b\326\6%b\331\6" "$a\331\2\40^{\0\36\\\14\0\36\\\0\204\377\377\377\0"}; #endif /* CONTACTS_ENABLED */ #ifdef TASKS_ENABLED /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_tasks_add) #endif #ifdef __GNUC__ const guint8 osmo_stock_tasks_add[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_tasks_add[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1702) */ "\0\0\6\276" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\2\244\244\244\240\240\240\240\377\202\241\241\241" "\377\17\240\240\240\377\237\237\237\377\235\235\235\377\234\234\234\377" "\233\233\233\377\231\231\231\377\230\230\230\377\227\227\227\377\226" "\226\226\377\224\224\224\377\223\223\223\377\222\222\222\377\220\220" "\220\377\217\217\217\377\223\223\223\240\205\377\377\377\0\2\240\240" "\240\377\374\374\374\377\202\376\376\376\377\203\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\202\371\371" "\371\377\2\366\366\366\377\216\216\216\377\205\377\377\377\0\3\237\237" "\237\377\376\376\376\377\357\357\357\377\202\360\360\360\377\16\357\357" "\357\377\356\356\356\377\355\355\355\377\353\353\353\377\352\352\352" "\377\350\350\350\377\346\346\346\377\344\344\344\377\342\342\342\377" "\340\340\340\377\335\335\335\377\333\333\333\377\371\371\371\377\216" "\216\216\377\205\377\377\377\0\3\236\236\236\377\376\376\376\377\361" "\361\361\377\202\362\362\362\377\16\361\361\361\377\360\360\360\377\356" "\356\356\377\355\355\355\377\353\353\353\377\351\351\351\377\347\347" "\347\377\344\344\344\377\342\342\342\377\340\340\340\377\336\336\336" "\377\334\334\334\377\371\371\371\377\215\215\215\377\205\377\377\377" "\0\3\236\236\236\377\376\376\376\377\363\363\363\377\202\364\364\364" "\377\16\363\363\363\377\361\361\361\377\357\357\357\377\355\355\355\377" "\353\353\353\377\351\351\351\377\347\347\347\377\345\345\345\377\343" "\343\343\377\340\340\340\377\336\336\336\377\334\334\334\377\371\371" "\371\377\215\215\215\377\205\377\377\377\0\23\234\234\234\377\376\376" "\376\377\365\365\365\377\16\10\20\377\365\365\365\377\364\364\364\377" "\252\252\252\377\250\250\250\377\247\247\247\377\246\246\246\377\244" "\244\244\377\242\242\242\377\241\241\241\377\237\237\237\377\235\235" "\235\377\234\234\234\377\334\334\334\377\371\371\371\377\215\215\215" "\377\205\377\377\377\0\23\233\233\233\377\375\375\375\377\366\366\366" "\377\370\370\370\377\367\367\367\377\365\365\365\377\363\363\363\377" "\361\361\361\377\356\356\356\377\354\354\354\377\352\352\352\377\347" "\347\347\377\345\345\345\377\343\343\343\377\340\340\340\377\336\336" "\336\377\334\334\334\377\371\371\371\377\215\215\215\377\205\377\377" "\377\0\23\232\232\232\377\375\375\375\377\367\367\367\377\371\371\371" "\377\367\367\367\377\365\365\365\377\363\363\363\377\360\360\360\377" "\356\356\356\377\354\354\354\377\351\351\351\377\347\347\347\377\345" "\345\345\377\343\343\343\377\340\340\340\377\336\336\336\377\334\334" "\334\377\371\371\371\377\214\214\214\377\205\377\377\377\0\23\231\231" "\231\377\375\375\375\377\366\366\366\377\16\10\20\377\366\366\366\377" "\364\364\364\377\252\252\252\377\250\250\250\377\247\247\247\377\245" "\245\245\377\244\244\244\377\242\242\242\377\240\240\240\377\237\237" "\237\377\340\340\340\377\335\335\335\377\333\333\333\377\370\370\370" "\377\214\214\214\377\205\377\377\377\0\2\230\230\230\377\374\374\374" "\377\202\365\365\365\377\13\364\364\364\377\363\363\363\377\361\361\361" "\377\357\357\357\377\355\355\355\377\353\353\353\377\350\350\350\377" "\346\346\346\377\344\344\344\377\341\342\341\377T\204+\377\2035o\4\377" "\2Ev\34\3775o\4\1\204\377\377\377\0\2\226\226\226\377\374\374\374\377" "\202\363\363\363\377\20\362\362\362\377\361\361\361\377\357\357\357\377" "\356\356\356\377\354\354\354\377\352\352\352\377\347\347\347\377\345" "\345\345\377\343\343\343\377\334\335\332\377=u\16\377\265\322\226\377" "\273\325\235\377\264\321\224\377@w\22\3775o\4\10\204\377\377\377\0\24" "\225\225\225\377\373\373\373\377\361\361\361\377\16\10\20\377\360\360" "\360\377\357\357\357\377\247\247\247\377\246\246\246\377\244\244\244" "\377\243\243\243\377\241\241\241\377\240\240\240\377\237\237\237\377" "\232\234\230\377Ax\23\377\266\322\226\377\222\274c\377\266\322\226\377" "G|\32\3775o\4\10\204\377\377\377\0\2\224\224\224\377\373\373\373\377" "\202\357\357\357\377\20\356\356\356\377\355\355\355\377\354\354\354\377" "\353\353\353\377\351\351\351\377\347\347\347\377\344\345\344\377\336" "\337\334\377\334\335\332\377\325\330\322\377By\24\377\266\322\226\377" "\222\274c\377\266\322\226\377G|\32\3775o\4\17\2025o\4\10\4""5o\4\1\377" "\377\377\0\222\222\222\377\373\373\373\377\202\355\355\355\377\10\354" "\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\347\347" "\347\377\346\346\346\377O\201$\377>v\17\377\202Cz\26\377\5X\212,\377" "\264\321\224\377\222\274c\377\264\321\224\377^\2154\377\202F|\31\374" "\17\77w\20\3746q\4\333\377\377\377\0\221\221\221\377\372\372\372\377" "\353\353\353\377\16\10\20\377\352\352\352\377\351\351\351\377\243\243" "\243\377\242\242\242\377\241\241\241\377\240\240\240\3775o\4\377\265" "\322\225\377\202\266\322\226\377\5\264\321\224\377\240\305x\377\222\274" "c\377\240\305x\377\262\320\222\377\202\255\315\212\377\6\264\321\224" "\3775o\4\377\377\377\377\0\220\220\220\377\372\372\372\377\351\351\351" "\377\202\350\350\350\377\15\347\347\347\377\346\346\346\377\345\345\345" "\377\344\344\344\377\342\342\342\3775o\4\377\250\311\202\377x\255>\377" "|\257D\377v\253<\377l\245-\377b\237\37\377X\231\21\377\203Q\225\7\377" "\6\222\274d\3775o\4\377\377\377\377\0\217\217\217\377\371\371\371\377" "\347\347\347\377\202\346\346\346\377\7\345\345\345\377\344\344\344\377" "\343\343\343\377\342\342\342\377\341\341\341\3775o\4\377\216\272^\377" "\202\212\270X\377\5\210\266U\377h\243(\377Q\225\7\377h\243(\377\210\266" "U\377\202\212\270X\377\5\216\272^\3775o\4\377\377\377\377\0\215\215\215" "\377\371\371\371\377\203\344\344\344\377\16\343\343\343\377\342\342\342" "\377\341\341\341\377\340\340\340\377\337\337\337\377N\200#\377=u\16\377" "Ax\23\377@x\23\377U\210(\377\210\266U\377Q\225\7\377\210\266U\377R\205" "%\377\202\77w\20\374\5;t\13\3746q\4\333\377\377\377\0\214\214\214\377" "\371\371\371\377\203\342\342\342\377\17\341\341\341\377\340\340\340\377" "\337\337\337\377\336\336\336\377\335\335\335\377\333\334\333\377\325" "\327\323\377\323\325\321\377\315\321\313\377@x\23\377\212\270X\377Q\225" "\7\377\212\270X\377@w\22\3775o\4\17\2025o\4\10\4""5o\4\1\377\377\377" "\0\213\213\213\377\366\366\366\377\213\370\370\370\377\7\362\364\360" "\377Ax\23\377\212\270X\377Q\225\7\377\212\270X\377@w\22\3775o\4\10\204" "\377\377\377\0\1\217\217\217\240\214\212\212\212\377\7\207\211\206\377" "\377\312\232=\377\224'\26\375+\17\13w\0\0\0\16\0\0\0\1" "\377\377\377\0\224\224\224\377\373\373\373\377\202\357\357\357\377\22" "\356\356\356\377\355\355\355\377\354\354\354\377\353\353\353\377\351" "\351\351\377\347\347\347\377\343\343\343\377\275\271\257\377\220yF\377" "\346\272e\377\374\312o\377\373\272D\377\345\256>\377\311\234\77\377|" "h;\377\24\22\12f\0\0\0\16\0\0\0\1\202\377\377\377\0\2\222\222\222\377" "\373\373\373\377\202\355\355\355\377\21\354\354\354\377\353\353\353\377" "\352\352\352\377\351\351\351\377\347\347\347\377\345\345\345\377\277" "\273\262\377\220yF\377\346\271d\377\374\312m\377\372\272B\377\344\255" ">\377\304\232\77\377}i>\377^]Z\377\0\0\0\14\0\0\0\1\203\377\377\377\0" "\24\221\221\221\377\372\372\372\377\353\353\353\377\16\10\20\377\352" "\352\352\377\351\351\351\377\243\243\243\377\242\242\242\377\240\240" "\240\377\216\212\201\377\216wD\377\343\267d\377\374\311k\377\371\271" "@\377\343\254>\377\300\225@\377ye;\377\247\246\244\377\204\204\204\377" "\0\0\0\1\204\377\377\377\0\3\220\220\220\377\372\372\372\377\351\351" "\351\377\202\350\350\350\377\16\347\347\347\377\346\346\346\377\344\344" "\344\377\303\277\266\377\220xF\377\342\266c\377\375\311h\377\370\270" "A\377\342\254>\377\272\221\77\377uc;\377\225\224\223\377\356\356\356" "\377\212\212\212\377\205\377\377\377\0\3\217\217\217\377\371\371\371" "\377\347\347\347\377\202\346\346\346\377\16\345\345\345\377\344\344\344" "\377\321\317\314\377\217xF\377\340\265c\377\375\310e\377\367\270\77\377" "\341\254>\377\264\217\77\377ra:\377\231\230\227\377\315\315\315\377\370" "\370\370\377\212\212\212\377\205\377\377\377\0\2\215\215\215\377\371" "\371\371\377\203\344\344\344\377\16\343\343\343\377\337\337\337\377\244" "\232\204\377\271\225R\377\374\310g\377\367\267\77\377\341\253>\377\260" "\213\77\377o^:\377\235\234\234\377\315\315\315\377\323\323\323\377\370" "\370\370\377\212\212\212\377\205\377\377\377\0\2\214\214\214\377\371" "\371\371\377\203\342\342\342\377\16\341\341\341\377\326\326\326\377\216" "yJ\377\350\267]\377\364\265A\377\341\254>\377\253\210@\377l\\:\377\242" "\242\242\377\317\317\317\377\323\323\323\377\321\321\321\377\370\370" "\370\377\212\212\212\377\205\377\377\377\0\2\213\213\213\377\366\366" "\366\377\204\370\370\370\377\10\302\277\271\377riR\377\350\260D\377\310" "\233\77\377\226{C\377k\\<\377\276\275\275\377\361\361\361\377\203\370" "\370\370\377\2\364\364\364\377\212\212\212\377\205\377\377\377\0\1\217" "\217\217\240\204\212\212\212\377\10\207\207\207\377kfZ\3774:;\377`V<" "\377]O1\377QNG\377sss\377\207\207\207\377\205\212\212\212\377\1\216\216" "\216\240\212\377\377\377\0\7\24\24\24\15JH<\35586'\325\14\14\11W\0\0" "\0\30\0\0\0\12\0\0\0\2\221\377\377\377\0\5\0\0\0\2\0\0\0\25\0\0\0\17" "\0\0\0\6\0\0\0\1\215\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_tasks_next_date) #endif #ifdef __GNUC__ const guint8 osmo_stock_tasks_next_date[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_tasks_next_date[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1666) */ "\0\0\6\232" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\230\377\377\377\0\1\246\246\246\240\202\242\242\242\377\20\241\241\241" "\377\240\240\240\377\237\237\237\377\235\235\235\377\234\234\234\377" "\233\233\233\377\231\231\231\377\230\230\230\377\227\227\227\377\225" "\225\225\377\224\224\224\377\223\223\223\377\221\221\221\377\220\220" "\220\377\217\217\217\377\222\222\222\240\205\377\377\377\0\2\241\241" "\241\377\374\374\374\377\204\376\376\376\377\202\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\3\371\371\371" "\377\366\366\366\377\215\215\215\377\205\377\377\377\0\2\240\240\240" "\377\377\377\377\377\203\361\361\361\377\16\360\360\360\377\357\357\357" "\377\355\355\355\377\354\354\354\377\352\352\352\377\350\350\350\377" "\346\346\346\377\344\344\344\377\341\341\341\377\337\337\337\377\335" "\335\335\377\333\333\333\377\371\371\371\377\215\215\215\377\205\377" "\377\377\0\2\237\237\237\377\377\377\377\377\203\363\363\363\377\16\362" "\362\362\377\360\360\360\377\356\356\356\377\355\355\355\377\352\352" "\352\377\350\350\350\377\346\346\346\377\344\344\344\377\342\342\342" "\377\340\340\340\377\335\335\335\377\333\333\333\377\371\371\371\377" "\215\215\215\377\205\377\377\377\0\2\236\236\236\377\376\376\376\377" "\203\365\365\365\377\16\363\363\363\377\361\361\361\377\357\357\357\377" "\355\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\344" "\344\344\377\342\342\342\377\340\340\340\377\335\335\335\377\333\333" "\333\377\371\371\371\377\215\215\215\377\205\377\377\377\0\23\235\235" "\235\377\376\376\376\377\367\367\367\377\16\10\20\377\366\366\366\377" "\364\364\364\377\252\252\252\377\250\250\250\377\247\247\247\377\245" "\245\245\377\244\244\244\377\242\242\242\377\240\240\240\377\237\237" "\237\377\235\235\235\377\233\233\233\377\333\333\333\377\371\371\371" "\377\215\215\215\377\205\377\377\377\0\23\233\233\233\377\376\376\376" "\377\370\370\370\377\361\361\362\377\367\367\367\377\364\364\364\377" "\362\362\362\377\360\360\360\377\356\356\356\377\353\353\353\377\351" "\351\351\377\347\347\347\377\344\344\344\377\342\342\342\377\340\340" "\340\377\335\335\335\377\333\333\333\377\371\371\371\377\214\214\214" "\377\205\377\377\377\0\2\232\232\232\377\375\375\375\377\202\370\370" "\370\377\17\366\366\366\377\364\364\364\377\362\362\362\377\360\360\360" "\377\301\312\327\377z\222\264\377>c\227\3775\\\223\377Rr\240\377z\221" "\262\377\272\302\316\377\335\335\335\377\333\333\333\377\371\371\371" "\377\214\214\214\377\205\377\377\377\0\23\231\231\231\377\375\375\375" "\377\366\366\366\377\22\13\24\377\365\365\365\377\363\363\363\377\251" "\251\251\377y\207\235\377*T\215\377^\206\261\377\253\302\331\377\304" "\325\345\377\253\302\331\377\202\240\302\377>d\230\377Ik\233\377\260" "\272\307\377\371\371\371\377\213\213\213\377\205\377\377\377\0\23\230" "\230\230\377\375\375\375\377\364\364\364\377\354\354\355\377\363\363" "\363\377\362\362\362\377\254\272\316\3771X\221\377m\227\276\377{\243" "\307\377K\201\263\377T\207\266\377\213\256\316\377\270\315\341\377\310" "\330\350\377r\227\275\377(Q\214\377\245\266\315\377\213\213\213\377\205" "\377\377\377\0\2\226\226\226\377\374\374\374\377\202\362\362\362\377" "\17\361\361\361\377\360\360\360\3777^\224\377Z\202\260\377_\210\264\377" "Y\203\261\377h\222\273\377|\243\307\377[\214\272\3771o\250\377v\240\305" "\377\306\327\347\377\233\270\324\377.Y\220\377ny\211\377\205\377\377" "\377\0""2\225\225\225\377\374\374\374\377\360\360\360\377\21\13\24\377" "\357\357\357\377\272\305\324\377\40J\207\377-T\213\377Sm\223\377Qm\222" "\377/U\214\377)R\214\377S}\253\377y\241\305\377P\205\265\377p\233\303" "\377\302\324\345\377\221\256\315\377-S\210\377@@\200\4\377\377\377\0" "\40J\207H\40M\207w\377\377\377\0\224\224\224\377\373\373\373\377\356" "\356\356\377\347\347\350\377\355\355\355\377a~\247\377Ln\236\377\344" "\345\347\377\350\350\350\377\346\346\346\377\344\344\344\377\313\320" "\327\377c\177\247\3770X\221\377k\224\275\377O\203\264\377\202\247\312" "\377\311\331\350\377Vy\246\377\40J\207\227\37L\210\320#M\210\375\40K" "\210\325\377\377\377\0\222\222\222\377\373\373\373\377\202\354\354\354" "\377B\353\353\353\377\313\321\333\377\330\333\341\377\350\350\350\377" "\346\346\346\377\344\344\344\377\343\343\343\377\341\341\341\377\337" "\337\337\377\251\264\305\3770X\221\377u\235\303\377=w\255\377\250\302" "\332\377\271\315\340\377Hp\242\366\223\257\315\377d\211\263\371\40J\206" "x\377\377\377\0\221\221\221\377\373\373\373\377\352\352\352\377\21\13" "\23\377\351\351\351\377\350\350\350\377\242\242\242\377\241\241\241\377" "\240\240\240\377\237\237\237\377\236\236\236\377\235\235\235\377\233" "\233\233\377\232\232\232\377Tm\217\377Nx\251\377^\217\273\377C|\260\377" "\271\316\342\377\307\327\347\377\312\332\351\3770W\220\366#G\207$\377" "\377\377\0\220\220\220\377\372\372\372\377\350\350\350\377\341\341\342" "\377\347\347\347\377\346\346\346\377\345\345\345\377\344\344\344\377" "\343\343\343\377\341\341\341\377\340\340\340\377\336\336\336\377\334" "\334\334\377\332\332\332\377\241\255\300\3777_\226\377w\240\306\377\36" "b\240\377m\231\301\377\260\310\336\377\253\302\332\377\40K\210\337\202" "\377\377\377\0\2\216\216\216\377\372\372\372\377\202\346\346\346\377" "\22\345\345\345\377\344\344\344\377\343\343\343\377\342\342\342\377\341" "\341\341\377\337\337\337\377\336\336\336\377\334\334\334\377\323\325" "\327\377o\207\253\377,V\216\377`\210\264\377b\221\275\377\36b\240\377" ":v\254\377\275\321\343\377{\232\277\373\37I\207\204\202\377\377\377\0" "\2\215\215\215\377\371\371\371\377\202\344\344\344\377\22\343\343\343" "\377\342\342\342\377\341\341\341\377\340\340\340\377\337\337\337\377" "\336\336\336\377\334\334\334\377\333\333\333\377\311\314\322\377*S\214" "\3776_\225\377S}\254\377q\231\300\377u\237\305\377W\211\270\377\303\325" "\346\377>d\231\365!L\210/\202\377\377\377\0\3\214\214\214\377\371\371" "\371\377\342\342\342\377\202\341\341\341\377\20\340\340\340\377\337\337" "\337\377\336\336\336\377\335\335\335\377\334\334\334\377\332\332\332" "\377\331\331\331\377\327\327\327\377\323\324\325\377\247\262\301\377" "f\200\245\377+T\215\3779a\227\377P{\252\377{\236\302\377\40K\210\350" "\203\377\377\377\0\2\213\213\213\377\367\367\367\377\204\371\371\371" "\377\212\370\370\370\377\5\367\367\370\377\306\317\334\377Ng\212\377" "\37K\210\346\"L\207y\203\377\377\377\0\1\217\217\217\240\221\212\212" "\212\377\1\216\216\216\240\265\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_tasks_prev_date) #endif #ifdef __GNUC__ const guint8 osmo_stock_tasks_prev_date[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_tasks_prev_date[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1672) */ "\0\0\6\240" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\235\377\377\377\0\1\246\246\246\240\202\242\242\242\377\20\241\241\241" "\377\240\240\240\377\237\237\237\377\235\235\235\377\234\234\234\377" "\233\233\233\377\231\231\231\377\230\230\230\377\227\227\227\377\225" "\225\225\377\224\224\224\377\223\223\223\377\221\221\221\377\220\220" "\220\377\217\217\217\377\222\222\222\240\205\377\377\377\0\2\241\241" "\241\377\374\374\374\377\204\376\376\376\377\202\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\3\371\371\371" "\377\366\366\366\377\215\215\215\377\205\377\377\377\0\2\240\240\240" "\377\377\377\377\377\203\361\361\361\377\16\360\360\360\377\357\357\357" "\377\355\355\355\377\354\354\354\377\352\352\352\377\350\350\350\377" "\346\346\346\377\344\344\344\377\341\341\341\377\337\337\337\377\335" "\335\335\377\333\333\333\377\371\371\371\377\215\215\215\377\205\377" "\377\377\0\2\237\237\237\377\377\377\377\377\203\363\363\363\377\16\362" "\362\362\377\360\360\360\377\356\356\356\377\355\355\355\377\352\352" "\352\377\350\350\350\377\346\346\346\377\344\344\344\377\342\342\342" "\377\340\340\340\377\335\335\335\377\333\333\333\377\371\371\371\377" "\215\215\215\377\205\377\377\377\0\2\236\236\236\377\376\376\376\377" "\203\365\365\365\377\16\363\363\363\377\361\361\361\377\357\357\357\377" "\355\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\344" "\344\344\377\342\342\342\377\340\340\340\377\335\335\335\377\333\333" "\333\377\371\371\371\377\215\215\215\377\205\377\377\377\0\23\235\235" "\235\377\376\376\376\377\367\367\367\377\16\10\20\377\366\366\366\377" "\364\364\364\377\252\252\252\377\250\250\250\377\247\247\247\377\245" "\245\245\377\244\244\244\377\242\242\242\377\240\240\240\377\237\237" "\237\377\235\235\235\377\233\233\233\377\333\333\333\377\371\371\371" "\377\215\215\215\377\205\377\377\377\0\23\233\233\233\377\376\376\376" "\377\370\370\370\377\361\361\362\377\367\367\367\377\364\364\364\377" "\362\362\362\377\360\360\360\377\356\356\356\377\353\353\353\377\351" "\351\351\377\347\347\347\377\344\344\344\377\342\342\342\377\340\340" "\340\377\335\335\335\377\333\333\333\377\371\371\371\377\214\214\214" "\377\205\377\377\377\0\2\232\232\232\377\375\375\375\377\202\370\370" "\370\377\17\275\310\330\377n\212\260\377Dh\233\3772Y\221\3773Z\221\377" "e\202\252\377\260\274\315\377\346\346\346\377\344\344\344\377\342\342" "\342\377\337\337\337\377\335\335\335\377\333\333\333\377\371\371\371" "\377\214\214\214\377\205\377\377\377\0\23\231\231\231\377\375\375\375" "\377\267\303\325\377=c\230\377Ps\243\377\220\254\313\377\271\314\337" "\377\311\331\347\377\260\306\334\377e\214\267\377.V\217\377k}\227\377" "\237\237\237\377\236\236\236\377\337\337\337\377\335\335\335\377\332" "\332\332\377\371\371\371\377\213\213\213\377\205\377\377\377\0\23\230" "\230\230\377\226\252\306\377*U\216\377\202\244\307\377\310\331\350\377" "\257\307\335\377|\243\310\377H\200\262\377L\202\263\377|\243\307\377" "t\234\302\3774\\\224\377\227\250\300\377\341\341\341\377\336\336\336" "\377\334\334\334\377\332\332\332\377\371\371\371\377\213\213\213\377" "\205\377\377\377\0ss\200\222\3775]\226\377\247\302\331\377\303\325\345" "\377e\224\276\3773p\250\377d\223\275\377{\242\306\377b\215\267\377Q|" "\254\377X\201\256\377U~\255\3773[\223\377\336\337\337\377\336\336\336" "\377\333\333\333\377\331\331\331\377\370\370\370\377\212\212\212\377" "\377\377\377\0\40L\210\211\40K\210X\0\0\377\1+U\200\6+R\211\377\232\265" "\321\377\277\323\344\377d\223\275\377X\213\271\377w\237\304\377Lv\246" "\377&O\212\377;]\216\377^u\224\377bv\224\3774X\214\377\40J\207\377z\206" "\227\377\233\233\233\377\231\231\231\377\330\330\330\377\370\370\370" "\377\212\212\212\377\377\377\377\0\40L\211\320(Q\213\373\37L\211\336" "\37J\206\245^\201\255\377\311\331\350\377x\241\306\377S\207\266\377e" "\217\271\377*T\214\377y\220\263\377\333\336\342\377\350\350\350\377\346" "\346\346\377\344\344\344\377\337\340\341\377Tt\241\377Zx\242\377\334" "\334\334\377\332\332\332\377\327\327\327\377\370\370\370\377\212\212" "\212\377\377\377\377\0\40M\207qc\207\262\371\241\273\324\377Z\200\255" "\366\275\320\342\377\241\275\327\377=x\255\377t\234\302\377/W\217\377" "\273\305\323\377\351\351\351\377\350\350\350\377\346\346\346\377\344" "\344\344\377\343\343\343\377\341\341\341\377\326\330\333\377\312\316" "\324\377\333\333\333\377\330\330\330\377\326\326\326\377\370\370\370" "\377\212\212\212\377\377\377\377\0!J\204\37-V\217\366\311\331\350\377" "\304\326\346\377\266\314\340\377u\20" "\377\274\312\261\377\345\345\345\377\344\344\344\377\343\343\343\377" "\342\342\342\377\341\341\341\377\337\337\337\377\336\336\336\377\334" "\334\334\377\332\332\332\377\331\331\331\377\327\327\327\377\325\325" "\325\377\323\323\323\377\370\370\370\377\212\212\212\377\205\377\377" "\377\0\23\215\215\215\377\371\371\371\377\303\316\272\377\344\344\344" "\377\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340\377" "\337\337\337\377\336\336\336\377\334\334\334\377\333\333\333\377\331" "\331\331\377\327\327\327\377\325\325\325\377\323\323\323\377\322\322" "\322\377\370\370\370\377\212\212\212\377\205\377\377\377\0\3\214\214" "\214\377\371\371\371\377\342\342\342\377\202\341\341\341\377\16\340\340" "\340\377\337\337\337\377\336\336\336\377\335\335\335\377\334\334\334" "\377\332\332\332\377\331\331\331\377\327\327\327\377\326\326\326\377" "\324\324\324\377\322\322\322\377\320\320\320\377\370\370\370\377\212" "\212\212\377\205\377\377\377\0\2\213\213\213\377\366\366\366\377\204" "\371\371\371\377\213\370\370\370\377\2\364\364\364\377\212\212\212\377" "\205\377\377\377\0\1\217\217\217\240\221\212\212\212\377\1\216\216\216" "\240\261\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_tasks_export) #endif #ifdef __GNUC__ const guint8 osmo_stock_tasks_export[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_tasks_export[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1569) */ "\0\0\6""9" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (96) */ "\0\0\0`" /* width (24) */ "\0\0\0\30" /* height (24) */ "\0\0\0\30" /* pixel_data: */ "\231\377\377\377\0\1\246\246\246\240\202\242\242\242\377\20\241\241\241" "\377\240\240\240\377\237\237\237\377\235\235\235\377\234\234\234\377" "\233\233\233\377\231\231\231\377\230\230\230\377\227\227\227\377\225" "\225\225\377\224\224\224\377\223\223\223\377\221\221\221\377\220\220" "\220\377\217\217\217\377\221\221\221\240\205\377\377\377\0\2\241\241" "\241\377\374\374\374\377\204\376\376\376\377\202\375\375\375\377\203" "\374\374\374\377\203\373\373\373\377\202\372\372\372\377\3\371\371\371" "\377\366\366\366\377\215\215\215\377\205\377\377\377\0\2\240\240\240" "\377\377\377\377\377\203\361\361\361\377\16\360\360\360\377\357\357\357" "\377\355\355\355\377\354\354\354\377\352\352\352\377\350\350\350\377" "\346\346\346\377\344\344\344\377\341\341\341\377\337\337\337\377\335" "\335\335\377\333\333\333\377\371\371\371\377\215\215\215\377\205\377" "\377\377\0\2\237\237\237\377\377\377\377\377\203\363\363\363\377\16\362" "\362\362\377\360\360\360\377\356\356\356\377\355\355\355\377\352\352" "\352\377\350\350\350\377\346\346\346\377\344\344\344\377\342\342\342" "\377\340\340\340\377\321\303\252\377\333\333\333\377\371\371\371\377" "\215\215\215\377\205\377\377\377\0\2\236\236\236\377\376\376\376\377" "\203\365\365\365\377\16\363\363\363\377\361\361\361\377\357\357\357\377" "\355\355\355\377\353\353\353\377\351\351\351\377\347\347\347\377\344" "\344\344\377\342\342\342\377\340\340\340\377\252r\10\377\314\274\235" "\377\371\371\371\377\215\215\215\377\205\377\377\377\0\23\235\235\235" "\377\376\376\376\377\367\367\367\377\16\10\20\377\366\366\366\377\364" "\364\364\377\252\252\252\377\250\250\250\377\247\247\247\377\245\245" "\245\377\244\244\244\377\242\242\242\377\240\240\240\377\237\237\237" "\377\235\235\235\377\250n\1\377\257y\20\377\335\312\244\377\215\215\215" "\377\205\377\377\377\0\23\233\233\233\377\376\376\376\377\370\370\370" "\377\361\361\362\377\367\367\367\377\364\364\364\377\362\362\362\377" "\360\360\360\377\356\356\356\377\353\353\353\377\351\351\351\377\347" "\347\347\377\344\344\344\377\342\342\342\377\340\340\340\377\250n\1\377" "\354\315j\377\263~\26\377\230\200S\377\205\377\377\377\0\2\232\232\232" "\377\375\375\375\377\202\370\370\370\377\20\366\366\366\377\364\364\364" "\377\362\362\362\377\360\360\360\377\355\355\355\377\353\353\353\377" "\266\207,\377\266\205$\377\265\205$\377\265\204$\377\265\204#\377\250" "n\1\377\365\334\203\377\357\323s\377\262\177\26\377\253q\1|\204\377\377" "\377\0\13\231\231\231\377\375\375\375\377\366\366\366\377\22\13\24\377" "\365\365\365\377\363\363\363\377\251\251\251\377\250\250\250\377\246" "\246\246\377\244\244\244\377\250n\1\377\204\352\313f\377\6\352\314i\377" "\363\327q\377\357\3108\377\360\325w\377\270\204\27\366\253q\1\217\203" "\377\377\377\0\14\230\230\230\377\375\375\375\377\364\364\364\377\354" "\354\355\377\363\363\363\377\362\362\362\377\360\360\360\377\356\356" "\356\377\354\354\354\377\351\351\351\377\250n\1\377\365\336\207\377\203" "\355\301\"\377\13\355\301!\377\352\271\5\377\352\270\0\377\356\3061\377" "\361\327z\377\274\211\34\365\254r\1\243\250n\1\2\377\377\377\0\226\226" "\226\377\374\374\374\377\202\362\362\362\377\12\361\361\361\377\360\360" "\360\377\356\356\356\377\354\354\354\377\352\352\352\377\350\350\350" "\377\250n\1\377\367\342\227\377\360\316N\377\360\315M\377\202\360\315" "L\377\203\360\315K\377\21\364\334\177\377\363\337\230\377\252r\6\374" "\250n\1\\\377\377\377\0\225\225\225\377\374\374\374\377\360\360\360\377" "\21\13\24\377\357\357\357\377\356\356\356\377\246\246\246\377\245\245" "\245\377\244\244\244\377\242\242\242\377\250n\1\377\370\347\247\377\203" "\367\343\236\377\1\367\343\235\377\202\367\343\234\377\4\371\351\260" "\377\371\355\304\377\301\2234\365\253q\1\210\202\377\377\377\0\14\224" "\224\224\377\373\373\373\377\356\356\356\377\347\347\350\377\355\355" "\355\377\354\354\354\377\353\353\353\377\351\351\351\377\350\350\350" "\377\346\346\346\377\250n\1\377\367\345\245\377\204\373\361\317\377\5" "\371\353\271\377\371\352\264\377\370\353\300\377\273\213+\366\252p\1" "v\203\377\377\377\0\2\222\222\222\377\373\373\373\377\202\354\354\354" "\377\10\353\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377" "\346\346\346\377\344\344\344\377\252q\6\377\253r\6\377\203\254t\11\377" "\5\262~\34\377\373\362\320\377\366\350\273\377\266\205&\377\251o\1f\204" "\377\377\377\0\23\221\221\221\377\373\373\373\377\352\352\352\377\21" "\13\23\377\351\351\351\377\350\350\350\377\242\242\242\377\241\241\241" "\377\240\240\240\377\237\237\237\377\236\236\236\377\235\235\235\377" "\233\233\233\377\232\232\232\377\230\230\230\377\255x\22\377\365\346" "\265\377\266\203!\377\224\201\\\377\205\377\377\377\0\23\220\220\220" "\377\372\372\372\377\350\350\350\377\341\341\342\377\347\347\347\377" "\346\346\346\377\345\345\345\377\344\344\344\377\343\343\343\377\341" "\341\341\377\340\340\340\377\336\336\336\377\334\334\334\377\332\332" "\332\377\330\330\330\377\252q\6\377\262}\30\377\341\321\262\377\212\212" "\212\377\205\377\377\377\0\2\216\216\216\377\372\372\372\377\202\346" "\346\346\377\17\345\345\345\377\344\344\344\377\343\343\343\377\342\342" "\342\377\341\341\341\377\337\337\337\377\336\336\336\377\334\334\334" "\377\332\332\332\377\331\331\331\377\327\327\327\377\253t\14\377\311" "\273\242\377\370\370\370\377\212\212\212\377\205\377\377\377\0\2\215" "\215\215\377\371\371\371\377\202\344\344\344\377\17\343\343\343\377\342" "\342\342\377\341\341\341\377\340\340\340\377\337\337\337\377\336\336" "\336\377\334\334\334\377\333\333\333\377\331\331\331\377\327\327\327" "\377\325\325\325\377\313\300\253\377\322\322\322\377\370\370\370\377" "\212\212\212\377\205\377\377\377\0\3\214\214\214\377\371\371\371\377" "\342\342\342\377\202\341\341\341\377\16\340\340\340\377\337\337\337\377" "\336\336\336\377\335\335\335\377\334\334\334\377\332\332\332\377\331" "\331\331\377\327\327\327\377\326\326\326\377\324\324\324\377\322\322" "\322\377\320\320\320\377\370\370\370\377\212\212\212\377\205\377\377" "\377\0\2\213\213\213\377\366\366\366\377\204\371\371\371\377\213\370" "\370\370\377\2\364\364\364\377\212\212\212\377\205\377\377\377\0\1\217" "\217\217\240\221\212\212\212\377\1\216\216\216\240\264\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_systray_task) #endif #ifdef __GNUC__ const guint8 osmo_stock_systray_task[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_systray_task[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (6600) */ "\0\0\31\340" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (256) */ "\0\0\1\0" /* width (64) */ "\0\0\0@" /* height (64) */ "\0\0\0@" /* pixel_data: */ "\377\377\377\377\0\312\377\377\377\0\3kyy\23rrt\256rst\374\252rst\377" "\3rst\374rrt\256kyy\23\220\377\377\377\0\1rrt\256\256rst\377\1rrt\256" "\220\377\377\377\0\1rst\374\256rst\377\1rst\374\220\377\377\377\0\203" "rst\377\2\346\346\346\377\374\374\374\377\203\377\377\377\377\204\376" "\376\376\377\204\375\375\375\377\203\374\374\374\377\204\373\373\373" "\377\204\372\372\372\377\203\371\371\371\377\215\370\370\370\377\2\364" "\364\364\377\314\314\314\377\203rst\377\220\377\377\377\0\203rst\377" "\2\374\374\374\377\376\376\376\377\204\377\377\377\377\203\376\376\376" "\377\204\375\375\375\377\203\374\374\374\377\204\373\373\373\377\204" "\372\372\372\377\203\371\371\371\377\216\370\370\370\377\1\363\363\363" "\377\203rst\377\220\377\377\377\0\203rst\377\202\376\376\376\377\203" "\377\377\377\377\204\376\376\376\377\204\375\375\375\377\203\374\374" "\374\377\204\373\373\373\377\203\372\372\372\377\204\371\371\371\377" "\206\370\370\370\377\1\364\353\353\377\210\370\370\370\377\203rst\377" "\220\377\377\377\0\203rst\377\203\376\376\376\377\1\370\370\370\377\202" "\367\367\367\377!\366\366\366\377\365\365\365\377\364\364\364\377\362" "\362\362\377\361\361\361\377\360\360\360\377\357\357\357\377\356\356" "\356\377\354\354\354\377\353\353\353\377\351\351\351\377\350\350\350" "\377\347\347\347\377\346\346\346\377\344\344\344\377\343\343\343\377" "\341\341\341\377\337\337\337\377\335\335\335\377\334\334\334\377\333" "\333\333\377\332\332\332\377\330\330\330\377\327\327\327\377\325\325" "\325\377\312\241\241\377\265--\377\255\3\3\377\303\202\202\377\317\317" "\317\377\315\315\315\377\313\313\313\377\317\317\317\377\203\370\370" "\370\377\203rst\377\220\377\377\377\0\203rst\377\203\376\376\376\377" "\1\370\370\370\377\202\367\367\367\377!\366\366\366\377\364\364\364\377" "\363\363\363\377\362\362\362\377\360\360\360\377\357\357\357\377\355" "\355\355\377\354\354\354\377\352\352\352\377\351\351\351\377\347\347" "\347\377\346\346\346\377\344\344\344\377\343\343\343\377\341\341\341" "\377\340\340\340\377\336\336\336\377\335\335\335\377\333\333\333\377" "\332\332\332\377\330\330\330\377\327\327\327\377\325\325\325\377\324" "\324\324\377\322\317\317\377\261\35\35\377\264\21\21\377\265\12\12\377" "\254\0\0\377\302\222\222\377\311\311\311\377\307\307\307\377\312\312" "\312\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377" "\203\376\376\376\377$\371\371\371\377\370\370\370\377\367\367\367\377" "\366\366\366\377\365\365\365\377\363\363\363\377\362\362\362\377\360" "\360\360\377\357\357\357\377\355\355\355\377\354\354\354\377\352\352" "\352\377\351\351\351\377\347\347\347\377\346\346\346\377\344\344\344" "\377\343\343\343\377\341\341\341\377\340\340\340\377\336\336\336\377" "\335\335\335\377\333\333\333\377\332\332\332\377\330\330\330\377\327" "\327\327\377\325\325\325\377\323\323\323\377\306\221\221\377\261\17\17" "\377\330ee\377\312\24\24\377\257\3\3\377\267HH\377\311\311\311\377\307" "\307\307\377\312\312\312\377\203\370\370\370\377\203rst\377\220\377\377" "\377\0\203rst\377\203\376\376\376\377$\372\372\372\377\371\371\371\377" "\370\370\370\377\366\366\366\377\365\365\365\377\363\363\363\377\362" "\362\362\377\360\360\360\377\357\357\357\377\355\355\355\377\354\354" "\354\377\352\352\352\377\351\351\351\377\347\347\347\377\346\346\346" "\377\344\344\344\377\343\343\343\377\341\341\341\377\340\340\340\377" "\336\336\336\377\335\335\335\377\333\333\333\377\331\331\331\377\330" "\330\330\377\326\326\326\377\325\325\325\377\323\323\323\377\302xx\377" "\255\3\3\377\310\16\16\377\312\20\20\377\271\7\7\377\257\22\22\377\311" "\311\311\377\307\307\307\377\312\312\312\377\203\370\370\370\377\203" "rst\377\220\377\377\377\0\203rst\377\202\375\375\375\377%\376\376\376" "\377\372\372\372\377\371\371\371\377\370\370\370\377\366\366\366\377" "\365\365\365\377\363\363\363\377\362\362\362\377\360\360\360\377\357" "\357\357\377\355\355\355\377\354\354\354\377\352\352\352\377\351\351" "\351\377\347\347\347\377\345\345\345\377\344\344\344\377\342\342\342" "\377\341\341\341\377\337\337\337\377\336\336\336\377\334\334\334\377" "\333\333\333\377\331\331\331\377\330\330\330\377\326\326\326\377\325" "\325\325\377\323\323\323\377\277gg\377\255\3\3\377\317\23\23\377\321" "\24\24\377\275\11\11\377\257\17\17\377\311\311\311\377\307\307\307\377" "\312\312\312\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203" "rst\377\203\375\375\375\377$\371\371\371\377\370\370\370\377\367\367" "\367\377\366\366\366\377\364\364\364\377\363\363\363\377\361\361\361" "\377\360\360\360\377\356\356\356\377\355\355\355\377\353\353\353\377" "\352\352\352\377\350\350\350\377\347\347\347\377\345\345\345\377\344" "\344\344\377\342\342\342\377\341\341\341\377\337\337\337\377\336\336" "\336\377\334\334\334\377\333\333\333\377\331\331\331\377\330\330\330" "\377\326\326\326\377\325\325\325\377\323\323\323\377\273UU\377\261\7" "\7\377\326\30\30\377\327\30\30\377\300\13\13\377\257\17\17\377\310\310" "\310\377\307\307\307\377\311\311\311\377\203\370\370\370\377\203rst\377" "\220\377\377\377\0\203rst\377\203\375\375\375\377$\370\370\370\377\367" "\367\367\377\366\366\366\377\365\365\365\377\364\364\364\377\362\362" "\362\377\361\361\361\377\357\357\357\377\356\356\356\377\355\355\355" "\377\353\353\353\377\351\351\351\377\350\350\350\377\346\346\346\377" "\345\345\345\377\343\343\343\377\342\342\342\377\340\340\340\377\337" "\337\337\377\335\335\335\377\334\334\334\377\332\332\332\377\331\331" "\331\377\327\327\327\377\326\326\326\377\324\324\324\377\323\323\323" "\377\270DD\377\266\10\10\377\334\34\34\377\335\35\35\377\301\15\15\377" "\257\17\17\377\310\310\310\377\307\307\307\377\311\311\311\377\203\370" "\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\375\375\375" "\377\1\367\367\367\377\202#\35%\377\16""0+2\377\363\363\363\377\362\362" "\362\377\346\346\346\377\256\256\256\377\255\255\255\377\254\254\254" "\377\253\253\253\377\252\252\252\377\251\251\251\377\250\250\250\377" "\247\247\247\377\246\246\246\377\245\245\245\377\202\243\243\243\377" "\21\241\241\241\377\240\240\240\377\277\277\277\377\331\331\331\377\327" "\327\327\377\326\326\326\377\324\324\324\377\323\323\323\377\270DD\377" "\266\10\10\377\342\40\40\377\343!!\377\303\16\16\377\257\17\17\377\310" "\310\310\377\306\306\306\377\311\311\311\377\203\370\370\370\377\203" "rst\377\220\377\377\377\0\203rst\377\203\375\375\375\377\1\366\366\366" "\377\202\16\10\20\377\5\33\26\35\377\362\362\362\377\361\361\361\377" "\345\345\345\377\247\247\247\377\202\246\246\246\377\202\244\244\244" "\377\30\242\242\242\377\241\241\241\377\240\240\240\377\237\237\237\377" "\236\236\236\377\235\235\235\377\234\234\234\377\233\233\233\377\232" "\232\232\377\273\273\273\377\330\330\330\377\327\327\327\377\325\325" "\325\377\324\324\324\377\322\322\322\377\276bb\377\260\5\5\377\350$$" "\377\351%%\377\277\14\14\377\262''\377\310\310\310\377\306\306\306\377" "\311\311\311\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203" "rst\377\203\374\374\374\377\1\365\365\365\377\202\16\10\20\377\20\33" "\26\35\377\361\361\361\377\360\360\360\377\344\344\344\377\247\247\247" "\377\246\246\246\377\245\245\245\377\244\244\244\377\243\243\243\377" "\242\242\242\377\241\241\241\377\240\240\240\377\237\237\237\377\236" "\236\236\377\235\235\235\377\234\234\234\377\202\232\232\232\377\17\272" "\272\272\377\330\330\330\377\326\326\326\377\325\325\325\377\323\323" "\323\377\322\322\322\377\301~~\377\254\0\0\377\346$$\377\354''\377\257" "\4\4\377\272^^\377\307\307\307\377\306\306\306\377\311\311\311\377\203" "\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\374\374" "\374\377\1\364\364\364\377\202\362\362\362\377\32\361\361\361\377\360" "\360\360\377\357\357\357\377\356\356\356\377\355\355\355\377\354\354" "\354\377\352\352\352\377\351\351\351\377\350\350\350\377\346\346\346" "\377\345\345\345\377\343\343\343\377\342\342\342\377\340\340\340\377" "\337\337\337\377\335\335\335\377\334\334\334\377\333\333\333\377\331" "\331\331\377\330\330\330\377\326\326\326\377\325\325\325\377\323\323" "\323\377\322\322\322\377\307\235\235\377\254\0\0\377\202\334\35\35\377" "\5\254\0\0\377\301\221\221\377\307\307\307\377\306\306\306\377\311\311" "\311\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377" "\203\374\374\374\377\1\362\362\362\377\202\361\361\361\377!\360\360\360" "\377\357\357\357\377\356\356\356\377\355\355\355\377\354\354\354\377" "\353\353\353\377\352\352\352\377\350\350\350\377\347\347\347\377\346" "\346\346\377\344\344\344\377\343\343\343\377\341\341\341\377\340\340" "\340\377\336\336\336\377\335\335\335\377\334\334\334\377\332\332\332" "\377\331\331\331\377\327\327\327\377\326\326\326\377\324\324\324\377" "\323\323\323\377\321\321\321\377\315\274\274\377\254\0\0\377\315\24\24" "\377\311\21\21\377\255\3\3\377\306\277\277\377\307\307\307\377\305\305" "\305\377\311\311\311\377\203\370\370\370\377\203rst\377\220\377\377\377" "\0\203rst\377\203\374\374\374\377\1\361\361\361\377\202\360\360\360\377" "!\357\357\357\377\356\356\356\377\355\355\355\377\354\354\354\377\353" "\353\353\377\352\352\352\377\351\351\351\377\350\350\350\377\346\346" "\346\377\345\345\345\377\344\344\344\377\342\342\342\377\341\341\341" "\377\337\337\337\377\336\336\336\377\335\335\335\377\333\333\333\377" "\332\332\332\377\330\330\330\377\327\327\327\377\325\325\325\377\324" "\324\324\377\322\322\322\377\321\321\321\377\317\317\317\377\263\"\"" "\377\267\10\10\377\260\5\5\377\26566\377\310\310\310\377\306\306\306" "\377\305\305\305\377\310\310\310\377\203\370\370\370\377\203rst\377\220" "\377\377\377\0\203rst\377\1\373\373\373\377\202\374\374\374\377\1\361" "\361\361\377\202\357\357\357\377!\356\356\356\377\355\355\355\377\354" "\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\350\350" "\350\377\347\347\347\377\346\346\346\377\344\344\344\377\343\343\343" "\377\342\342\342\377\340\340\340\377\337\337\337\377\335\335\335\377" "\334\334\334\377\333\333\333\377\331\331\331\377\330\330\330\377\326" "\326\326\377\325\325\325\377\323\323\323\377\322\322\322\377\320\320" "\320\377\317\317\317\377\300{{\377\254\0\0\377\254\1\1\377\303\240\240" "\377\310\310\310\377\306\306\306\377\305\305\305\377\310\310\310\377" "\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\373" "\373\373\377\2\360\360\360\377\356\356\356\377\202\355\355\355\377\40" "\354\354\354\377\353\353\353\377\352\352\352\377\351\351\351\377\350" "\350\350\377\347\347\347\377\346\346\346\377\345\345\345\377\344\344" "\344\377\342\342\342\377\341\341\341\377\340\340\340\377\336\336\336" "\377\335\335\335\377\333\333\333\377\332\332\332\377\331\331\331\377" "\327\327\327\377\326\326\326\377\324\324\324\377\323\323\323\377\321" "\321\321\377\320\320\320\377\317\317\317\377\315\315\315\377\301\206" "\206\377\306\255\255\377\311\311\311\377\307\307\307\377\306\306\306" "\377\304\304\304\377\310\310\310\377\203\370\370\370\377\203rst\377\220" "\377\377\377\0\203rst\377\203\373\373\373\377\2\357\357\357\377\355\355" "\355\377\202\354\354\354\377\40\353\353\353\377\352\352\352\377\351\351" "\351\377\350\350\350\377\347\347\347\377\346\346\346\377\345\345\345" "\377\344\344\344\377\343\343\343\377\341\341\341\377\340\340\340\377" "\337\337\337\377\336\336\336\377\334\334\334\377\333\333\333\377\331" "\331\331\377\330\330\330\377\327\327\327\377\325\325\325\377\324\324" "\324\377\322\322\322\377\321\321\321\377\317\317\317\377\316\316\316" "\377\315\315\315\377\313\313\313\377\312\312\312\377\310\310\310\377" "\307\307\307\377\305\305\305\377\304\304\304\377\307\307\307\377\203" "\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\373\373" "\373\377\1\356\356\356\377\203\353\353\353\377\2\352\352\352\377\351" "\351\351\377\202\350\350\350\377\34\346\346\346\377\345\345\345\377\344" "\344\344\377\343\343\343\377\342\342\342\377\341\341\341\377\337\337" "\337\377\336\336\336\377\335\335\335\377\334\334\334\377\332\332\332" "\377\331\331\331\377\327\327\327\377\326\326\326\377\325\325\325\377" "\323\323\323\377\322\322\322\377\320\320\320\377\317\317\317\377\316" "\316\316\377\314\314\314\377\313\313\313\377\311\311\311\377\310\310" "\310\377\306\306\306\377\305\305\305\377\303\303\303\377\307\307\307" "\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203" "\373\373\373\377\1\354\354\354\377\202\352\352\352\377\202\351\351\351" "\377\2\350\350\350\377\347\347\347\377\202\346\346\346\377\33\345\345" "\345\377\343\343\343\377\342\342\342\377\341\341\341\377\340\340\340" "\377\337\337\337\377\335\335\335\377\334\334\334\377\333\333\333\377" "\331\331\331\377\330\330\330\377\327\327\327\377\325\325\325\377\324" "\324\324\377\323\323\323\377\321\321\321\377\320\320\320\377\316\316" "\316\377\315\315\315\377\311\276\276\377\276xx\377\271\\\\\377\275\177" "\177\377\306\306\306\377\304\304\304\377\303\303\303\377\306\306\306" "\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203" "\372\372\372\377\1\353\353\353\377\202\351\351\351\377\202\350\350\350" "\377\2\347\347\347\377\346\346\346\377\202\345\345\345\377\33\344\344" "\344\377\343\343\343\377\341\341\341\377\340\340\340\377\337\337\337" "\377\336\336\336\377\335\335\335\377\333\333\333\377\332\332\332\377" "\331\331\331\377\327\327\327\377\326\326\326\377\325\325\325\377\323" "\323\323\377\322\322\322\377\321\321\321\377\317\317\317\377\316\316" "\316\377\313\305\305\377\264,,\377\254\0\0\377\257\4\4\377\254\0\0\377" "\270^^\377\304\304\304\377\302\302\302\377\306\306\306\377\203\370\370" "\370\377\203rst\377\220\377\377\377\0\203rst\377\203\372\372\372\377" "\1\352\352\352\377\202\350\350\350\377\202\347\347\347\377\2\346\346" "\346\377\345\345\345\377\202\344\344\344\377\33\343\343\343\377\342\342" "\342\377\341\341\341\377\337\337\337\377\336\336\336\377\335\335\335" "\377\334\334\334\377\333\333\333\377\331\331\331\377\330\330\330\377" "\327\327\327\377\325\325\325\377\324\324\324\377\323\323\323\377\321" "\321\321\377\320\320\320\377\317\317\317\377\315\315\315\377\273__\377" "\256\3\3\377\345XX\377\357++\377\302\16\16\377\257\17\17\377\303\303" "\303\377\302\302\302\377\305\305\305\377\203\370\370\370\377\203rst\377" "\220\377\377\377\0\203rst\377\203\372\372\372\377\1\351\351\351\377\202" "\16\10\20\377\1\33\26\35\377\202\345\345\345\377\1\331\331\331\377\203" "\237\237\237\377\1\236\236\236\377\202\235\235\235\377\1\233\233\233" "\377\202\232\232\232\377\3\231\231\231\377\230\230\230\377\227\227\227" "\377\202\226\226\226\377\1\224\224\224\377\202\223\223\223\377\14\266" "\266\266\377\316\316\316\377\315\315\315\377\271RR\377\263\7\7\377\357" ",,\377\357))\377\304\17\17\377\257\13\13\377\303\303\303\377\301\301" "\301\377\305\305\305\377\203\370\370\370\377\203rst\377\220\377\377\377" "\0\203rst\377\203\372\372\372\377\1\350\350\350\377\202\16\10\20\377" "\1\32\25\34\377\202\344\344\344\377\2\330\330\330\377\237\237\237\377" "\202\236\236\236\377\202\235\235\235\377\4\234\234\234\377\233\233\233" "\377\232\232\232\377\231\231\231\377\202\230\230\230\377\22\227\227\227" "\377\226\226\226\377\225\225\225\377\224\224\224\377\223\223\223\377" "\222\222\222\377\266\266\266\377\315\315\315\377\314\314\314\377\273" "cc\377\254\0\0\377\310\21\21\377\306\20\20\377\254\0\0\377\267XX\377" "\302\302\302\377\301\301\301\377\304\304\304\377\203\370\370\370\377" "\203rst\377\220\377\377\377\0\203rst\377\202\371\371\371\377\2\372\372" "\372\377\347\347\347\377\202\"\34$\377\1.)0\377\202\343\343\343\377\2" "\330\330\330\377\244\244\244\377\203\243\243\243\377\2\242\242\242\377" "\241\241\241\377\202\240\240\240\377\202\236\236\236\377\23\235\235\235" "\377\234\234\234\377\233\233\233\377\232\232\232\377\231\231\231\377" "\230\230\230\377\227\227\227\377\267\267\267\377\315\315\315\377\313" "\313\313\377\311\310\310\377\270UU\377\254\1\1\377\257\20\20\377\265" "NN\377\303\302\302\377\302\302\302\377\300\300\300\377\304\304\304\377" "\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\371" "\371\371\377\1\345\345\345\377\203\343\343\343\377\202\342\342\342\377" "\2\341\341\341\377\340\340\340\377\202\337\337\337\377\32\336\336\336" "\377\335\335\335\377\334\334\334\377\333\333\333\377\332\332\332\377" "\330\330\330\377\327\327\327\377\326\326\326\377\325\325\325\377\324" "\324\324\377\323\323\323\377\321\321\321\377\320\320\320\377\317\317" "\317\377\315\315\315\377\314\314\314\377\313\313\313\377\311\311\311" "\377\310\310\310\377\307\302\302\377\305\305\305\377\304\304\304\377" "\303\303\303\377\301\301\301\377\300\300\300\377\303\303\303\377\203" "\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\371\371" "\371\377\1\344\344\344\377\202\342\342\342\377\202\341\341\341\377\202" "\340\340\340\377\1\337\337\337\377\202\336\336\336\377\32\335\335\335" "\377\334\334\334\377\333\333\333\377\332\332\332\377\331\331\331\377" "\330\330\330\377\326\326\326\377\325\325\325\377\324\324\324\377\323" "\323\323\377\322\322\322\377\320\320\320\377\317\317\317\377\316\316" "\316\377\315\315\315\377\313\313\313\377\312\312\312\377\311\311\311" "\377\307\307\307\377\306\306\306\377\305\305\305\377\303\303\303\377" "\302\302\302\377\300\300\300\377\277\277\277\377\303\303\303\377\203" "\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\371\371" "\371\377\1\343\343\343\377\202\341\341\341\377\202\340\340\340\377\202" "\337\337\337\377\1\336\336\336\377\202\335\335\335\377\32\334\334\334" "\377\333\333\333\377\332\332\332\377\331\331\331\377\330\330\330\377" "\327\327\327\377\326\326\326\377\324\324\324\377\323\323\323\377\322" "\322\322\377\321\321\321\377\320\320\320\377\316\316\316\377\315\315" "\315\377\314\314\314\377\313\313\313\377\311\311\311\377\310\310\310" "\377\307\307\307\377\305\305\305\377\304\304\304\377\303\303\303\377" "\301\301\301\377\300\300\300\377\277\277\277\377\302\302\302\377\203" "\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\371\371" "\371\377\1\342\342\342\377\202\340\340\340\377\202\337\337\337\377\202" "\336\336\336\377\2\335\335\335\377\334\334\334\377\202\333\333\333\377" "\31\332\332\332\377\331\331\331\377\330\330\330\377\327\327\327\377\326" "\326\326\377\325\325\325\377\324\324\324\377\322\322\322\377\321\321" "\321\377\320\320\320\377\317\317\317\377\316\316\316\377\314\314\314" "\377\313\313\313\377\312\312\312\377\311\311\311\377\307\307\307\377" "\306\306\306\377\305\305\305\377\303\303\303\377\302\302\302\377\301" "\301\301\377\277\277\277\377\276\276\276\377\301\301\301\377\203\370" "\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370\370\370" "\377\2\341\341\341\377\337\337\337\377\203\336\336\336\377\202\335\335" "\335\377\2\334\334\334\377\333\333\333\377\202\332\332\332\377\31\331" "\331\331\377\330\330\330\377\327\327\327\377\326\326\326\377\325\325" "\325\377\324\324\324\377\323\323\323\377\322\322\322\377\320\320\320" "\377\317\317\317\377\316\316\316\377\315\315\315\377\314\314\314\377" "\312\312\312\377\311\311\311\377\310\310\310\377\307\307\307\377\305" "\305\305\377\304\304\304\377\303\303\303\377\301\301\301\377\300\300" "\300\377\277\277\277\377\275\275\275\377\301\301\301\377\203\370\370" "\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370\370\370\377" "\1\340\340\340\377\203\335\335\335\377\202\334\334\334\377\202\333\333" "\333\377\2\332\332\332\377\331\331\331\377\202\330\330\330\377\30\327" "\327\327\377\326\326\326\377\325\325\325\377\324\324\324\377\323\323" "\323\377\322\322\322\377\321\321\321\377\320\320\320\377\316\316\316" "\377\315\315\315\377\314\314\314\377\313\313\313\377\312\312\312\377" "\310\310\310\377\307\307\307\377\306\306\306\377\305\305\305\377\303" "\303\303\377\302\302\302\377\301\301\301\377\277\277\277\377\276\276" "\276\377\275\275\275\377\300\300\300\377\203\370\370\370\377\203rst\377" "\220\377\377\377\0\203rst\377\203\370\370\370\377\244\224\312\352\377" "\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370" "\370\370\377\244\224\312\352\377\203\370\370\370\377\203rst\377\220\377" "\377\377\0\203rst\377\203\370\370\370\377\244\224\312\352\377\203\370" "\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370\370\370" "\377\1\224\312\352\377\202\32\31$\377\1\"%1\377\202\224\312\352\377\1" "\212\275\332\377\232Ts\210\377\1\210\272\331\377\202\224\312\352\377" "\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370" "\370\370\377\1\224\312\352\377\202\16\10\20\377\1\26\24\35\377\202\224" "\312\352\377\1\211\273\331\377\232Nj~\377\1\207\270\326\377\202\224\312" "\352\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377" "\203\370\370\370\377\1\224\312\352\377\202\16\10\20\377\1\26\24\35\377" "\202\224\312\352\377\1\211\273\331\377\232Nj~\377\1\207\270\326\377\202" "\224\312\352\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203" "rst\377\203\370\370\370\377\244\224\312\352\377\203\370\370\370\377\203" "rst\377\220\377\377\377\0\203rst\377\203\370\370\370\377\244\224\312" "\352\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377" "\203\370\370\370\377\244\224\312\352\377\203\370\370\370\377\203rst\377" "\220\377\377\377\0\203rst\377\203\370\370\370\377\1\325\325\325\377\202" "\322\322\322\377\202\321\321\321\377\203\320\320\320\377\1\317\317\317" "\377\202\316\316\316\377\1\315\315\315\377\202\314\314\314\377\17\313" "\313\313\377\312\312\312\377\311\311\311\377\310\310\310\377\307\307" "\307\377\306\306\306\377\305\305\305\377\304\304\304\377\303\303\303" "\377\302\302\302\377\301\301\301\377\300\300\300\377\277\277\277\377" "\276\276\276\377\274\274\274\377\206\273\273\273\377\1\300\300\300\377" "\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203\370" "\370\370\377\2\324\324\324\377\321\321\321\377\203\320\320\320\377\202" "\317\317\317\377\202\316\316\316\377\202\315\315\315\377\2\314\314\314" "\377\313\313\313\377\202\312\312\312\377\16\311\311\311\377\310\310\310" "\377\307\307\307\377\306\306\306\377\305\305\305\377\304\304\304\377" "\303\303\303\377\302\302\302\377\301\301\301\377\300\300\300\377\277" "\277\277\377\276\276\276\377\275\275\275\377\274\274\274\377\206\273" "\273\273\377\1\300\300\300\377\203\370\370\370\377\203rst\377\220\377" "\377\377\0\203rst\377\203\370\370\370\377\1\323\323\323\377\204\317\317" "\317\377\202\316\316\316\377\202\315\315\315\377\202\314\314\314\377" "\2\313\313\313\377\312\312\312\377\202\311\311\311\377\15\310\310\310" "\377\307\307\307\377\306\306\306\377\305\305\305\377\304\304\304\377" "\303\303\303\377\302\302\302\377\301\301\301\377\300\300\300\377\277" "\277\277\377\276\276\276\377\275\275\275\377\274\274\274\377\207\273" "\273\273\377\1\300\300\300\377\203\370\370\370\377\203rst\377\220\377" "\377\377\0\203rst\377\203\370\370\370\377\1\323\323\323\377\203\316\316" "\316\377\203\315\315\315\377\202\314\314\314\377\1\313\313\313\377\202" "\312\312\312\377\1\311\311\311\377\202\310\310\310\377\14\307\307\307" "\377\306\306\306\377\305\305\305\377\304\304\304\377\303\303\303\377" "\302\302\302\377\301\301\301\377\300\300\300\377\277\277\277\377\276" "\276\276\377\275\275\275\377\274\274\274\377\210\273\273\273\377\1\300" "\300\300\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst" "\377\203\370\370\370\377\1\321\321\321\377\203\315\315\315\377\202\314" "\314\314\377\202\313\313\313\377\202\312\312\312\377\202\311\311\311" "\377\2\310\310\310\377\307\307\307\377\202\306\306\306\377\12\305\305" "\305\377\304\304\304\377\303\303\303\377\302\302\302\377\301\301\301" "\377\300\300\300\377\277\277\277\377\276\276\276\377\275\275\275\377" "\274\274\274\377\211\273\273\273\377\1\300\300\300\377\203\370\370\370" "\377\203rst\377\220\377\377\377\0\203rst\377\203\370\370\370\377\1\320" "\320\320\377\202\314\314\314\377\203\313\313\313\377\202\312\312\312" "\377\202\311\311\311\377\202\310\310\310\377\2\307\307\307\377\306\306" "\306\377\202\305\305\305\377\11\304\304\304\377\303\303\303\377\302\302" "\302\377\301\301\301\377\300\300\300\377\277\277\277\377\276\276\276" "\377\275\275\275\377\274\274\274\377\212\273\273\273\377\1\300\300\300" "\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst\377\203" "\370\370\370\377\1\317\317\317\377\202\313\313\313\377\203\312\312\312" "\377\202\311\311\311\377\202\310\310\310\377\1\307\307\307\377\202\306" "\306\306\377\1\305\305\305\377\202\304\304\304\377\10\303\303\303\377" "\302\302\302\377\301\301\301\377\300\300\300\377\277\277\277\377\276" "\276\276\377\275\275\275\377\274\274\274\377\213\273\273\273\377\1\300" "\300\300\377\203\370\370\370\377\203rst\377\220\377\377\377\0\203rst" "\377\203\370\370\370\377\2\322\322\322\377\316\316\316\377\203\315\315" "\315\377\203\314\314\314\377\202\313\313\313\377\1\312\312\312\377\203" "\311\311\311\377\1\310\310\310\377\202\307\307\307\377\6\306\306\306" "\377\305\305\305\377\304\304\304\377\303\303\303\377\302\302\302\377" "\301\301\301\377\214\300\300\300\377\1\306\306\306\377\203\370\370\370" "\377\203rst\377\220\377\377\377\0\203rst\377\252\370\370\370\377\203" "rst\377\220\377\377\377\0\203rst\377\1\364\364\364\377\250\370\370\370" "\377\1\363\363\363\377\203rst\377\220\377\377\377\0\203rst\377\2\322" "\322\323\377\365\365\365\377\246\370\370\370\377\2\364\364\364\377\314" "\314\315\377\203rst\377\220\377\377\377\0\1rst\376\256rst\377\1rst\376" "\220\377\377\377\0\1rsu\274\256rst\377\1rsu\274\220\377\377\377\0\2t" "tt!rst\316\254rst\377\2rst\316ttt!\222\377\377\377\0\1vvv\34\252ppx\40" "\1vvv\34\377\377\377\377\0\212\377\377\377\0"}; /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_systray_menu_tasks) #endif #ifdef __GNUC__ const guint8 osmo_stock_systray_menu_tasks[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_systray_menu_tasks[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (905) */ "\0\0\3\241" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\1\243\243\243\311\202\241\241\241\377\13\237\237\237\377\236\236\236" "\377\234\234\234\377\232\232\232\377\230\230\230\377\226\226\226\377" "\224\224\224\377\222\222\222\377\220\220\220\377\221\221\221\342\214" "\214\214\13\202\377\377\377\0\3\237\237\237\377\373\373\373\377\376\376" "\376\377\202\375\375\375\377\202\374\374\374\377\202\373\373\373\377" "\202\372\372\372\377\3\370\370\370\377\245\245\245\364\214\214\214(\202" "\377\377\377\0\2\237\237\237\377\376\376\376\377\202\361\361\361\377" "\12\360\360\360\377\356\356\356\377\353\353\353\377\350\350\350\377\345" "\345\345\377\342\342\342\377\337\337\337\377\362\362\362\377\254\254" "\254\365\214\214\214(\202\377\377\377\0\2\235\235\235\377\376\376\376" "\377\202\364\364\364\377\12\362\362\362\377\357\357\357\377\354\354\354" "\377\351\351\351\377\346\346\346\377\342\342\342\377\337\337\337\377" "\362\362\362\377\254\254\254\365\214\214\214(\202\377\377\377\0\16\234" "\234\234\377\375\375\375\377)$+\377\355\355\355\377\256\256\256\377\254" "\254\254\377\252\252\252\377\247\247\247\377\245\245\245\377\243\243" "\243\377\306\306\306\377\362\362\362\377\253\253\253\365\213\213\213" "(\202\377\377\377\0\16\232\232\232\377\375\375\375\377\371\371\371\377" "\367\367\367\377\363\363\363\377\360\360\360\377\355\355\355\377\351" "\351\351\377\346\346\346\377\342\342\342\377\337\337\337\377\362\362" "\362\377\253\253\253\365\213\213\213(\202\377\377\377\0\16\230\230\230" "\377\374\374\374\377\366\366\366\377\365\365\365\377\362\362\362\377" "\357\357\357\377\354\354\354\377\351\351\351\377\345\345\345\377\342" "\342\342\377\336\336\336\377\362\362\362\377\252\252\252\365\212\212" "\212(\202\377\377\377\0\22\226\226\226\377\374\374\374\377)$+\377\351" "\351\351\377\254\254\254\377\253\253\253\377\251\251\251\377\246\246" "\246\377\244\244\244\377\304\304\304\377\335\335\335\377\362\362\362" "\377\251\251\250\365J}\13\313G}\4\305Dw\3""3\225\225\225\377\373\373" "\373\377\202\360\360\360\377\16\356\356\356\377\354\354\354\377\351\351" "\351\377\346\346\346\377\343\343\343\377\340\340\340\377\334\334\334" "\377\362\362\362\377}\224`\371\211\260Y\371\224\304_\376F{\4\352\223" "\223\223\377\373\373\373\377\202\355\355\355\377\36\353\353\353\377\351" "\351\351\377\347\347\347\377\344\344\344\377\341\341\341\377\336\336" "\336\377\333\333\333\377\345\351\340\377c\215,\376\233\321`\377\213\270" "X\371F|\4\223\221\221\221\377\372\372\372\377(#*\377\342\342\342\377" "\247\247\247\377\246\246\246\377\244\244\244\377\242\242\242\377\226" "\234\217\377\234\235\232\377\300\300\300\377\206\247\\\377\232\300m\377" "\226\317Z\377N\200\16\361Dw\3\15\217\217\217\377\372\372\372\377\202" "\347\347\347\377\36\346\346\346\377\344\344\344\377\342\342\342\377\252" "\274\222\377c\217-\377f\2201\377\245\266\217\377x\237H\377\221\320P\377" "y\245F\370Ex\3`\377\377\377\0\215\215\215\377\371\371\371\377\345\345" "\345\377\344\344\344\377\343\343\343\377\341\341\341\377\337\337\337" "\377R\202\26\377\252\316\202\377\223\277_\377q\230\77\377\232\306g\377" "\223\304\\\377J}\11\333Dw\3\1\377\377\377\0\213\213\213\377\366\366\366" "\377\205\370\370\370\377\7\274\316\247\377W\205\33\377\242\310t\377\217" "\314N\377\211\311B\377i\2232\377_~6T\202\377\377\377\0\1\217\217\217" "\311\207\212\212\212\377\6\177\207u\377P}\26\377\205\257S\377\215\267" "[\377]\2010\365\212\212\212\13\213\377\377\377\0\4Dw\3\12G{\4\252Fz\4" "\344Dw\3\25\203\377\377\377\0"}; #endif /* TASKS_ENABLED */ /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_stock_systray_normal) #endif #ifdef __GNUC__ const guint8 osmo_stock_systray_normal[] __attribute__ ((__aligned__ (4))) = #else const guint8 osmo_stock_systray_normal[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (6614) */ "\0\0\31\356" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (256) */ "\0\0\1\0" /* width (64) */ "\0\0\0@" /* height (64) */ "\0\0\0@" /* pixel_data: */ "\377\377\377\377\0\377\377\377\377\0\234\377\377\377\0\13""999\22""7" "77S557s668\222558\261667\306668\256559\220557s777S333\31\262\377\377" "\377\0\4+++\6""669Q668\256668\371\212668\377\3""669\324557\217666/\255" "\377\377\377\0\3\0\0\0\1""669g668\354\220668\377\2""669\264559:\252\377" "\377\377\0\2""777%668\300\206668\377\7==\77\377DCD\377GFH\377GFG\377" "@@A\377::<\377779\377\207668\377\2""559\220UUU\3\247\377\377\377\0\2" "669c668\367\204668\377\16\77\77@\377XWW\377xvu\377|zx\377rpo\377hfe\377" "^\\[\377TRR\377JHH\377@>\77\377535\377/./\377112\377557\377\204668\377" "\2""669\27100@\20\245\377\377\377\0\2""669c668\376\203668\377\22;:<\377" "YWW\377pnm\377zxw\377\204\202\200\377zxv\377pnl\377fdc\377[YY\377QOP" "\377GEF\377=;<\377313\377)')\377(&(\377)'*\377/.0\377557\377\203668\377" "\2""668\331666&\243\377\377\377\0\2""669^668\375\203668\377\16CBC\377" "\\ZZ\377hff\377rpo\377}{y\377\201\177~\377wut\377mkj\377caa\377YWW\377" "OMM\377ECD\377;9:\3771/0\377\204(&(\377\2*(*\377446\377\203668\377\2" "667\357777F\241\377\377\377\0\2""666B668\375\203668\377\5EDE\377WUU\377" "a_^\377kih\377usq\377\202\177}{\377\10usr\377kih\377a_^\377WUU\377MK" "K\377CAA\377978\377.,.\377\205(&(\377\2(')\377214\377\203668\377\2""6" "68\373555+\237\377\377\377\0\2$$I\7""668\331\203668\377\20\77>\77\377" "OMM\377YWW\377ca`\377mkj\377wut\377\201\177}\377}{y\377sqo\377igf\377" "^\\\\\377TRR\377JHI\377@>\77\377646\377,*,\377\206(&(\377\2)')\3770/" "1\377\203668\377\1""667\301\237\377\377\377\0\1""668\177\203668\377\21" ":9:\377GEF\377QOO\377[YY\377ecc\377oml\377ywv\377\204\202\200\377zxw" "\377pnm\377fdd\377\\ZZ\377RPP\377HFG\377><=\377423\377*(*\377\210(&(" "\377\1""0/1\377\203668\377\1""777]\235\377\377\377\0\2""666&668\370\202" "668\377\21""667\377\77=>\377IGH\377TRR\377^\\[\377hfe\377rpo\377|zx\377" "\202\200~\377xvu\377nlk\377dba\377ZXX\377PNN\377FDD\377<:;\377201\377" "\211(&(\377\2('(\377546\377\202668\377\2""668\350333\17\234\377\377\377" "\0\1""668\223\203668\377\21""867\377B@A\377LJJ\377VTT\377`^^\377jhg\377" "trq\377~|z\377\200~|\377vtr\377lji\377b`_\377XVV\377NLL\377DBB\37797" "9\377/-/\377\212(&(\377\1-+-\377\203668\377\1""668\223\233\377\377\377" "\0\2\0\0\0\1""668\344\202668\377\22""435\377:89\377DBC\377NLL\377XVV" "\377TST\377JIJ\377EEG\377\77>@\377JIJ\377TSS\377[YZ\377^\\\\\377USS\377" "KIJ\377A\77@\377756\377-+-\377\213(&(\377\1""213\377\202668\377\2""6" "68\37533<\36\232\377\377\377\0\1""8887\203668\377\5""314\377<:;\377F" "DE\377MLM\377AAB\377\207668\377\6""98:\377HGH\377IGG\377\77=>\377534" "\377+)+\377\213(&(\377\2*(*\377557\377\202668\377\1""669g\232\377\377" "\377\0\1""668\210\203668\377\4""535\377><>\377HFF\377;;=\377\212668\377" "\3;:<\377<:;\377202\377\215(&(\377\1""324\377\202668\377\1""668\256\232" "\377\377\377\0\1""668\256\204668\377\2>=>\377=<=\377\203668\377\5B\77" "<\377mbL\377|nR\377bYI\377B\77=\377\205668\377\1""213\377\211(&(\377" "\202,*-\377\3)')\377(&(\377.-/\377\202668\377\1""668\354\232\377\377" "\377\0\1""558\277\210668\377\2SMC\377\275\241j\377\204\306\250m\377\2" "\227\203[\377B\77<\377\204668\377\2""224\377+*,\377\206(&(\377\1-+.\377" "\202668\377\3""446\377*(*\377,+-\377\202668\377\2""668\376@@@\4\231\377" "\377\377\0\1""667\317\207668\377\2B\77<\377\270\235h\377\206\306\250" "m\377\2\273\237i\377i^J\377\205668\377\6""435\377-,.\377*(*\377(&(\377" "(&)\377/.0\377\204668\377\2""325\377,+,\377\203668\377\1""777\27\231" "\377\377\377\0\1""668\337\206668\377\15@><\377\242\213_\377\306\250m" "\377\312\256t\377\322\266\200\377\331\300\217\377\341\312\233\377\337" "\307\230\377\322\266\202\377\307\251p\377\306\250m\377\232\205]\377D" "A=\377\206668\377\202557\377\206668\377\1""335\377\203668\377\1""999" "$\231\377\377\377\0\1""668\356\202668\377\23@=3\377\256\227`\377\216" "~Y\377siP\377\304\252q\377\323\270\202\377\340\307\230\377\347\320\244" "\377\351\322\247\377\352\324\252\377\353\325\253\377\353\324\253\377" "\352\323\251\377\347\320\244\377\335\302\221\377\322\265\177\377\300" "\243m\377\202rT\377DA=\377\210668\377\2=;;\377MH@\377\206668\377\1""7" "77\16\231\377\377\377\0\15""668\276C\77""1\364E@1\377WM(\377\325\270" "q\377\341\304z\377\341\305\177\377\337\304\210\377\341\307\227\377\343" "\312\233\377\345\314\237\377\347\316\242\377\350\320\244\377\202\350" "\320\245\377\11\347\317\243\377\346\315\241\377\344\313\235\377\342\310" "\231\377\340\304\225\377\331\274\210\377\313\256z\377\221~\\\377NIA\377" "\205668\377\4IE@\377\255\224d\377\267\234e\377FC>\377\204668\377\1""7" "68\361\233\377\377\377\0\1{e\26\320\202{e\26\377\36\323\265r\377\341" "\304|\377\342\306\202\377\342\306\212\377\337\304\223\377\341\306\226" "\377\343\311\232\377\344\312\234\377\345\314\236\377\345\314\237\377" "\345\314\236\377\344\313\235\377\343\312\233\377\342\310\230\377\340" "\305\225\377\336\303\221\377\334\300\214\377\332\274\207\377\327\271" "\202\377\325\266}\377\306\250s\377\250\220d\377\213xV\377\217{V\377\252" "\216\\\377\300\235_\377\303\235Y\377\277\230Q\377\261\215N\377RJ8\377" "\203668\377\1""986\316\233\377\377\377\0\1{e\27\265\202{e\26\377\33\316" "\261o\377\341\305\177\377\343\307\205\377\342\307\211\377\335\301\216" "\377\336\303\221\377\340\305\224\377\341\306\226\377\342\310\230\377" "\342\310\231\377\342\310\230\377\341\307\227\377\340\306\225\377\337" "\304\223\377\336\302\220\377\334\277\214\377\332\275\210\377\330\272" "\203\377\326\267\177\377\323\263z\377\321\260u\377\316\254p\377\314\251" "j\377\311\245e\377\307\242`\377\304\236Z\377\301\232U\377\202\277\227" "P\377\5\232|1\377[O&\377QH+\377hW!\373UU+\6\233\377\377\377\0\1{f\26" "\231\202{e\26\377\11\267\232W\377\341\305\200\377\343\310\206\377\344" "\311\213\377\333\277\212\377\334\277\214\377\335\301\216\377\336\303" "\220\377\337\303\222\377\202\337\304\222\377\20\336\303\221\377\336\302" "\220\377\335\300\215\377\333\276\212\377\332\274\207\377\330\272\203" "\377\326\267\177\377\324\264{\377\321\261v\377\317\256q\377\315\252l" "\377\312\247g\377\310\243b\377\305\240]\377\303\234W\377\300\230R\377" "\202\277\227P\377\1\224w+\377\202{e\26\377\1|e\26\341\234\377\377\377" "\0\1{f\25x\202{e\26\377\32\205n\"\377\335\302\200\377\343\310\207\377" "\343\311\213\377\336\302\211\377\331\274\206\377\332\275\211\377\333" "\276\212\377\334\277\214\377\334\300\214\377\334\277\214\377\333\277" "\213\377\333\276\212\377\332\274\207\377\331\273\205\377\327\271\202" "\377\325\266~\377\324\264{\377\322\261v\377\317\256r\377\315\253n\377" "\313\250i\377\311\244d\377\306\241_\377\304\236Z\377\301\232U\377\203" "\277\227P\377\1\205m\37\377\202{e\26\377\1|e\27\300\234\377\377\377\0" "\1zf\24""2\203{e\26\377\10\307\254i\377\343\310\211\377\343\311\214\377" "\343\311\217\377\327\271\202\377\327\271\203\377\330\272\204\377\331" "\273\205\377\202\331\273\206\377\17\331\273\205\377\330\272\204\377\327" "\271\202\377\326\267\177\377\325\265}\377\323\263y\377\321\261v\377\317" "\256r\377\315\253n\377\313\250i\377\311\245e\377\307\242`\377\304\237" "[\377\302\233V\377\300\230Q\377\202\277\227P\377\1\263\216F\377\203{" "e\26\377\1{f\25x\235\377\377\377\0\1{e\26\340\202{e\26\377\11\223{0\377" "\341\306\210\377\342\310\215\377\343\311\220\377\336\301\211\377\325" "\265}\377\325\266~\377\326\267\177\377\326\267\200\377\202\326\267\177" "\377\15\325\266~\377\324\265|\377\323\263z\377\322\261w\377\320\257t" "\377\317\255q\377\315\253m\377\313\250i\377\311\245e\377\307\242a\377" "\305\237\\\377\303\234X\377\300\231S\377\203\277\227P\377\1\232|1\377" "\203{e\26\377\1xc\25$\235\377\377\377\0\1{e\26\215\203{e\26\377\6\305" "\251g\377\342\310\214\377\342\310\220\377\342\311\222\377\331\273\203" "\377\322\262x\377\203\323\263y\377\15\323\262y\377\322\262x\377\321\261" "v\377\320\257t\377\317\256r\377\316\254o\377\314\252l\377\313\247h\377" "\311\245e\377\307\242`\377\305\237\\\377\303\234X\377\301\231T\377\203" "\277\227P\377\2\270\221I\377}g\30\377\202{e\26\377\1{f\26\316\236\377" "\377\377\0\2\200b\24\32{e\26\364\202{e\26\377\7\206o\"\377\335\301\206" "\377\342\310\217\377\342\310\221\377\342\310\223\377\327\271\200\377" "\320\256s\377\202\320\257s\377\16\320\256r\377\317\256q\377\316\255p" "\377\316\253n\377\314\252l\377\313\250i\377\312\246f\377\310\244c\377" "\307\242`\377\305\237\\\377\303\234X\377\301\231T\377\277\227P\377\277" "\230Q\377\202\277\227P\377\1\223v*\377\203{e\26\377\1{d\27W\237\377\377" "\377\0\1yc\27\203\203{e\26\377\30\237\204<\377\336\303\213\377\340\307" "\217\377\340\307\222\377\340\307\223\377\331\274\205\377\316\254o\377" "\315\252m\377\315\252l\377\314\251k\377\314\251j\377\313\247h\377\312" "\246f\377\310\244d\377\307\242a\377\306\240^\377\304\236Z\377\302\234" "W\377\301\231S\377\277\227P\377\300\231T\377\277\230Q\377\277\227P\377" "\243\2038\377\203{e\26\377\1o\\\37\350\237\377\377\377\0\3!1J\37(0K\333" "q_\34\377\203{e\26\377\27\252\216I\377\336\303\213\377\337\305\220\377" "\336\305\220\377\336\304\220\377\334\301\215\377\322\263y\377\313\247" "g\377\311\245e\377\311\244d\377\310\243b\377\307\242`\377\306\240^\377" "\304\237[\377\303\235X\377\302\233U\377\300\230R\377\301\232U\377\302" "\234X\377\300\231T\377\277\227P\377\254\211@\377|e\27\377\202{e\26\377" "\3zd\27\3776;B\377#/P\252\235\377\377\377\0\5#/NA\"0N\361#/N\3776:C\377" "wc\30\377\203{e\26\377\25\241\206>\377\330\274\204\377\334\303\216\377" "\334\302\215\377\333\301\215\377\332\300\214\377\330\275\211\377\322" "\263{\377\315\253n\377\312\246g\377\307\242a\377\305\241^\377\305\240" "^\377\304\240^\377\305\240^\377\305\241`\377\304\237]\377\302\233W\377" "\300\230Q\377\244\204:\377}f\27\377\203{e\26\377\1JH5\377\202#/N\377" "\2#/N\231\0\0\0\1\232\377\377\377\0\2!/P6\"/N\364\203#/N\377\2\77@=\377" "zd\27\377\203{e\26\377\22\215s'\377\311\253n\377\332\277\211\377\331" "\276\211\377\330\275\210\377\327\273\206\377\325\271\203\377\324\266" "\200\377\322\264|\377\317\261x\377\315\255s\377\312\251m\377\311\246" "i\377\307\243d\377\305\240_\377\303\235Z\377\274\226P\377\225x,\377\204" "{e\26\377\3VN-\377#0P\377$0P\377\202#/N\377\1$/M\201\231\377\377\377" "\0\2\40-M(#.N\354\202#/N\377\1""6Gh\377\202#/N\377\2GE7\377ze\27\377" "\203{e\26\377\20|e\27\377\232\1776\377\310\251m\377\325\271\203\377\324" "\267\202\377\322\265~\377\321\263{\377\317\260w\377\315\255s\377\314" "\253o\377\312\250k\377\310\245f\377\306\242b\377\300\234Y\377\241\204" "<\377\177h\32\377\204{e\26\377\10]S)\377&3R\377;[\200\377:Ln\377#/O\377" "#/N\377#/N\376$.OT\227\377\377\377\0\2#,O\35#/N\342\202#/N\377\3F\\\177" "\377r\225\274\377Mf\211\377\202#/N\377\2""9=@\377ta\32\377\205{e\26\377" "\13\210o\"\377\246\211C\377\271\234\\\377\302\243g\377\306\247k\377\307" "\250l\377\301\242e\377\271\232Z\377\252\215J\377\224{2\377\200i\35\377" "\204{e\26\377\7ze\27\377LH4\377%3S\377\77i\223\377@t\241\377=h\221\377" "5Gh\377\202#/N\377\2\"/N\364!1L/\225\377\377\377\0\2(6Q\23#.M\326\202" "#/N\377\1DZ}\377\202r\225\274\377\2p\224\273\377>^\202\377\202#/N\377" "\2-5H\377aU'\377\222{e\26\377\11m\\\37\377:=@\377$3T\377,\\\210\3776" "n\233\377@t\241\3779p\235\377^\3773X{\377An\224\377R\200\247\377c\214" "\263\377e\215\264\377b\214\263\377`\213\262\377^\211\260\377\\\210\257" "\377Y\207\256\377" "r\231\3772Qt\377\202#/N\377\1""2Ba\377\206\334\333\332\377\1&2Q\377\202" "#/N\377\10Nh\215\377]\200\251\377Rs\234\377Gg\216\377c\231\366#N\212\267\40J\207f,V\217\364!K\210\377" "\377\377\377\0!K\210^\77e\233\366\264\310\342\377\304\325\352\377\277" "\321\350\377\265\313\345\377\233\271\334\377\217\260\330\377s\235\317" "\377|\244\322\377\241\276\336\377p\222\275\373Fk\237\365\222\261\325" "\377#L\210\377\40J\2071&O\214\365\204\245\320\377y\235\313\377V{\257" "\3715\\\225\3640Y\222\366Kp\243\361t\225\300\373\242\274\334\377\201" "\247\323\377e\223\311\377\210\254\326\377\223\264\331\377\237\275\336" "\377\"L\210\377!L\211\213._\241\3753f\252\377!L\212\365!K\210}\40J\207" "/\40J\207\26\40J\207<#M\212\240-U\217\366\206\245\314\377\207\253\325" "\377f\225\312\377k\231\314\377\232\272\335\377\"L\210\377\"M\213\324" ")W\227\376!L\211\355\40J\2072\205\377\377\377\0\12\40J\207~Ek\237\364" "\215\260\330\377h\227\313\377m\233\315\377\227\270\334\377\"L\210\377" "!L\212\327\"M\212\321\40J\207#\205\377\377\377\0\4\40J\207E)R\215\365" "\212\252\322\377\230\267\334\377\202\225\266\333\377\21\224\266\332\377" "!K\210\377\377\377\377\0\40J\207\1\40J\207\2\40J\207\3\40J\207\4\40J" "\207\5\40J\207\6\40J\207\3#M\212\300\"L\210\376%O\212\374%N\212\375#" "M\211\376\"L\210\376!K\210\377\202#M\211\350\27(P\213\377)Q\214\376*" "R\214\376,T\216\375,T\216\374$N\211\376#M\212\300\40J\207\3\40J\207\6" "\40J\207\5\40J\207\4\40J\207\3\40J\207\2\40J\207\1\377\377\377\0\40J" "\207\377\302\325\352\377\273\320\350\377\267\315\346\377\272\317\347" "\377\242\274\333\377,T\217\366\40J\207E\205\377\377\377\0\12\40J\207" "\31\"M\212\305!L\212\325\40J\207\377\302\325\352\377m\233\315\377h\227" "\313\377\256\307\343\377@f\235\365\40J\207~\205\377\377\377\0\40\40J" "\207+!L\211\347'T\224\375\"M\213\324\40J\207\377\301\324\352\377k\231" "\314\377f\225\312\377\221\262\331\377\215\252\317\377-U\217\366#M\212" "\240\40J\207<\40J\207\26\40J\2070!K\210{!L\211\3651d\250\376-^\240\374" "!K\211\213\40J\207\377\276\322\351\377\251\303\341\377\224\264\332\377" "h\226\312\377~\244\322\377\225\263\327\377g\213\272\374Bi\237\362-V\220" "\366.W\222\364\77i\244\371\202P~\274\377\40\"M\212\364\40J\2071\40J\207" "\377\245\277\334\377Ej\236\365n\220\273\373\235\273\334\377y\241\321" "\377k\230\314\377v\237\317\377v\236\317\377z\241\320\377t\235\316\377" "n\227\314\377]\211\300\377*T\217\366\40K\210]\377\377\377\0\40J\207\377" ".V\220\365\40J\207_$N\213\2605\\\225\366k\220\276\377t\230\306\377z\236" "\314\377|\241\320\377l\224\307\377Y\202\272\377;e\241\365\"M\211\361" "!K\211g\202\377\377\377\0\2$N\213\276\40J\207E\202\377\377\377\0\11\40" "J\207C#M\212\242#N\213\310\"M\212\347\40K\210\373!L\211\356\"M\213\311" "!K\210u\40J\207\12\203\377\377\377\0"}; osmo-0.4.2/src/notes_items.h0000664000175000017500000000270513066543472012724 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _NOTES_ITEMS_H #define _NOTES_ITEMS_H #include "gui.h" void notes_add_entry (GUI *appGUI); void notes_edit_dialog_show (GtkWidget *list, GtkTreeModel *model, GUI *appGUI); void notes_remove_dialog_show (GUI *appGUI); void notes_enter_password (GUI *appGUI); void notes_cleanup_files (GUI *appGUI); gchar * notes_get_new_filename (GUI *appGUI); gchar * notes_get_full_filename (gchar *filename, GUI *appGUI); void read_notes_entries (GUI *appGUI); void write_notes_entries (GUI *appGUI); #endif /* _NOTES_ITEMS_H */ osmo-0.4.2/src/calendar_print.h0000664000175000017500000000171413066543472013357 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_PRINT_H #define _CALENDAR_PRINT_H void calendar_create_print_window (GUI *appGUI); #endif /* _CALENDAR_PRINT_H */ osmo-0.4.2/src/calendar_widget.c0000664000175000017500000034551613071623273013506 00000000000000/* * GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * GTK Calendar Widget * Copyright (C) 1998 Cesar Miquel, Shawn T. Amundson and Mattias Groenlund * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK+ at ftp://ftp.gtk.org/pub/gtk/. * * Modified for OSMO organizer by pasp@users.sourceforge.net */ #include #include #include #include #include #include #include "i18n.h" #include "gui.h" #include "calendar_widget.h" #include "calendar_utils.h" #include "utils.h" #include "utils_date.h" static void gui_calendar_finalize (GObject *calendar); static void gui_calendar_dispose (GObject *calendar); static void gui_calendar_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void gui_calendar_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); static void gui_calendar_realize (GtkWidget *widget); static void gui_calendar_unrealize (GtkWidget *widget); static void gui_calendar_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width); static void gui_calendar_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height); static void gui_calendar_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gui_calendar_draw (GtkWidget *widget, cairo_t *cr); static gboolean gui_calendar_button_press (GtkWidget *widget, GdkEventButton *event); static gboolean gui_calendar_button_release (GtkWidget *widget, GdkEventButton *event); static gboolean gui_calendar_motion_notify (GtkWidget *widget, GdkEventMotion *event); static gboolean gui_calendar_enter_notify (GtkWidget *widget, GdkEventCrossing *event); static gboolean gui_calendar_leave_notify (GtkWidget *widget, GdkEventCrossing *event); static gboolean gui_calendar_scroll (GtkWidget *widget, GdkEventScroll *event); static gboolean gui_calendar_key_press (GtkWidget *widget, GdkEventKey *event); static gboolean gui_calendar_focus_out (GtkWidget *widget, GdkEventFocus *event); static void gui_calendar_grab_notify (GtkWidget *widget, gboolean was_grabbed); static void gui_calendar_state_changed (GtkWidget *widget, GtkStateType previous_state); static void gui_calendar_style_set (GtkWidget *widget, GtkStyle *previous_style); static void gui_calendar_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time); static void gui_calendar_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time); static gboolean gui_calendar_drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time); static void gui_calendar_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time); static gboolean gui_calendar_drag_drop (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time); static void calendar_start_spinning (GuiCalendar *calendar, gint click_child); static void calendar_stop_spinning (GuiCalendar *calendar); static void calendar_invalidate_day (GuiCalendar *widget, gint row, gint col); static void calendar_invalidate_day_num (GuiCalendar *widget, gint day); static void calendar_invalidate_arrow (GuiCalendar *widget, guint arrow); static void calendar_compute_days (GuiCalendar *calendar); static guint gui_calendar_signals[LAST_SIGNAL] = { 0 }; static char *default_abbreviated_dayname[7]; static char *default_monthname[12]; G_DEFINE_TYPE (GuiCalendar, gui_calendar, GTK_TYPE_WIDGET) /*------------------------------------------------------------------------------*/ static void get_header_bg_color(GtkWidget *widget, GdkRGBA *color); static void get_background_color(GtkWidget *widget, GdkRGBA *color); /*------------------------------------------------------------------------------*/ static void gui_calendar_class_init (GuiCalendarClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS(class); widget_class = GTK_WIDGET_CLASS(class); object_class->set_property = gui_calendar_set_property; object_class->get_property = gui_calendar_get_property; object_class->finalize = gui_calendar_finalize; object_class->dispose = gui_calendar_dispose; widget_class->realize = gui_calendar_realize; widget_class->unrealize = gui_calendar_unrealize; widget_class->draw = gui_calendar_draw; widget_class->get_preferred_width = gui_calendar_get_preferred_width; widget_class->get_preferred_height = gui_calendar_get_preferred_height; widget_class->size_allocate = gui_calendar_size_allocate; widget_class->button_press_event = gui_calendar_button_press; widget_class->button_release_event = gui_calendar_button_release; widget_class->motion_notify_event = gui_calendar_motion_notify; widget_class->enter_notify_event = gui_calendar_enter_notify; widget_class->leave_notify_event = gui_calendar_leave_notify; widget_class->key_press_event = gui_calendar_key_press; widget_class->scroll_event = gui_calendar_scroll; widget_class->style_set = gui_calendar_style_set; widget_class->state_changed = gui_calendar_state_changed; widget_class->grab_notify = gui_calendar_grab_notify; widget_class->focus_out_event = gui_calendar_focus_out; widget_class->drag_data_get = gui_calendar_drag_data_get; widget_class->drag_motion = gui_calendar_drag_motion; widget_class->drag_leave = gui_calendar_drag_leave; widget_class->drag_drop = gui_calendar_drag_drop; widget_class->drag_data_received = gui_calendar_drag_data_received; g_object_class_install_property (object_class, PROP_YEAR, g_param_spec_int ("year", "Year", "The selected year", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MONTH, g_param_spec_int ("month", "Month", "The selected month (as a number between 0 and 11)", 0, 11, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_DAY, g_param_spec_int ("day", "Day", "The selected day (as a number between 1 and 31, or 0 to unselect the currently selected day)", 0, 31, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SHOW_HEADING, g_param_spec_boolean ("show-heading", "Show Heading", "If TRUE, a heading is displayed", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SHOW_DAY_NAMES, g_param_spec_boolean ("show-day-names", "Show Day Names", "If TRUE, day names are displayed", TRUE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_NO_MONTH_CHANGE, g_param_spec_boolean ("no-month-change", "No Month Change", "If TRUE, the selected month cannot be changed", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SHOW_WEEK_NUMBERS, g_param_spec_boolean ("show-week-numbers", "Show Week Numbers", "If TRUE, week numbers are displayed", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WEEK_START_MONDAY, g_param_spec_boolean ("week-start-monday", "Week Start Monday", "If TRUE, week starts at monday", FALSE, G_PARAM_READWRITE)); gui_calendar_signals[MONTH_CHANGED_SIGNAL] = g_signal_new ("month_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, month_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[DAY_SELECTED_SIGNAL] = g_signal_new ("day_selected", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, day_selected), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[DAY_SELECTED_DOUBLE_CLICK_SIGNAL] = g_signal_new ("day_selected_double_click", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, day_selected_double_click), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[PREV_MONTH_SIGNAL] = g_signal_new ("prev_month", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, prev_month), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[NEXT_MONTH_SIGNAL] = g_signal_new ("next_month", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, next_month), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[PREV_YEAR_SIGNAL] = g_signal_new ("prev_year", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, prev_year), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); gui_calendar_signals[NEXT_YEAR_SIGNAL] = g_signal_new ("next_year", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GuiCalendarClass, next_year), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); g_type_class_add_private (object_class, sizeof (GuiCalendarPrivate)); } /*------------------------------------------------------------------------------*/ static void gui_calendar_init (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); time_t secs; struct tm *tm; gint i; char buffer[255]; time_t tmp_time; GuiCalendarPrivate *priv; priv = calendar->priv = G_TYPE_INSTANCE_GET_PRIVATE (calendar, GUI_TYPE_CALENDAR, GuiCalendarPrivate); gtk_widget_set_can_focus (widget, TRUE); if (!default_abbreviated_dayname[0]) for (i=0; i<7; i++) { tmp_time= (i+3)*86400; strftime ( buffer, sizeof (buffer), "%a", gmtime (&tmp_time)); default_abbreviated_dayname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL); } if (!default_monthname[0]) for (i=0; i<12; i++) { tmp_time=i*2764800; strftime ( buffer, sizeof (buffer), "%B", gmtime (&tmp_time)); default_monthname[i] = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL); } /* Set defaults */ secs = time (NULL); tm = localtime (&secs); calendar->month = tm->tm_mon; calendar->year = 1900 + tm->tm_year; for (i=0;i<31;i++) { calendar->marked_date[i] = FALSE; calendar->event_marked_date[i] = FALSE; calendar->birthday_marked_date[i] = FALSE; } calendar->num_marked_dates = 0; calendar->event_num_marked_dates = 0; calendar->birthday_num_marked_dates = 0; calendar->selected_day = tm->tm_mday; calendar->display_flags = ( GUI_CALENDAR_SHOW_HEADING | GUI_CALENDAR_SHOW_DAY_NAMES ); calendar->highlight_row = -1; calendar->highlight_col = -1; calendar->focus_row = -1; calendar->focus_col = -1; priv->max_year_width = 0; priv->max_month_width = 0; priv->max_day_char_width = 0; priv->max_week_char_width = 0; priv->max_day_char_ascent = 0; priv->max_day_char_descent = 0; priv->max_label_char_ascent = 0; priv->max_label_char_descent = 0; priv->arrow_width = 10; priv->need_timer = 0; priv->timer = 0; priv->click_child = -1; priv->in_drag = 0; priv->drag_highlight = 0; gtk_drag_dest_set (widget, 0, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_text_targets (widget); priv->year_before = 0; gdk_rgba_parse(&calendar->background_color, "#FFFFFF"); gdk_rgba_parse(&calendar->header_bg_color, "#404048"); gdk_rgba_parse(&calendar->header_fg_color, "#DDDDDD"); gdk_rgba_parse(&calendar->weekend_color, "#880000"); gdk_rgba_parse(&calendar->selector_color, "#86ABD9"); gdk_rgba_parse(&calendar->day_color, "#555555"); gdk_rgba_parse(&calendar->pf_day_color, "#CCCCCC"); gdk_rgba_parse(&calendar->event_marker_color, "#CBE140"); gdk_rgba_parse(&calendar->today_marker_color, "#E37751"); gdk_rgba_parse(&calendar->birthday_marker_color, "#EDD400"); calendar->mark_sign = '\''; calendar->frame_cursor_thickness = 2; calendar->enable_cursor = TRUE; priv->year_before = 0; /* years to be displayed before months */ priv->week_start = 0; /* sunday */ calendar_compute_days (calendar); } /*------------------------------------------------------------------------------*/ static void calendar_set_month_next (GuiCalendar *calendar) { gint month_len; g_return_if_fail (GTK_IS_WIDGET (calendar)); if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) return; if (calendar->month == 11) { calendar->month = 0; calendar->year++; } else { calendar->month++; } calendar_compute_days (calendar); g_signal_emit (calendar, gui_calendar_signals[NEXT_MONTH_SIGNAL], 0); g_signal_emit (calendar, gui_calendar_signals[MONTH_CHANGED_SIGNAL], 0); month_len = utl_get_month_length(g_date_is_leap_year (calendar->year), calendar->month + 1); if (month_len < calendar->selected_day) { calendar->selected_day = 0; gui_calendar_select_day (calendar, month_len); } else { gui_calendar_select_day (calendar, calendar->selected_day); } gtk_widget_queue_draw (GTK_WIDGET (calendar)); } /*------------------------------------------------------------------------------*/ static void calendar_set_year_prev (GuiCalendar *calendar) { gint month_len; g_return_if_fail (GTK_IS_WIDGET (calendar)); calendar->year--; calendar_compute_days (calendar); g_signal_emit (calendar, gui_calendar_signals[PREV_YEAR_SIGNAL], 0); g_signal_emit (calendar, gui_calendar_signals[MONTH_CHANGED_SIGNAL], 0); month_len = utl_get_month_length(g_date_is_leap_year (calendar->year), calendar->month + 1); if (month_len < calendar->selected_day) { calendar->selected_day = 0; gui_calendar_select_day (calendar, month_len); } else { gui_calendar_select_day (calendar, calendar->selected_day); } gtk_widget_queue_draw (GTK_WIDGET (calendar)); } /*------------------------------------------------------------------------------*/ static void calendar_set_year_next (GuiCalendar *calendar) { gint month_len; g_return_if_fail (GTK_IS_WIDGET (calendar)); calendar->year++; calendar_compute_days (calendar); g_signal_emit (calendar, gui_calendar_signals[NEXT_YEAR_SIGNAL], 0); g_signal_emit (calendar, gui_calendar_signals[MONTH_CHANGED_SIGNAL], 0); month_len = utl_get_month_length(g_date_is_leap_year (calendar->year), calendar->month + 1); if (month_len < calendar->selected_day) { calendar->selected_day = 0; gui_calendar_select_day (calendar, month_len); } else { gui_calendar_select_day (calendar, calendar->selected_day); } gtk_widget_queue_draw (GTK_WIDGET (calendar)); } /*------------------------------------------------------------------------------*/ static void calendar_compute_days (GuiCalendar *calendar) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (GTK_WIDGET (calendar)); gint month; gint year; gint ndays_in_month; gint ndays_in_prev_month; gint first_day; gint row; gint col; gint day; g_return_if_fail (GUI_IS_CALENDAR (calendar)); year = calendar->year; month = calendar->month + 1; ndays_in_month = utl_get_month_length(g_date_is_leap_year (year), month); first_day = utl_day_of_week (year, month, 1); first_day = (first_day + 7 - priv->week_start) % 7; /* Compute days of previous month */ if (month > 1) { ndays_in_prev_month = utl_get_month_length(g_date_is_leap_year (year), month-1); } else { ndays_in_prev_month = utl_get_month_length(g_date_is_leap_year (year), 12); } day = ndays_in_prev_month - first_day + 1; row = 0; if (first_day > 0) { for (col = 0; col < first_day; col++) { calendar->day[row][col] = day; calendar->day_month[row][col] = MONTH_PREV; day++; } } /* Compute days of current month */ col = first_day; for (day = 1; day <= ndays_in_month; day++) { calendar->day[row][col] = day; calendar->day_month[row][col] = MONTH_CURRENT; col++; if (col == 7) { row++; col = 0; } } /* Compute days of next month */ day = 1; for (; row <= 5; row++) { for (; col <= 6; col++) { calendar->day[row][col] = day; calendar->day_month[row][col] = MONTH_NEXT; day++; } col = 0; } } /*------------------------------------------------------------------------------*/ static void calendar_select_and_focus_day (GuiCalendar *calendar, guint day) { gint old_focus_row = calendar->focus_row; gint old_focus_col = calendar->focus_col; gint row; gint col; for (row = 0; row < 6; row ++) for (col = 0; col < 7; col++) { if (calendar->day_month[row][col] == MONTH_CURRENT && calendar->day[row][col] == day) { calendar->focus_row = row; calendar->focus_col = col; } } if (old_focus_row != -1 && old_focus_col != -1) { calendar_invalidate_day (calendar, old_focus_row, old_focus_col); } gui_calendar_select_day (calendar, day); } /*------------------------------------------------------------------------------*/ static gint calendar_row_height (GuiCalendar *calendar) { return (GUI_CALENDAR_GET_PRIVATE (calendar)->main_h - CALENDAR_MARGIN - ((calendar->display_flags & GUI_CALENDAR_SHOW_DAY_NAMES) ? CALENDAR_YSEP : CALENDAR_MARGIN)) / 6; } /*------------------------------------------------------------------------------*/ /* calendar_left_x_for_column: returns the x coordinate * for the left of the column */ static gint calendar_left_x_for_column (GuiCalendar *calendar, gint column) { gint width; gint x_left; if (gtk_widget_get_direction (GTK_WIDGET (calendar)) == GTK_TEXT_DIR_RTL) column = 6 - column; width = GUI_CALENDAR_GET_PRIVATE (calendar)->day_width; if (calendar->display_flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { x_left = CALENDAR_XSEP + (width + DAY_XSEP) * column; } else { x_left = CALENDAR_MARGIN + (width + DAY_XSEP) * column; } return x_left; } /*------------------------------------------------------------------------------*/ /* column_from_x: returns the column 0-6 that the * x pixel of the xwindow is in */ static gint calendar_column_from_x (GuiCalendar *calendar, gint event_x) { gint c, column; gint x_left, x_right; column = -1; for (c = 0; c < 7; c++) { x_left = calendar_left_x_for_column (calendar, c); x_right = x_left + GUI_CALENDAR_GET_PRIVATE (calendar)->day_width; if (event_x >= x_left && event_x < x_right) { column = c; break; } } return column; } /*------------------------------------------------------------------------------*/ /* calendar_top_y_for_row: returns the y coordinate * for the top of the row */ static gint calendar_top_y_for_row (GuiCalendar *calendar, gint row) { return (GUI_CALENDAR_GET_PRIVATE (calendar)->main_h - (CALENDAR_MARGIN + (6 - row) * calendar_row_height (calendar))); } /*------------------------------------------------------------------------------*/ /* row_from_y: returns the row 0-5 that the * y pixel of the xwindow is in */ static gint calendar_row_from_y (GuiCalendar *calendar, gint event_y) { gint r, row; gint height; gint y_top, y_bottom; height = calendar_row_height (calendar); row = -1; for (r = 0; r < 6; r++) { y_top = calendar_top_y_for_row (calendar, r); y_bottom = y_top + height; if (event_y >= y_top && event_y < y_bottom) { row = r; break; } } return row; } /*------------------------------------------------------------------------------*/ static void calendar_arrow_rectangle (GuiCalendar *calendar, guint arrow, GdkRectangle *rect) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); gboolean year_left; GtkBorder border; if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) { year_left = priv->year_before; } else { year_left = !priv->year_before; } rect->y = 3; rect->width = priv->arrow_width; rect->height = priv->header_h - 7; gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); switch (arrow) { case ARROW_MONTH_LEFT: if (year_left) { rect->x = (gtk_widget_get_allocated_width(widget) - border.left - border.right - (3 + 2*priv->arrow_width + priv->max_month_width)); } else { rect->x = 3; } break; case ARROW_MONTH_RIGHT: if (year_left) { rect->x = (gtk_widget_get_allocated_width(widget) - border.left - border.right - 3 - priv->arrow_width); } else { rect->x = (priv->arrow_width + priv->max_month_width); } break; case ARROW_YEAR_LEFT: if (year_left) { rect->x = 3; } else { rect->x = (gtk_widget_get_allocated_width(widget) - border.left - border.right - (3 + 2*priv->arrow_width + priv->max_year_width)); } break; case ARROW_YEAR_RIGHT: if (year_left) { rect->x = (priv->arrow_width + priv->max_year_width); } else { rect->x = (gtk_widget_get_allocated_width(widget) - border.left - border.right - 3 - priv->arrow_width); } break; } } /*------------------------------------------------------------------------------*/ static void calendar_day_rectangle (GuiCalendar *calendar, gint row, gint col, GdkRectangle *rect) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); rect->x = calendar_left_x_for_column (calendar, col); rect->y = calendar_top_y_for_row (calendar, row); rect->height = calendar_row_height (calendar); rect->width = priv->day_width; } /*------------------------------------------------------------------------------*/ static void calendar_set_month_prev (GuiCalendar *calendar) { gint month_len; if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) return; if (calendar->month == 0) { calendar->month = 11; calendar->year--; } else { calendar->month--; } month_len = utl_get_month_length(g_date_is_leap_year (calendar->year), calendar->month + 1); calendar_compute_days (calendar); g_signal_emit (calendar, gui_calendar_signals[PREV_MONTH_SIGNAL], 0); g_signal_emit (calendar, gui_calendar_signals[MONTH_CHANGED_SIGNAL], 0); if (month_len < calendar->selected_day) { calendar->selected_day = 0; gui_calendar_select_day (calendar, month_len); } else { if (calendar->selected_day < 0) calendar->selected_day = calendar->selected_day + 1 + utl_get_month_length(g_date_is_leap_year (calendar->year), calendar->month + 1); gui_calendar_select_day (calendar, calendar->selected_day); } gtk_widget_queue_draw (GTK_WIDGET (calendar)); } /*------------------------------------------------------------------------------*/ static void gui_calendar_finalize (GObject *object) { (* G_OBJECT_CLASS (gui_calendar_parent_class)->finalize) (object); } /*------------------------------------------------------------------------------*/ static void gui_calendar_dispose (GObject *object) { calendar_stop_spinning (GUI_CALENDAR (object)); G_OBJECT_CLASS (gui_calendar_parent_class)->dispose (object); } /*------------------------------------------------------------------------------*/ static void calendar_set_display_option (GuiCalendar *calendar, GuiCalendarDisplayOptions flag, gboolean setting) { GuiCalendarDisplayOptions flags; if (setting) { flags = calendar->display_flags | flag; } else { flags = calendar->display_flags & ~flag; } gui_calendar_set_display_options (calendar, flags); } /*------------------------------------------------------------------------------*/ static gboolean calendar_get_display_option (GuiCalendar *calendar, GuiCalendarDisplayOptions flag) { return (calendar->display_flags & flag) != 0; } /*------------------------------------------------------------------------------*/ static void gui_calendar_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GuiCalendar *calendar; calendar = GUI_CALENDAR (object); switch (prop_id) { case PROP_YEAR: gui_calendar_select_month (calendar, calendar->month, g_value_get_int (value)); break; case PROP_MONTH: gui_calendar_select_month (calendar, g_value_get_int (value), calendar->year); break; case PROP_DAY: gui_calendar_select_day (calendar, g_value_get_int (value)); break; case PROP_SHOW_HEADING: calendar_set_display_option (calendar, GUI_CALENDAR_SHOW_HEADING, g_value_get_boolean (value)); break; case PROP_SHOW_DAY_NAMES: calendar_set_display_option (calendar, GUI_CALENDAR_SHOW_DAY_NAMES, g_value_get_boolean (value)); break; case PROP_NO_MONTH_CHANGE: calendar_set_display_option (calendar, GUI_CALENDAR_NO_MONTH_CHANGE, g_value_get_boolean (value)); break; case PROP_SHOW_WEEK_NUMBERS: calendar_set_display_option (calendar, GUI_CALENDAR_SHOW_WEEK_NUMBERS, g_value_get_boolean (value)); break; case PROP_WEEK_START_MONDAY: calendar_set_display_option (calendar, GUI_CALENDAR_WEEK_START_MONDAY, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } /*------------------------------------------------------------------------------*/ static void gui_calendar_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GuiCalendar *calendar; calendar = GUI_CALENDAR (object); switch (prop_id) { case PROP_YEAR: g_value_set_int (value, calendar->year); break; case PROP_MONTH: g_value_set_int (value, calendar->month); break; case PROP_DAY: g_value_set_int (value, calendar->selected_day); break; case PROP_SHOW_HEADING: g_value_set_boolean (value, calendar_get_display_option (calendar, GUI_CALENDAR_SHOW_HEADING)); break; case PROP_SHOW_DAY_NAMES: g_value_set_boolean (value, calendar_get_display_option (calendar, GUI_CALENDAR_SHOW_DAY_NAMES)); break; case PROP_NO_MONTH_CHANGE: g_value_set_boolean (value, calendar_get_display_option (calendar, GUI_CALENDAR_NO_MONTH_CHANGE)); break; case PROP_SHOW_WEEK_NUMBERS: g_value_set_boolean (value, calendar_get_display_option (calendar, GUI_CALENDAR_SHOW_WEEK_NUMBERS)); break; case PROP_WEEK_START_MONDAY: g_value_set_boolean (value, calendar_get_display_option (calendar, GUI_CALENDAR_WEEK_START_MONDAY)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } /*------------------------------------------------------------------------------*/ static void calendar_realize_arrows (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkWindowAttr attributes; GdkRGBA color; gint attributes_mask; gint i; /* arrow windows */ if (! (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) && (calendar->display_flags & GUI_CALENDAR_SHOW_HEADING)) { attributes.wclass = GDK_INPUT_OUTPUT; attributes.window_type = GDK_WINDOW_CHILD; attributes.visual = gtk_widget_get_visual (widget); attributes.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; for (i = 0; i < 4; i++) { GdkRectangle rect; calendar_arrow_rectangle (calendar, i, &rect); attributes.x = rect.x; attributes.y = rect.y; attributes.width = rect.width; attributes.height = rect.height; priv->arrow_win[i] = gdk_window_new (priv->header_win, &attributes, attributes_mask); if (gtk_widget_is_sensitive (widget)) priv->arrow_state[i] = GTK_STATE_FLAG_NORMAL; else priv->arrow_state[i] = GTK_STATE_FLAG_INSENSITIVE; get_header_bg_color(widget, &color); gdk_window_set_background_rgba(priv->arrow_win[i], &color); gdk_window_show (priv->arrow_win[i]); gdk_window_set_user_data (priv->arrow_win[i], widget); } } else { for (i = 0; i < 4; i++) priv->arrow_win[i] = NULL; } } /*------------------------------------------------------------------------------*/ static void calendar_realize_header (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkWindowAttr attributes; GdkRGBA color; gint attributes_mask; /* header window */ if (calendar->display_flags & GUI_CALENDAR_SHOW_HEADING) { GtkBorder border; attributes.wclass = GDK_INPUT_OUTPUT; attributes.window_type = GDK_WINDOW_CHILD; attributes.visual = gtk_widget_get_visual (widget); attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); attributes.x = border.left; attributes.y = border.top; attributes.width = gtk_widget_get_allocated_width(widget) - 2 * attributes.x; attributes.height = priv->header_h - 2 * attributes.y; priv->header_win = gdk_window_new (gtk_widget_get_window(widget), &attributes, attributes_mask); get_header_bg_color(widget, &color); gdk_window_set_background_rgba (priv->header_win, &color); gdk_window_show (priv->header_win); gdk_window_set_user_data (priv->header_win, widget); } else { priv->header_win = NULL; } calendar_realize_arrows (calendar); } /*------------------------------------------------------------------------------*/ static void calendar_realize_day_names (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkWindowAttr attributes; gint attributes_mask; /* day names window */ if ( calendar->display_flags & GUI_CALENDAR_SHOW_DAY_NAMES) { GtkBorder border; attributes.wclass = GDK_INPUT_OUTPUT; attributes.window_type = GDK_WINDOW_CHILD; attributes.visual = gtk_widget_get_visual (widget); attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); attributes.x = (border.left + INNER_BORDER); attributes.y = priv->header_h + (border.top + INNER_BORDER); attributes.width = gtk_widget_get_allocated_width(widget) - border.left - border.right - 2 * INNER_BORDER; attributes.height = priv->day_name_h; priv->day_name_win = gdk_window_new (gtk_widget_get_window(widget), &attributes, attributes_mask); gdk_window_show (priv->day_name_win); gdk_window_set_user_data (priv->day_name_win, widget); } else { priv->day_name_win = NULL; } } /*------------------------------------------------------------------------------*/ static void calendar_realize_week_numbers (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkWindowAttr attributes; gint attributes_mask; /* week number window */ if (calendar->display_flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { GtkBorder border; attributes.wclass = GDK_INPUT_OUTPUT; attributes.window_type = GDK_WINDOW_CHILD; attributes.visual = gtk_widget_get_visual (widget); attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); attributes.x = border.left + INNER_BORDER; attributes.y = (priv->header_h + priv->day_name_h + (border.top + INNER_BORDER)); attributes.width = priv->week_width; attributes.height = priv->main_h; priv->week_win = gdk_window_new (gtk_widget_get_window(widget), &attributes, attributes_mask); gdk_window_show (priv->week_win); gdk_window_set_user_data (priv->week_win, widget); } else { priv->week_win = NULL; } } /*------------------------------------------------------------------------------*/ static void gui_calendar_realize (GtkWidget *widget) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); GdkWindowAttr attributes; GtkAllocation allocation; GdkWindow *window; GtkBorder border; gint attributes_mask; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation(widget, &allocation); attributes.x = allocation.x; attributes.y = allocation.y; attributes.width = allocation.width; attributes.height = allocation.height; attributes.wclass = GDK_INPUT_OUTPUT; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK |GDK_KEY_PRESS_MASK | GDK_SCROLL_MASK); attributes.visual = gtk_widget_get_visual (widget); attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window(widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gtk_widget_register_window (widget, window); /* header window */ calendar_realize_header (calendar); /* day names window */ calendar_realize_day_names (calendar); /* week number window */ calendar_realize_week_numbers (calendar); /* main window */ attributes.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); attributes.x = priv->week_width + (border.left + INNER_BORDER); attributes.y = (priv->header_h + priv->day_name_h + (border.top + INNER_BORDER)); attributes.width = (allocation.width - attributes.x - (border.right + INNER_BORDER)); attributes.height = priv->main_h; priv->main_win = gdk_window_new (gtk_widget_get_window(widget), &attributes, attributes_mask); gdk_window_show (priv->main_win); gdk_window_set_user_data (priv->main_win, widget); gdk_window_show (gtk_widget_get_window(widget)); gdk_window_set_user_data (gtk_widget_get_window(widget), widget); } /*------------------------------------------------------------------------------*/ static void gui_calendar_unrealize (GtkWidget *widget) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); gint i; if (priv->header_win) { for (i = 0; i < 4; i++) { if (priv->arrow_win[i]) { gdk_window_set_user_data (priv->arrow_win[i], NULL); gdk_window_destroy (priv->arrow_win[i]); priv->arrow_win[i] = NULL; } } gdk_window_set_user_data (priv->header_win, NULL); gdk_window_destroy (priv->header_win); priv->header_win = NULL; } if (priv->week_win) { gdk_window_set_user_data (priv->week_win, NULL); gdk_window_destroy (priv->week_win); priv->week_win = NULL; } if (priv->main_win) { gdk_window_set_user_data (priv->main_win, NULL); gdk_window_destroy (priv->main_win); priv->main_win = NULL; } if (priv->day_name_win) { gdk_window_set_user_data (priv->day_name_win, NULL); gdk_window_destroy (priv->day_name_win); priv->day_name_win = NULL; } if (GTK_WIDGET_CLASS (gui_calendar_parent_class)->unrealize) (* GTK_WIDGET_CLASS (gui_calendar_parent_class)->unrealize) (widget); } /*------------------------------------------------------------------------------*/ static void gui_calendar_size_request (GtkWidget *widget, GtkRequisition *requisition) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); PangoLayout *layout; PangoRectangle logical_rect; gint height; gint i; gint calendar_margin = CALENDAR_MARGIN; gint header_width, main_width; gint max_header_height = 0; gint focus_width; gint focus_padding; GtkBorder border; gtk_widget_style_get (GTK_WIDGET (widget), "focus-line-width", &focus_width, "focus-padding", &focus_padding, NULL); layout = gtk_widget_create_pango_layout (widget, NULL); /* calculate the requisition width for the widget */ /* header width */ if (calendar->display_flags & GUI_CALENDAR_SHOW_HEADING) { priv->max_month_width = 0; for (i = 0; i < 12; i++) { pango_layout_set_text (layout, default_monthname[i], -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); priv->max_month_width = MAX (priv->max_month_width, logical_rect.width + 8); max_header_height = MAX (max_header_height, logical_rect.height); } priv->max_year_width = 0; pango_layout_set_text (layout, "2000", -1); /* the widest year text */ pango_layout_get_pixel_extents (layout, NULL, &logical_rect); priv->max_year_width = MAX (priv->max_year_width, logical_rect.width + 8); max_header_height = MAX (max_header_height, logical_rect.height); } else { priv->max_month_width = 0; priv->max_year_width = 0; } if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) header_width = (priv->max_month_width + priv->max_year_width + 3 * 3); else header_width = (priv->max_month_width + priv->max_year_width + 4 * priv->arrow_width + 3 * 3); /* mainwindow labels width */ priv->max_day_char_width = 0; priv->max_day_char_ascent = 0; priv->max_day_char_descent = 0; priv->min_day_width = 0; for (i = 0; i < 9; i++) { gchar buffer[32]; g_snprintf (buffer, sizeof (buffer), "%d", i * 11); /* %d - calendar day digits */ pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); priv->min_day_width = MAX (priv->min_day_width, logical_rect.width); priv->max_day_char_ascent = MAX (priv->max_day_char_ascent, PANGO_ASCENT (logical_rect)); priv->max_day_char_descent = MAX (priv->max_day_char_descent, PANGO_DESCENT (logical_rect)); } /* We add one to max_day_char_width to be able to make the marked day "bold" */ priv->max_day_char_width = priv->min_day_width / 2 + 1; priv->max_label_char_ascent = 0; priv->max_label_char_descent = 0; if (calendar->display_flags & GUI_CALENDAR_SHOW_DAY_NAMES) for (i = 0; i < 7; i++) { pango_layout_set_text (layout, default_abbreviated_dayname[i], -1); pango_layout_line_get_pixel_extents (pango_layout_get_lines (layout)->data, NULL, &logical_rect); priv->min_day_width = MAX (priv->min_day_width, logical_rect.width); priv->max_label_char_ascent = MAX (priv->max_label_char_ascent, PANGO_ASCENT (logical_rect)); priv->max_label_char_descent = MAX (priv->max_label_char_descent, PANGO_DESCENT (logical_rect)); } priv->max_week_char_width = 0; if (calendar->display_flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) for (i = 0; i < 9; i++) { gchar buffer[32]; g_snprintf (buffer, sizeof (buffer), "%d", i * 11); /* %d - calendar week digits */ pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); priv->max_week_char_width = MAX (priv->max_week_char_width, logical_rect.width / 2); } main_width = (7 * (priv->min_day_width + (focus_padding + focus_width) * 2) + (DAY_XSEP * 6) + CALENDAR_MARGIN * 2 + (priv->max_week_char_width ? priv->max_week_char_width * 2 + (focus_padding + focus_width) * 2 + CALENDAR_XSEP * 2 : 0)); gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); requisition->width = MAX (header_width, main_width + INNER_BORDER * 2) + border.left + border.right; /* calculate the requisition height for the widget */ if (calendar->display_flags & GUI_CALENDAR_SHOW_HEADING) { priv->header_h = (max_header_height + CALENDAR_YSEP * 2); } else { priv->header_h = 0; } if (calendar->display_flags & GUI_CALENDAR_SHOW_DAY_NAMES) { priv->day_name_h = (priv->max_label_char_ascent + priv->max_label_char_descent + 2 * (focus_padding + focus_width) + calendar_margin); calendar_margin = CALENDAR_YSEP; } else { priv->day_name_h = 0; } priv->main_h = (CALENDAR_MARGIN + calendar_margin + 6 * (priv->max_day_char_ascent + priv->max_day_char_descent + 2 * (focus_padding + focus_width)) + DAY_YSEP * 5); height = (priv->header_h + priv->day_name_h + priv->main_h); requisition->height = height + border.top + border.bottom + 2 * INNER_BORDER; g_object_unref (layout); } static void gui_calendar_get_preferred_width (GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkRequisition requisition; gui_calendar_size_request (widget, &requisition); *minimal_width = *natural_width = requisition.width; } static void gui_calendar_get_preferred_height (GtkWidget *widget, gint *minimal_height, gint *natural_height) { GtkRequisition requisition; gui_calendar_size_request (widget, &requisition); *minimal_height = *natural_height = requisition.height; } /*------------------------------------------------------------------------------*/ static void gui_calendar_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); GtkBorder border; guint i; gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); gtk_widget_set_allocation(widget, allocation); if (calendar->display_flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { priv->day_width = (priv->min_day_width * ((allocation->width - border.left - border.right - 2 *INNER_BORDER - (CALENDAR_MARGIN * 2) - (DAY_XSEP * 6) - CALENDAR_XSEP * 2)) / (7 * priv->min_day_width + priv->max_week_char_width * 2)); priv->week_width = ((allocation->width - border.left - border.right - 2 *INNER_BORDER - (CALENDAR_MARGIN * 2) - (DAY_XSEP * 6) - CALENDAR_XSEP * 2 ) - priv->day_width * 7 + CALENDAR_MARGIN + CALENDAR_XSEP); } else { priv->day_width = (allocation->width - border.left - border.right - 2 *INNER_BORDER - (CALENDAR_MARGIN * 2) - (DAY_XSEP * 6))/7; priv->week_width = 0; } if (gtk_widget_get_realized (widget)) { gdk_window_move_resize (gtk_widget_get_window(widget), allocation->x, allocation->y, allocation->width, allocation->height); if (priv->header_win) gdk_window_move_resize (priv->header_win, border.left, border.top, allocation->width - border.left - border.right, priv->header_h); for (i = 0 ; i < 4 ; i++) { if (priv->arrow_win[i]) { GdkRectangle rect; calendar_arrow_rectangle (calendar, i, &rect); gdk_window_move_resize (priv->arrow_win[i], rect.x, rect.y, rect.width, rect.height); } } if (priv->day_name_win) gdk_window_move_resize (priv->day_name_win, border.left + INNER_BORDER, priv->header_h + (border.top + INNER_BORDER), allocation->width - border.left - border.right - 2 * INNER_BORDER, priv->day_name_h); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) { if (priv->week_win) gdk_window_move_resize (priv->week_win, border.left + INNER_BORDER, priv->header_h + priv->day_name_h + (border.top + INNER_BORDER), priv->week_width, priv->main_h); gdk_window_move_resize (priv->main_win, priv->week_width + (border.left + INNER_BORDER), priv->header_h + priv->day_name_h + (border.top + INNER_BORDER), allocation->width - priv->week_width - - border.left - border.right - 2 * INNER_BORDER, priv->main_h); } else { gdk_window_move_resize (priv->main_win, border.left + INNER_BORDER, priv->header_h + priv->day_name_h + (border.top + INNER_BORDER), allocation->width - priv->week_width - - border.left - border.right - 2 * INNER_BORDER, priv->main_h); if (priv->week_win) gdk_window_move_resize (priv->week_win, allocation->width - priv->week_width - (border.left + INNER_BORDER), priv->header_h + priv->day_name_h + (border.top + INNER_BORDER), priv->week_width, priv->main_h); } } } /*------------------------------------------------------------------------------*/ static void calendar_paint_header (GuiCalendar *calendar, cairo_t *cr) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); char buffer[255]; int x, y; gint header_width; gint max_month_width; gint max_year_width; PangoLayout *layout; PangoRectangle logical_rect; gboolean year_left; time_t tmp_time; struct tm *tm; gchar *str; GtkBorder border; if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) { year_left = priv->year_before; } else { year_left = !priv->year_before; } gtk_style_context_get_border(gtk_widget_get_style_context(widget), GTK_STATE_FLAG_NORMAL, &border); header_width = gtk_widget_get_allocated_width(widget) - border.left - border.right; max_month_width = priv->max_month_width; max_year_width = priv->max_year_width; tmp_time = 1; /* Jan 1 1970, 00:00:01 UTC */ tm = gmtime (&tmp_time); tm->tm_year = calendar->year - 1900; strftime (buffer, sizeof (buffer), "%Y", tm); /* year format */ str = g_locale_to_utf8 (buffer, -1, NULL, NULL, NULL); layout = gtk_widget_create_pango_layout (widget, str); g_free (str); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); /* draw title */ y = (priv->header_h - logical_rect.height) / 2; /* draw year and its arrows */ if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) { if (year_left) { x = 3 + (max_year_width - logical_rect.width)/2; } else { x = header_width - (3 + max_year_width - (max_year_width - logical_rect.width)/2); } } else { if (year_left) { x = 3 + priv->arrow_width + (max_year_width - logical_rect.width)/2; } else { x = header_width - (3 + priv->arrow_width + max_year_width - (max_year_width - logical_rect.width)/2); } } cairo_move_to (cr, x, y); pango_cairo_show_layout (cr, layout); /* draw month */ g_snprintf (buffer, sizeof (buffer), "%s", default_monthname[calendar->month]); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) { if (year_left) { x = header_width - (3 + max_month_width - (max_month_width - logical_rect.width)/2); } else { x = 3 + (max_month_width - logical_rect.width) / 2; } } else { if (year_left) { x = header_width - (3 + priv->arrow_width + max_month_width - (max_month_width - logical_rect.width)/2); } else { x = 3 + priv->arrow_width + (max_month_width - logical_rect.width)/2; } } cairo_move_to (cr, x, y); pango_cairo_show_layout (cr, layout); g_object_unref (layout); } /*------------------------------------------------------------------------------*/ static void calendar_paint_day_names (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); cairo_t *cr; char buffer[255]; int day,i; int day_width, cal_width; int day_wid_sep; PangoLayout *layout; PangoRectangle logical_rect; gint focus_padding; gint focus_width; cr = gdk_cairo_create (priv->day_name_win); gtk_widget_style_get (GTK_WIDGET (widget), "focus-line-width", &focus_width, "focus-padding", &focus_padding, NULL); day_width = priv->day_width; cal_width = gtk_widget_get_allocated_width(widget); day_wid_sep = day_width + DAY_XSEP; /* draw rectangles as inverted background for the labels */ gdk_cairo_set_source_rgba (cr, &calendar->header_bg_color); cairo_rectangle (cr, CALENDAR_MARGIN, CALENDAR_MARGIN, cal_width-CALENDAR_MARGIN * 2, priv->day_name_h - CALENDAR_MARGIN); cairo_fill (cr); if (calendar->display_flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { cairo_rectangle (cr, CALENDAR_MARGIN, priv->day_name_h - CALENDAR_YSEP, priv->week_width - CALENDAR_YSEP - CALENDAR_MARGIN, CALENDAR_YSEP); cairo_fill (cr); } /* write the labels */ layout = gtk_widget_create_pango_layout (widget, NULL); gdk_cairo_set_source_rgba (cr, &calendar->header_fg_color); for (i = 0; i < 7; i++) { if (gtk_widget_get_direction (GTK_WIDGET (calendar)) == GTK_TEXT_DIR_RTL) { day = 6 - i; } else { day = i; } day = (day + priv->week_start) % 7; g_snprintf (buffer, sizeof (buffer), "%s", default_abbreviated_dayname[day]); pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); cairo_move_to (cr, (CALENDAR_MARGIN + + (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR ? (priv->week_width + (priv->week_width ? CALENDAR_XSEP : 0)) : 0) + day_wid_sep * i + (day_width - logical_rect.width)/2), CALENDAR_MARGIN + focus_width + focus_padding + logical_rect.y); pango_cairo_show_layout (cr, layout); } g_object_unref (layout); cairo_destroy (cr); } /*------------------------------------------------------------------------------*/ static void calendar_paint_week_numbers (GuiCalendar *calendar) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); cairo_t *cr; guint row, week = 0, year; gint x_loc; char buffer[32]; gint y_loc, day_height; PangoLayout *layout; PangoRectangle logical_rect; gint focus_padding; gint focus_width; cr = gdk_cairo_create (priv->week_win); gtk_widget_style_get (GTK_WIDGET (widget), "focus-line-width", &focus_width, "focus-padding", &focus_padding, NULL); /* draw a rectangle as inverted background for the labels */ gdk_cairo_set_source_rgba (cr, &calendar->header_bg_color); if (priv->day_name_win) { cairo_rectangle (cr, CALENDAR_MARGIN, 0, priv->week_width - CALENDAR_MARGIN, priv->main_h - CALENDAR_MARGIN); } else { cairo_rectangle (cr, CALENDAR_MARGIN, CALENDAR_MARGIN, priv->week_width - CALENDAR_MARGIN, priv->main_h - 2 * CALENDAR_MARGIN); } cairo_fill (cr); /* write the labels */ layout = gtk_widget_create_pango_layout (widget, NULL); gdk_cairo_set_source_rgba (cr, &calendar->header_fg_color); /* week numbers */ day_height = calendar_row_height (calendar); for (row = 0; row < 6; row++) { gboolean result; year = calendar->year; if (calendar->day[row][6] < 15 && row > 3 && calendar->month == 11) year++; result = utl_week_of_year (&week, &year, ((calendar->day[row][6] < 15 && row > 3 ? 1 : 0) + calendar->month) % 12 + 1, calendar->day[row][6]); g_return_if_fail (result); g_snprintf (buffer, sizeof (buffer), "%d", week); /* %d - calendar week digits, %Id - for localized digits */ pango_layout_set_text (layout, buffer, -1); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); y_loc = calendar_top_y_for_row (calendar, row) + (day_height - logical_rect.height) / 2; x_loc = (priv->week_width - logical_rect.width - CALENDAR_XSEP - focus_padding - focus_width); cairo_move_to (cr, x_loc, y_loc); pango_cairo_show_layout (cr, layout); } g_object_unref (layout); cairo_destroy (cr); } /*------------------------------------------------------------------------------*/ static void calendar_invalidate_day_num (GuiCalendar *calendar, gint day) { gint r, c, row, col; row = -1; col = -1; for (r = 0; r < 6; r++) for (c = 0; c < 7; c++) if (calendar->day_month[r][c] == MONTH_CURRENT && calendar->day[r][c] == day) { row = r; col = c; } g_return_if_fail (row != -1); g_return_if_fail (col != -1); calendar_invalidate_day (calendar, row, col); } /*------------------------------------------------------------------------------*/ static void calendar_invalidate_day (GuiCalendar *calendar, gint row, gint col) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); if (priv->main_win) { GdkRectangle day_rect; calendar_day_rectangle (calendar, row, col, &day_rect); gdk_window_invalidate_rect (priv->main_win, &day_rect, FALSE); } } /*------------------------------------------------------------------------------*/ static void cal_draw_rounded_rectangle (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color, gint stroke) { gdk_cairo_set_source_rgba (cr, color); utl_draw_rounded_rectangle (cr, rect->x, rect->y, rect->width, rect->height, rect->height * 0.2, 1); utl_cairo_draw (cr, stroke); } /*------------------------------------------------------------------------------*/ static void cal_draw_left_arrow (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color) { gdk_cairo_set_source_rgba (cr, color); utl_draw_left_arrow (cr, rect->x + rect->width * 0.8, rect->y + rect->height * 0.5, rect->width * 0.13, rect->height * 0.55, 0.65); cairo_fill (cr); } /*------------------------------------------------------------------------------*/ static void cal_draw_ellipse (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color) { gdk_cairo_set_source_rgba (cr, color); cairo_save (cr); cairo_scale (cr, 2, 1); cairo_arc (cr, (rect->x + (rect->width * 0.5)) * 0.5, rect->y + rect->height * 0.5, rect->height * 0.5 - 3.0, 0.0, 2.0 * M_PI); cairo_fill (cr); cairo_restore (cr); } /*------------------------------------------------------------------------------*/ static void cal_draw_wave (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color) { gdk_cairo_set_source_rgba (cr, color); cairo_set_line_width (cr, rect->height * 0.7); cairo_move_to (cr, rect->x + rect->width * 0.2, rect->y + rect->height * 0.5); cairo_curve_to (cr, rect->x + rect->width * 0.5, rect->y + rect->height * 0.3, rect->x + rect->width * 0.5, rect->y + rect->height * 0.7, rect->x + rect->width * 0.8, rect->y + rect->height * 0.5); cairo_stroke (cr); } /*------------------------------------------------------------------------------*/ static void cal_draw_circle (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color) { gdk_cairo_set_source_rgba (cr, color); cairo_arc (cr, rect->x + rect->width * 0.5, rect->y + rect->height * 0.5, rect->height * 0.5 - 3.0, 0.0, 2.0 * M_PI); cairo_fill (cr); } /*------------------------------------------------------------------------------*/ static void cal_draw_freehand_circle (cairo_t *cr, GdkRectangle *rect, GdkRGBA *color) { gdouble dtop, dbottom, dleft, dright; gdouble dwidth, dheight; dheight = rect->height; dwidth = dheight * 2.0; dtop = rect->y; dbottom = rect->y + dheight; dleft = rect->x + (rect->width - dwidth) / 2.0; dright = dleft + dwidth; gdk_cairo_set_source_rgba (cr, color); cairo_move_to (cr, dleft + dwidth * 0.60, dtop); cairo_curve_to (cr, dleft + dwidth * 0.05, dtop, dleft, dbottom, dleft + dwidth * 0.50, dbottom); cairo_curve_to (cr, dright, dbottom, dright - dwidth * 0.05, dtop - dheight * 0.15, dleft + dwidth * 0.40, dtop + dheight * 0.20); cairo_line_to (cr, dleft + dwidth * 0.40, dtop + dheight * 0.25); cairo_curve_to (cr, dright - dwidth * 0.15, dtop - dheight * 0.05, dright - dwidth * 0.05, dbottom - dheight * 0.15, dleft + dwidth * 0.50, dbottom - dheight * 0.15); cairo_curve_to (cr, dleft + dwidth * 0.05, dbottom - dheight * 0.15, dleft + dwidth * 0.20, dtop, dleft + dwidth * 0.60, dtop + dheight * 0.05); cairo_close_path (cr); cairo_fill (cr); } /*------------------------------------------------------------------------------*/ static void cal_cairo_draw_cursor (cairo_t *cr, GdkRectangle *rect, gint thickness) { gint bias_x, bias_y, bias; bias = thickness % 2; bias_x = thickness >> 1; bias_y = bias_x + bias; cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE); cairo_move_to (cr, rect->x+bias, rect->y+bias_y-bias); cairo_line_to (cr, rect->x+rect->width-bias_x, rect->y+bias_y-bias); cairo_line_to (cr, rect->x+rect->width-bias_x, rect->y+rect->height-bias_y); cairo_line_to (cr, rect->x+bias_x+bias, rect->y+rect->height-bias_y); cairo_line_to (cr, rect->x+bias_x+bias, rect->y+bias_y-bias_y*bias); cairo_set_line_width (cr, thickness); cairo_stroke (cr); cairo_set_antialias (cr, CAIRO_ANTIALIAS_DEFAULT); } /*------------------------------------------------------------------------------*/ static void calendar_paint_day (GuiCalendar *calendar, cairo_t *cr, gint row, gint col) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkRGBA text_color; gchar buffer[32]; gint day; gint x_loc, y_loc; GdkRectangle day_rect; time_t secs; struct tm *tm; PangoLayout *layout; PangoRectangle logical_rect; g_return_if_fail (row < 6); g_return_if_fail (col < 7); day = calendar->day[row][col]; calendar_day_rectangle (calendar, row, col, &day_rect); if (calendar->mark_sign) { if (calendar->marked_date[day-1] && calendar->day_month[row][col] == MONTH_CURRENT) { g_snprintf (buffer, sizeof (buffer), "%lc%d", calendar->mark_sign, day); } else { g_snprintf (buffer, sizeof (buffer), "%d", day); } } else { g_snprintf (buffer, sizeof (buffer), "%d", day); } if (g_utf8_validate(buffer, -1, NULL) == FALSE) { g_snprintf (buffer, sizeof (buffer), "%d", day); } layout = gtk_widget_create_pango_layout (widget, buffer); pango_layout_get_pixel_extents (layout, NULL, &logical_rect); x_loc = day_rect.x + day_rect.width / 2 + priv->max_day_char_width; x_loc -= logical_rect.width; y_loc = day_rect.y + (day_rect.height - logical_rect.height) / 2; /* mark day note */ if (calendar->marked_date[day-1] && calendar->day_month[row][col] == MONTH_CURRENT) { cal_draw_rounded_rectangle (cr, &day_rect, &calendar->marked_date_color[day-1], 0); } /* mark event */ if (calendar->event_marked_date[day-1] && calendar->day_month[row][col] == MONTH_CURRENT) { if (calendar->event_marker_type == EVENT_MARKER_ELLIPSE) { cal_draw_ellipse (cr, &day_rect, &calendar->event_marker_color); } else if (calendar->event_marker_type == EVENT_MARKER_WAVE) { cal_draw_wave (cr, &day_rect, &calendar->event_marker_color); } else { cal_draw_circle (cr, &day_rect, &calendar->event_marker_color); } } /* mark birthday */ if (calendar->birthday_marked_date[day-1] && calendar->day_month[row][col] == MONTH_CURRENT) { gdk_cairo_set_source_rgba (cr, &calendar->birthday_marker_color); utl_draw_rounded_rectangle (cr, day_rect.x + day_rect.width - day_rect.height * 0.35, day_rect.y + (day_rect.height - day_rect.height * 0.7) * 0.5, day_rect.height * 0.25, day_rect.height * 0.7, 4, 1.0); utl_cairo_draw (cr, 0); } /* mark current day */ secs = time (NULL); tm = localtime (&secs); if (calendar->month == tm->tm_mon && calendar->year == 1900 + tm->tm_year && calendar->day[row][col] == tm->tm_mday && calendar->day_month[row][col] == MONTH_CURRENT) { if (calendar->today_marker_type == TODAY_MARKER_FREEHAND_CIRCLE) { cal_draw_freehand_circle (cr, &day_rect, &(calendar->today_marker_color)); } else { cal_draw_left_arrow (cr, &day_rect, &(calendar->today_marker_color)); } } if (calendar->day_month[row][col] == MONTH_PREV) { memcpy(&text_color, &calendar->pf_day_color, sizeof(GdkRGBA)); } else if (calendar->day_month[row][col] == MONTH_NEXT) { memcpy(&text_color, &calendar->pf_day_color, sizeof(GdkRGBA)); } else { if (calendar->selected_day == day && calendar->enable_cursor == TRUE) { gdk_cairo_set_source_rgba(cr, &calendar->selector_color); if (calendar->cursor_type == CURSOR_FRAME) { cal_cairo_draw_cursor (cr, &day_rect, calendar->frame_cursor_thickness); } else { gdk_cairo_rectangle (cr, &day_rect); cairo_fill (cr); } } memcpy(&text_color, &calendar->day_color, sizeof(GdkRGBA)); /* mark saturday and sunday */ if (((col == 5 || col == 6) && (priv->week_start == 1)) || ((!col || col == 6) && !priv->week_start)) { if (calendar->day_month[row][col] != MONTH_NEXT && calendar->day_month[row][col] != MONTH_PREV) { memcpy(&text_color, &calendar->weekend_color, sizeof(GdkRGBA)); } } if (calendar->enable_cursor == TRUE && calendar->cursor_type == CURSOR_BLOCK && calendar->selected_day == day && calendar->selector_color.alpha == 1.0) { gtk_style_context_get_color(gtk_widget_get_style_context(widget), gtk_widget_has_focus(widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE, &text_color); } } gdk_cairo_set_source_rgba (cr, &text_color); cairo_move_to (cr, x_loc, y_loc); pango_cairo_show_layout (cr, layout); if (calendar->marked_date[day-1] && calendar->day_month[row][col] == MONTH_CURRENT) { gdk_cairo_set_source_rgba (cr, &text_color); cairo_move_to (cr, x_loc - 1, y_loc); pango_cairo_show_layout (cr, layout); } if (gtk_widget_has_focus (widget) && calendar->focus_row == row && calendar->focus_col == col) { gtk_render_focus (gtk_widget_get_style_context(widget), cr, day_rect.x, day_rect.y, day_rect.width, day_rect.height); } g_object_unref (layout); } /*------------------------------------------------------------------------------*/ static void calendar_paint_main (GuiCalendar *calendar, cairo_t *cr) { gint row, col; for (col = 0; col < 7; col++) for (row = 0; row < 6; row++) calendar_paint_day (calendar, cr, row, col); } /*------------------------------------------------------------------------------*/ static void calendar_invalidate_arrow (GuiCalendar *calendar, guint arrow) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); GdkWindow *window; window = priv->arrow_win[arrow]; if (window) gdk_window_invalidate_rect (window, NULL, FALSE); } /*------------------------------------------------------------------------------*/ static void calendar_paint_arrow (GuiCalendar *calendar, cairo_t *cr, guint arrow) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); GdkWindow *window; window = priv->arrow_win[arrow]; if (window) { cairo_t *cr = gdk_cairo_create (window); gint width, height; gint state; GdkRGBA color; state = priv->arrow_state[arrow]; gtk_style_context_get (gtk_widget_get_style_context(widget), state, "background-color", &color, NULL); gdk_cairo_set_source_rgba(cr, &color); width = gdk_window_get_width(window); height = gdk_window_get_height(window); if (arrow == ARROW_MONTH_LEFT || arrow == ARROW_YEAR_LEFT) gtk_render_arrow (gtk_widget_get_style_context(widget), cr, G_PI * 3 / 2, width/2 - 3, height/2 - 4, 8); else gtk_render_arrow (gtk_widget_get_style_context(widget), cr, G_PI / 2, width/2 - 3, height/2 - 4, 8); cairo_paint (cr); cairo_destroy (cr); } } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_draw (GtkWidget *widget, cairo_t *cr) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); GdkRGBA *color; int i; if (calendar->display_flags & GUI_CALENDAR_WEEK_START_MONDAY) { priv->week_start = 1; /* monday */ } else { priv->week_start = 0; /* sunday */ } calendar_compute_days(calendar); if (priv->main_win && gtk_cairo_should_draw_window(cr, priv->main_win)) { cairo_save(cr); gtk_cairo_transform_to_window(cr, widget, priv->main_win); color = &calendar->background_color; cairo_set_source_rgb(cr, color->red, color->green, color->blue); cairo_rectangle(cr, 0, 0, gtk_widget_get_allocated_width(widget), gtk_widget_get_allocated_height(widget)); cairo_fill(cr); calendar_paint_main(calendar, cr); cairo_restore(cr); } if (priv->header_win && gtk_cairo_should_draw_window(cr, priv->header_win)) { cairo_save(cr); gtk_cairo_transform_to_window(cr, widget, priv->header_win); calendar_paint_header(calendar, cr); cairo_restore(cr); } for (i = 0; i < 4; i++) if (priv->arrow_win[i] && gtk_cairo_should_draw_window(cr, priv->arrow_win[i])) { cairo_save(cr); gtk_cairo_transform_to_window(cr, widget, priv->arrow_win[i]); calendar_paint_arrow(calendar, cr, i); cairo_restore(cr); } if (priv->day_name_win && gtk_cairo_should_draw_window(cr, priv->day_name_win)) { cairo_save(cr); gtk_cairo_transform_to_window(cr, widget, priv->day_name_win); calendar_paint_day_names(calendar); cairo_restore(cr); } if (priv->week_win && gtk_cairo_should_draw_window(cr, priv->week_win)) { cairo_save(cr); gtk_cairo_transform_to_window(cr, widget, priv->week_win); calendar_paint_week_numbers(calendar); cairo_restore(cr); } return FALSE; } /*------------------------------------------------------------------------------*/ static void calendar_arrow_action (GuiCalendar *calendar, guint arrow) { switch (arrow) { case ARROW_YEAR_LEFT: calendar_set_year_prev (calendar); break; case ARROW_YEAR_RIGHT: calendar_set_year_next (calendar); break; case ARROW_MONTH_LEFT: calendar_set_month_prev (calendar); break; case ARROW_MONTH_RIGHT: calendar_set_month_next (calendar); break; default: ; /* do nothing */ } } /*------------------------------------------------------------------------------*/ static gboolean calendar_timer (gpointer data) { GuiCalendar *calendar = data; GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); gboolean retval = FALSE; if (priv->timer) { calendar_arrow_action (calendar, priv->click_child); if (priv->need_timer) { GtkSettings *settings; guint timeout; settings = gtk_widget_get_settings (GTK_WIDGET (calendar)); g_object_get (settings, "gtk-timeout-repeat", &timeout, NULL); priv->need_timer = FALSE; priv->timer = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, timeout * SCROLL_DELAY_FACTOR, (GSourceFunc) calendar_timer, (gpointer) calendar, NULL); } else retval = TRUE; } return retval; } /*------------------------------------------------------------------------------*/ static void calendar_start_spinning (GuiCalendar *calendar, gint click_child) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); priv->click_child = click_child; if (!priv->timer) { GtkSettings *settings; guint timeout; settings = gtk_widget_get_settings (GTK_WIDGET (calendar)); g_object_get (settings, "gtk-timeout-initial", &timeout, NULL); priv->need_timer = TRUE; priv->timer = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, timeout, (GSourceFunc) calendar_timer, (gpointer) calendar, NULL); } } /*------------------------------------------------------------------------------*/ static void calendar_stop_spinning (GuiCalendar *calendar) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); if (priv->timer) { g_source_remove (priv->timer); priv->timer = 0; priv->need_timer = FALSE; } } /*------------------------------------------------------------------------------*/ static void calendar_main_button_press (GuiCalendar *calendar, GdkEventButton *event) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); gint x, y; gint row, col; gint day_month; gint day; x = (gint) (event->x); y = (gint) (event->y); row = calendar_row_from_y (calendar, y); col = calendar_column_from_x (calendar, x); /* If row or column isn't found, just return. */ if (row == -1 || col == -1) return; day_month = calendar->day_month[row][col]; if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) { day = calendar->day[row][col]; if (day_month == MONTH_PREV) calendar_set_month_prev (calendar); else if (day_month == MONTH_NEXT) calendar_set_month_next (calendar); if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); if (event->button == 1) { priv->in_drag = 0; /* TODO: drag enable */ priv->drag_start_x = x; priv->drag_start_y = y; } if (calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) { if (day_month != MONTH_PREV && day_month != MONTH_NEXT) { calendar_select_and_focus_day (calendar, day); } } else { calendar_select_and_focus_day (calendar, day); } } } else if (event->type == GDK_2BUTTON_PRESS) { priv->in_drag = 0; if (day_month == MONTH_CURRENT && event->button == 1) g_signal_emit (calendar, gui_calendar_signals[DAY_SELECTED_DOUBLE_CLICK_SIGNAL], 0); } } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_button_press (GtkWidget *widget, GdkEventButton *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); gint arrow = -1; if (event->window == priv->main_win) calendar_main_button_press (calendar, event); if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); for (arrow = ARROW_YEAR_LEFT; arrow <= ARROW_MONTH_RIGHT; arrow++) { if (event->window == priv->arrow_win[arrow]) { /* only call the action on single click, not double */ if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) calendar_start_spinning (calendar, arrow); calendar_arrow_action (calendar, arrow); } return TRUE; } } if (event->type == GDK_BUTTON_PRESS) { if (event->button == 1) return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_button_release (GtkWidget *widget, GdkEventButton *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); if (event->button == 1) { calendar_stop_spinning (calendar); if (priv->in_drag) priv->in_drag = 0; } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_motion_notify (GtkWidget *widget, GdkEventMotion *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); gint event_x, event_y; gint row, col; gint old_row, old_col; event_x = (gint) (event->x); event_y = (gint) (event->y); if (event->window == priv->main_win) { if (priv->in_drag) { if (gtk_drag_check_threshold (widget, priv->drag_start_x, priv->drag_start_y, event->x, event->y)) { GdkDragContext *context; GtkTargetList *target_list = gtk_target_list_new (NULL, 0); gtk_target_list_add_text_targets (target_list, 0); context = gtk_drag_begin_with_coordinates (widget, target_list, GDK_ACTION_COPY, 1, (GdkEvent *)event, event->x, event->y); priv->in_drag = 0; gtk_target_list_unref (target_list); gtk_drag_set_icon_default (context); } } else { row = calendar_row_from_y (calendar, event_y); col = calendar_column_from_x (calendar, event_x); if (row != calendar->highlight_row || calendar->highlight_col != col) { old_row = calendar->highlight_row; old_col = calendar->highlight_col; if (old_row > -1 && old_col > -1) { calendar->highlight_row = -1; calendar->highlight_col = -1; calendar_invalidate_day (calendar, old_row, old_col); } calendar->highlight_row = row; calendar->highlight_col = col; if (row > -1 && col > -1) calendar_invalidate_day (calendar, row, col); } } } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_enter_notify (GtkWidget *widget, GdkEventCrossing *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); if (event->window == priv->arrow_win[ARROW_MONTH_LEFT]) { priv->arrow_state[ARROW_MONTH_LEFT] = GTK_STATE_FLAG_PRELIGHT; calendar_invalidate_arrow (calendar, ARROW_MONTH_LEFT); } if (event->window == priv->arrow_win[ARROW_MONTH_RIGHT]) { priv->arrow_state[ARROW_MONTH_RIGHT] = GTK_STATE_FLAG_PRELIGHT; calendar_invalidate_arrow (calendar, ARROW_MONTH_RIGHT); } if (event->window == priv->arrow_win[ARROW_YEAR_LEFT]) { priv->arrow_state[ARROW_YEAR_LEFT] = GTK_STATE_FLAG_PRELIGHT; calendar_invalidate_arrow (calendar, ARROW_YEAR_LEFT); } if (event->window == priv->arrow_win[ARROW_YEAR_RIGHT]) { priv->arrow_state[ARROW_YEAR_RIGHT] = GTK_STATE_FLAG_PRELIGHT; calendar_invalidate_arrow (calendar, ARROW_YEAR_RIGHT); } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_leave_notify (GtkWidget *widget, GdkEventCrossing *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); gint row; gint col; if (event->window == priv->main_win) { row = calendar->highlight_row; col = calendar->highlight_col; calendar->highlight_row = -1; calendar->highlight_col = -1; if (row > -1 && col > -1) calendar_invalidate_day (calendar, row, col); } if (event->window == priv->arrow_win[ARROW_MONTH_LEFT]) { priv->arrow_state[ARROW_MONTH_LEFT] = GTK_STATE_FLAG_NORMAL; calendar_invalidate_arrow (calendar, ARROW_MONTH_LEFT); } if (event->window == priv->arrow_win[ARROW_MONTH_RIGHT]) { priv->arrow_state[ARROW_MONTH_RIGHT] = GTK_STATE_FLAG_NORMAL; calendar_invalidate_arrow (calendar, ARROW_MONTH_RIGHT); } if (event->window == priv->arrow_win[ARROW_YEAR_LEFT]) { priv->arrow_state[ARROW_YEAR_LEFT] = GTK_STATE_FLAG_NORMAL; calendar_invalidate_arrow (calendar, ARROW_YEAR_LEFT); } if (event->window == priv->arrow_win[ARROW_YEAR_RIGHT]) { priv->arrow_state[ARROW_YEAR_RIGHT] = GTK_STATE_FLAG_NORMAL; calendar_invalidate_arrow (calendar, ARROW_YEAR_RIGHT); } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_scroll (GtkWidget *widget, GdkEventScroll *event) { GuiCalendar *calendar = GUI_CALENDAR (widget); if (event->direction == GDK_SCROLL_UP) { if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); calendar_set_month_prev (calendar); } else if (event->direction == GDK_SCROLL_DOWN) { if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); calendar_set_month_next (calendar); } else return FALSE; return TRUE; } /*------------------------------------------------------------------------------*/ static void move_focus (GuiCalendar *calendar, gint direction) { GtkTextDirection text_dir = gtk_widget_get_direction (GTK_WIDGET (calendar)); if (calendar->enable_cursor == FALSE) { return; } if ((text_dir == GTK_TEXT_DIR_LTR && direction == -1) || (text_dir == GTK_TEXT_DIR_RTL && direction == 1)) { if (calendar->focus_col > 0) calendar->focus_col--; else if (calendar->focus_row > 0) { calendar->focus_col = 6; calendar->focus_row--; } if (calendar->focus_col < 0) calendar->focus_col = 6; if (calendar->focus_row < 0) calendar->focus_row = 5; } else { if (calendar->focus_col < 6) calendar->focus_col++; else if (calendar->focus_row < 5) { calendar->focus_col = 0; calendar->focus_row++; } if (calendar->focus_col < 0) calendar->focus_col = 0; if (calendar->focus_row < 0) calendar->focus_row = 0; } } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_key_press (GtkWidget *widget, GdkEventKey *event) { GuiCalendar *calendar; gint return_val; gint old_focus_row; gint old_focus_col; gint row, col, day; calendar = GUI_CALENDAR (widget); return_val = FALSE; if (calendar->enable_cursor == FALSE) { return return_val; } old_focus_row = calendar->focus_row; old_focus_col = calendar->focus_col; switch (event->keyval) { case GDK_KEY_KP_Left: case GDK_KEY_Left: return_val = TRUE; if (event->state & GDK_CONTROL_MASK) calendar_set_month_prev (calendar); else { move_focus (calendar, -1); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Right: case GDK_KEY_Right: return_val = TRUE; if (event->state & GDK_CONTROL_MASK) calendar_set_month_next (calendar); else { move_focus (calendar, 1); calendar_invalidate_day (calendar, old_focus_row, old_focus_col); calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Up: case GDK_KEY_Up: return_val = TRUE; if (event->state & GDK_CONTROL_MASK) calendar_set_year_prev (calendar); else { if (calendar->focus_row > 0) calendar->focus_row--; if (calendar->focus_row < 0) calendar->focus_row = 5; if (calendar->focus_col < 0) calendar->focus_col = 6; calendar_invalidate_day (calendar, old_focus_row, old_focus_col); calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Down: case GDK_KEY_Down: return_val = TRUE; if (event->state & GDK_CONTROL_MASK) calendar_set_year_next (calendar); else { if (calendar->focus_row < 5) calendar->focus_row++; if (calendar->focus_col < 0) calendar->focus_col = 0; calendar_invalidate_day (calendar, old_focus_row, old_focus_col); calendar_invalidate_day (calendar, calendar->focus_row, calendar->focus_col); } break; case GDK_KEY_KP_Space: case GDK_KEY_space: row = calendar->focus_row; col = calendar->focus_col; if (row > -1 && col > -1) { return_val = TRUE; day = calendar->day[row][col]; if (calendar->day_month[row][col] == MONTH_PREV) calendar_set_month_prev (calendar); else if (calendar->day_month[row][col] == MONTH_NEXT) calendar_set_month_next (calendar); calendar_select_and_focus_day (calendar, day); } } return return_val; } /*------------------------------------------------------------------------------*/ static void gui_calendar_style_set (GtkWidget *widget, GtkStyle *previous_style) { } /*------------------------------------------------------------------------------*/ static void gui_calendar_state_changed (GtkWidget *widget, GtkStateType previous_state) { GuiCalendar *calendar = GUI_CALENDAR (widget); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); int i; if (!gtk_widget_is_sensitive (widget)) { priv->in_drag = 0; calendar_stop_spinning (calendar); } for (i = 0; i < 4; i++) if (gtk_widget_is_sensitive (widget)) priv->arrow_state[i] = GTK_STATE_FLAG_NORMAL; else priv->arrow_state[i] = GTK_STATE_FLAG_INSENSITIVE; } /*------------------------------------------------------------------------------*/ static void gui_calendar_grab_notify (GtkWidget *widget, gboolean was_grabbed) { if (!was_grabbed) calendar_stop_spinning (GUI_CALENDAR (widget)); } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_focus_out (GtkWidget *widget, GdkEventFocus *event) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); gtk_widget_queue_draw (widget); calendar_stop_spinning (GUI_CALENDAR (widget)); priv->in_drag = 0; return FALSE; } /*------------------------------------------------------------------------------*/ static void gui_calendar_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time) { GuiCalendar *calendar = GUI_CALENDAR (widget); GDate *date; gchar str[128]; gsize len; date = g_date_new_dmy (calendar->selected_day, calendar->month + 1, calendar->year); len = g_date_strftime (str, 127, "%x", date); gtk_selection_data_set_text (selection_data, str, len); g_date_free (date); } /*------------------------------------------------------------------------------*/ /* Get/set whether drag_motion requested the drag data and * drag_data_received should thus not actually insert the data, * since the data doesn't result from a drop. */ static void set_status_pending (GdkDragContext *context, GdkDragAction suggested_action) { g_object_set_data (G_OBJECT (context), "gtk-calendar-status-pending", GINT_TO_POINTER (suggested_action)); } /*------------------------------------------------------------------------------*/ static GdkDragAction get_status_pending (GdkDragContext *context) { return GPOINTER_TO_INT (g_object_get_data (G_OBJECT (context), "gtk-calendar-status-pending")); } /*------------------------------------------------------------------------------*/ static void gui_calendar_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); priv->drag_highlight = 0; gtk_drag_unhighlight (widget); } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (widget); GdkAtom target; if (!priv->drag_highlight) { priv->drag_highlight = 1; gtk_drag_highlight (widget); } target = gtk_drag_dest_find_target (widget, context, NULL); if (target == GDK_NONE || gdk_drag_context_get_suggested_action(context) == GDK_ACTION_DEFAULT) gdk_drag_status (context, GDK_ACTION_DEFAULT, time); else { set_status_pending (context, gdk_drag_context_get_suggested_action(context)); gtk_drag_get_data (widget, context, target, time); } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean gui_calendar_drag_drop (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time) { GdkAtom target; target = gtk_drag_dest_find_target (widget, context, NULL); if (target != GDK_NONE) { gtk_drag_get_data (widget, context, target, time); return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ static void gui_calendar_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time) { GuiCalendar *calendar = GUI_CALENDAR (widget); guint day, month, year; gchar *str; GDate *date; GdkDragAction suggested_action; suggested_action = get_status_pending (context); if (suggested_action) { set_status_pending (context, 0); /* We are getting this data due to a request in drag_motion, * rather than due to a request in drag_drop, so we are just * supposed to call drag_status, not actually paste in the * data. */ str = (gchar *) gtk_selection_data_get_text (selection_data); if (str) { date = g_date_new (); g_date_set_parse (date, str); if (!g_date_valid (date)) suggested_action = 0; g_date_free (date); g_free (str); } else suggested_action = 0; gdk_drag_status (context, suggested_action, time); return; } date = g_date_new (); str = (gchar *) gtk_selection_data_get_text (selection_data); if (str) { g_date_set_parse (date, str); g_free (str); } if (!g_date_valid (date)) { g_warning ("Received invalid date data\n"); g_date_free (date); gtk_drag_finish (context, FALSE, FALSE, time); return; } day = g_date_get_day (date); month = g_date_get_month (date); year = g_date_get_year (date); g_date_free (date); gtk_drag_finish (context, TRUE, FALSE, time); g_object_freeze_notify (G_OBJECT (calendar)); if (!(calendar->display_flags & GUI_CALENDAR_NO_MONTH_CHANGE) && (calendar->display_flags & GUI_CALENDAR_SHOW_HEADING)) gui_calendar_select_month (calendar, month - 1, year); gui_calendar_select_day (calendar, day); g_object_thaw_notify (G_OBJECT (calendar)); } /*------------------------------------------------------------------------------*/ /* Public API */ /*------------------------------------------------------------------------------*/ GtkWidget* gui_calendar_new (void) { return g_object_new (GUI_TYPE_CALENDAR, NULL); } /*------------------------------------------------------------------------------*/ GuiCalendarDisplayOptions gui_calendar_get_display_options (GuiCalendar *calendar) { g_return_val_if_fail (GUI_IS_CALENDAR (calendar), 0); return calendar->display_flags; } /*------------------------------------------------------------------------------*/ void gui_calendar_set_display_options (GuiCalendar *calendar, GuiCalendarDisplayOptions flags) { GtkWidget *widget = GTK_WIDGET (calendar); GuiCalendarPrivate *priv = GUI_CALENDAR_GET_PRIVATE (calendar); gint resize = 0; gint i; GuiCalendarDisplayOptions old_flags; g_return_if_fail (GUI_IS_CALENDAR (calendar)); old_flags = calendar->display_flags; if (gtk_widget_get_realized (widget)) { if ((flags ^ calendar->display_flags) & GUI_CALENDAR_NO_MONTH_CHANGE) { resize ++; if (! (flags & GUI_CALENDAR_NO_MONTH_CHANGE) && (priv->header_win)) { calendar->display_flags &= ~GUI_CALENDAR_NO_MONTH_CHANGE; calendar_realize_arrows (calendar); } else { for (i = 0; i < 4; i++) { if (priv->arrow_win[i]) { gdk_window_set_user_data (priv->arrow_win[i], NULL); gdk_window_destroy (priv->arrow_win[i]); priv->arrow_win[i] = NULL; } } } } if ((flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_HEADING) { resize++; if (flags & GUI_CALENDAR_SHOW_HEADING) { calendar->display_flags |= GUI_CALENDAR_SHOW_HEADING; calendar_realize_header (calendar); } else { for (i = 0; i < 4; i++) { if (priv->arrow_win[i]) { gdk_window_set_user_data (priv->arrow_win[i], NULL); gdk_window_destroy (priv->arrow_win[i]); priv->arrow_win[i] = NULL; } } gdk_window_set_user_data (priv->header_win, NULL); gdk_window_destroy (priv->header_win); priv->header_win = NULL; } } if ((flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_DAY_NAMES) { resize++; if (flags & GUI_CALENDAR_SHOW_DAY_NAMES) { calendar->display_flags |= GUI_CALENDAR_SHOW_DAY_NAMES; calendar_realize_day_names (calendar); } else { gdk_window_set_user_data (priv->day_name_win, NULL); gdk_window_destroy (priv->day_name_win); priv->day_name_win = NULL; } } if ((flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { resize++; if (flags & GUI_CALENDAR_SHOW_WEEK_NUMBERS) { calendar->display_flags |= GUI_CALENDAR_SHOW_WEEK_NUMBERS; calendar_realize_week_numbers (calendar); } else { gdk_window_set_user_data (priv->week_win, NULL); gdk_window_destroy (priv->week_win); priv->week_win = NULL; } } calendar->display_flags = flags; if (resize) gtk_widget_queue_resize (GTK_WIDGET (calendar)); } else calendar->display_flags = flags; g_object_freeze_notify (G_OBJECT (calendar)); if ((old_flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_HEADING) g_object_notify (G_OBJECT (calendar), "show-heading"); if ((old_flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_DAY_NAMES) g_object_notify (G_OBJECT (calendar), "show-day-names"); if ((old_flags ^ calendar->display_flags) & GUI_CALENDAR_NO_MONTH_CHANGE) g_object_notify (G_OBJECT (calendar), "no-month-change"); if ((old_flags ^ calendar->display_flags) & GUI_CALENDAR_SHOW_WEEK_NUMBERS) g_object_notify (G_OBJECT (calendar), "show-week-numbers"); if ((old_flags ^ calendar->display_flags) & GUI_CALENDAR_WEEK_START_MONDAY) g_object_notify (G_OBJECT (calendar), "week-start-monday"); g_object_thaw_notify (G_OBJECT (calendar)); } /*------------------------------------------------------------------------------*/ gboolean gui_calendar_select_month (GuiCalendar *calendar, guint month, guint year) { g_return_val_if_fail (GUI_IS_CALENDAR (calendar), FALSE); g_return_val_if_fail (month <= 11, FALSE); calendar->month = month; calendar->year = year; calendar_compute_days (calendar); gtk_widget_queue_draw (GTK_WIDGET (calendar)); g_object_freeze_notify (G_OBJECT (calendar)); g_object_notify (G_OBJECT (calendar), "month"); g_object_notify (G_OBJECT (calendar), "year"); g_object_thaw_notify (G_OBJECT (calendar)); g_signal_emit (calendar, gui_calendar_signals[MONTH_CHANGED_SIGNAL], 0); return TRUE; } /*------------------------------------------------------------------------------*/ void gui_calendar_select_day (GuiCalendar *calendar, guint day) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); g_return_if_fail (day <= 31); /* deselect the old day */ if (calendar->selected_day > 0) { gint selected_day; selected_day = calendar->selected_day; calendar->selected_day = 0; if (gtk_widget_is_drawable (GTK_WIDGET (calendar))) calendar_invalidate_day_num (calendar, selected_day); } calendar->selected_day = day; /* select the new day */ if (day != 0) { if (gtk_widget_is_drawable (GTK_WIDGET (calendar))) calendar_invalidate_day_num (calendar, day); } g_object_notify (G_OBJECT (calendar), "day"); g_signal_emit (calendar, gui_calendar_signals[DAY_SELECTED_SIGNAL], 0); } /*------------------------------------------------------------------------------*/ void gui_calendar_clear_marks (GuiCalendar *calendar, gint mark_type) { guint day; g_return_if_fail (GUI_IS_CALENDAR (calendar)); switch (mark_type) { case DAY_NOTE_MARK: for (day = 0; day < 31; day++) { calendar->marked_date[day] = FALSE; } calendar->num_marked_dates = 0; break; case EVENT_MARK: for (day = 0; day < 31; day++) { calendar->event_marked_date[day] = FALSE; } calendar->event_num_marked_dates = 0; break; case BIRTHDAY_MARK: for (day = 0; day < 31; day++) { calendar->birthday_marked_date[day] = FALSE; } calendar->birthday_num_marked_dates = 0; break; } gtk_widget_queue_draw (GTK_WIDGET (calendar)); } /*------------------------------------------------------------------------------*/ gboolean gui_calendar_mark_day (GuiCalendar *calendar, guint day, gint mark_type) { g_return_val_if_fail (GUI_IS_CALENDAR (calendar), FALSE); switch (mark_type) { case DAY_NOTE_MARK: if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == FALSE) { calendar->marked_date[day - 1] = TRUE; GtkWidget *widget = GTK_WIDGET (calendar); get_background_color(widget, &calendar->marked_date_color[day - 1]); calendar->num_marked_dates++; calendar_invalidate_day_num (calendar, day); } break; case EVENT_MARK: if (day >= 1 && day <= 31 && calendar->event_marked_date[day-1] == FALSE) { calendar->event_marked_date[day - 1] = TRUE; calendar->event_num_marked_dates++; calendar_invalidate_day_num (calendar, day); } break; case BIRTHDAY_MARK: if (day >= 1 && day <= 31 && calendar->birthday_marked_date[day-1] == FALSE) { calendar->birthday_marked_date[day - 1] = TRUE; calendar->birthday_num_marked_dates++; calendar_invalidate_day_num (calendar, day); } break; } return TRUE; } /*------------------------------------------------------------------------------*/ gboolean gui_calendar_unmark_day (GuiCalendar *calendar, guint day, gint mark_type) { g_return_val_if_fail (GUI_IS_CALENDAR (calendar), FALSE); switch (mark_type) { case DAY_NOTE_MARK: if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == TRUE) { calendar->marked_date[day - 1] = FALSE; GtkWidget *widget = GTK_WIDGET (calendar); get_background_color(widget, &calendar->marked_date_color[day - 1]); calendar->num_marked_dates--; calendar_invalidate_day_num (calendar, day); } break; case EVENT_MARK: if (day >= 1 && day <= 31 && calendar->event_marked_date[day-1] == TRUE) { calendar->event_marked_date[day - 1] = FALSE; calendar->event_num_marked_dates--; calendar_invalidate_day_num (calendar, day); } break; case BIRTHDAY_MARK: if (day >= 1 && day <= 31 && calendar->birthday_marked_date[day-1] == TRUE) { calendar->birthday_marked_date[day - 1] = FALSE; calendar->birthday_num_marked_dates--; calendar_invalidate_day_num (calendar, day); } break; } return TRUE; } /*------------------------------------------------------------------------------*/ gboolean gui_calendar_set_day_color (GuiCalendar *calendar, guint day, gchar *color_str) { g_return_val_if_fail (GUI_IS_CALENDAR (calendar), FALSE); if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == FALSE) { calendar->marked_date[day - 1] = TRUE; GtkWidget *widget = GTK_WIDGET (calendar); get_background_color(widget, &calendar->marked_date_color[day - 1]); if (color_str != NULL) { gdk_rgba_parse(&calendar->marked_date_color[day - 1], color_str); } calendar->num_marked_dates++; calendar_invalidate_day_num (calendar, day); } return TRUE; } /*------------------------------------------------------------------------------*/ void gui_calendar_get_date (GuiCalendar *calendar, guint *year, guint *month, guint *day) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); if (year) *year = calendar->year; if (month) *month = calendar->month; if (day) *day = calendar->selected_day; } /*------------------------------------------------------------------------------*/ void gui_calendar_get_gdate (GuiCalendar *calendar, GDate *cdate) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); g_date_set_dmy (cdate, calendar->selected_day, calendar->month + 1, calendar->year); } /*------------------------------------------------------------------------------*/ void gui_calendar_set_color (GuiCalendar *calendar, const gchar *color, gint alpha_value, gint color_type) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); switch (color_type) { case BACKGROUND_COLOR: gdk_rgba_parse(&calendar->background_color, color); break; case HEADER_BG_COLOR: gdk_rgba_parse(&calendar->header_bg_color, color); break; case HEADER_FG_COLOR: gdk_rgba_parse(&calendar->header_fg_color, color); break; case WEEKEND_COLOR: gdk_rgba_parse(&calendar->weekend_color, color); break; case SELECTOR_COLOR: gdk_rgba_parse(&calendar->selector_color, color); calendar->selector_color.alpha = (gdouble) alpha_value / 65535.0; break; case EVENT_MARKER_COLOR: gdk_rgba_parse(&calendar->event_marker_color, color); break; case TODAY_MARKER_COLOR: gdk_rgba_parse(&calendar->today_marker_color, color); calendar->today_marker_color.alpha = (gdouble) alpha_value / 65535.0; break; case BIRTHDAY_MARKER_COLOR: gdk_rgba_parse(&calendar->birthday_marker_color, color); break; case DAY_COLOR: gdk_rgba_parse(&calendar->day_color, color); break; case PF_DAY_COLOR: gdk_rgba_parse(&calendar->pf_day_color, color); break; } } /*------------------------------------------------------------------------------*/ void gui_calendar_set_marker (GuiCalendar *calendar, gint marker_type, gint marker) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); switch (marker) { case TODAY_MARKER: calendar->today_marker_type = marker_type; break; case EVENT_MARKER: calendar->event_marker_type = marker_type; break; } } /*------------------------------------------------------------------------------*/ void gui_calendar_set_day_note_marker_symbol (GuiCalendar *calendar, gchar *symbol) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); calendar->mark_sign = g_utf8_get_char (symbol); } /*------------------------------------------------------------------------------*/ void gui_calendar_enable_cursor (GuiCalendar *calendar, gboolean state) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); calendar->enable_cursor = state; } /*------------------------------------------------------------------------------*/ void gui_calendar_set_cursor_type (GuiCalendar *calendar, gint cursor_type) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); calendar->cursor_type = cursor_type; } /*------------------------------------------------------------------------------*/ void gui_calendar_set_frame_cursor_thickness (GuiCalendar *calendar, gint thickness) { g_return_if_fail (GUI_IS_CALENDAR (calendar)); g_return_if_fail (thickness > 0 && thickness < 6); calendar->frame_cursor_thickness = thickness; } /*------------------------------------------------------------------------------*/ static void get_header_bg_color(GtkWidget *widget, GdkRGBA *color) { GuiCalendar *calendar = GUI_CALENDAR (widget); color = &calendar->header_bg_color; } static void get_background_color(GtkWidget *widget, GdkRGBA *color) { GuiCalendar *calendar = GUI_CALENDAR (widget); color = &calendar->background_color; } osmo-0.4.2/src/options_prefs.c0000664000175000017500000015344113110234475013252 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 #include "options_prefs.h" #include "i18n.h" #include "utils.h" #include "utils_date.h" #include "contacts.h" #include "contacts_import.h" #include "contacts_export.h" #include "calendar.h" #include "calendar_widget.h" #include "calendar_notes.h" #include "calendar_utils.h" /*------------------------------------------------------------------------------*/ static gchar * build_app_specific_dir(const gchar *basedir) { static gchar result[PATH_MAX]; gchar *dirname = g_build_filename(basedir, CONFIG_SUBDIR, NULL); g_strlcpy(result, dirname, PATH_MAX); g_free(dirname); return result; } gchar * prefs_get_config_dir(GUI *appGUI) { return (build_app_specific_dir(g_get_user_config_dir())); } gchar * prefs_get_data_dir(GUI *appGUI) { return (build_app_specific_dir(g_get_user_data_dir())); } /*------------------------------------------------------------------------------*/ static gchar * get_filename(const gchar *filename, const gchar *basedir) { static gchar result[PATH_MAX]; gchar *file, *dir; struct stat st; g_return_val_if_fail(basedir != NULL, NULL); file = g_build_filename(basedir, filename, NULL); dir = g_path_get_dirname(file); if (g_stat(dir, &st) < 0) { gint rc = g_mkdir_with_parents(dir, S_IRUSR | S_IWUSR | S_IXUSR); if (rc) { g_free(dir); g_free(file); return NULL; } } if (g_access(dir, R_OK | W_OK) == -1) { g_free(dir); g_free(file); return NULL; } g_strlcpy(result, file, PATH_MAX); g_free(dir); g_free(file); return result; } gchar * prefs_get_config_filename(gchar *filename, GUI *appGUI) { return get_filename(filename, prefs_get_config_dir(appGUI)); } gchar * prefs_get_data_filename(gchar *filename, GUI *appGUI) { return get_filename(filename, prefs_get_data_dir(appGUI)); } gchar* prefs_get_cache_filename(gchar *filename) { return get_filename(filename, build_app_specific_dir(g_get_user_cache_dir())); } gchar* prefs_get_runtime_filename(gchar *filename, GUI *appGUI) { return get_filename("lockfile", prefs_get_config_dir(appGUI)); } /*------------------------------------------------------------------------------*/ void prefs_set_default_values (void) { gint i; /* general */ config.window_x = 0; config.window_y = 0; config.window_size_x = 950; config.window_size_y = 560; config.fullscreen = 0; config.enable_tooltips = TRUE; config.latest_tab = 0; /* calendar */ config.tabs_position = GTK_POS_TOP; config.remember_latest_tab = TRUE; config.save_data_after_modification = TRUE; config.disable_underline_links = FALSE; config.toolbar_exit_button = FALSE; config.date_format = DATE_YYYY_MM_DD; config.time_format = TIME_24; config.enable_systray = TRUE; config.start_minimised_in_systray = FALSE; config.ignore_day_note_events = FALSE; config.run_counter = 0; config.lastrun_date = utl_date_get_current_julian (); config.lastrun_time = utl_time_get_current_seconds (); config.hide_calendar = FALSE; config.hide_tasks = FALSE; config.hide_contacts = FALSE; config.hide_notes = FALSE; config.override_locale_settings = FALSE; config.gui_layout = 1; /* 0 - vertical, 1 - horizontal */ config.sound_alarm_repeat = 1; g_strlcpy (config.link_color, "blue", MAXCOLORNAME); g_strlcpy (config.spell_lang, g_getenv("LANG"), MAXNAME); /* FIXME: DO NOT USE xdg-open AS IT CANNOT OPEN MULTIPLE LINKS AT ONCE */ /*g_strlcpy (config.web_browser, "xdg-open %s", MAXHELPERCMD);*/ g_strlcpy (config.web_browser, "firefox %s", MAXHELPERCMD); g_strlcpy (config.email_client, "xdg-email %s", MAXHELPERCMD); /* play command requires SoX */ /*g_strlcpy (config.sound_player, "play %s", MAXHELPERCMD);*/ g_strlcpy (config.sound_player, "aplay %s", MAXHELPERCMD); /* calendar */ config.fy_window_size_x = 750; config.fy_window_size_y = 550; config.fy_simple_view = TRUE; config.fy_alternative_view = FALSE; config.cb_window_size_x = 570; config.cb_window_size_y = 680; config.ib_window_size_x = 550; config.ib_window_size_y = 650; config.display_options = GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_NO_MONTH_CHANGE | GUI_CALENDAR_WEEK_START_MONDAY; config.day_notes_visible = FALSE; config.timeline_start = 8*60; config.timeline_end = 15*60; config.timeline_step = 60; config.di_show_current_time = TRUE; config.di_show_current_time_seconds = TRUE; config.di_show_day_number = TRUE; config.di_show_current_day_distance = TRUE; config.di_show_marked_days = TRUE; config.di_show_week_number = TRUE; config.di_show_weekend_days = TRUE; config.di_show_day_category = TRUE; config.di_show_moon_phase = TRUE; config.di_show_notes = TRUE; config.di_show_zodiac_sign = FALSE; config.cursor_type = CURSOR_FRAME; config.frame_cursor_thickness = 2; config.enable_auxilary_calendars = TRUE; config.enable_day_mark = TRUE; config.strikethrough_past_notes = FALSE; config.ascending_sorting_in_day_notes_browser = FALSE; config.auxilary_calendars_state = FALSE; config.day_note_spell_checker = FALSE; g_strlcpy (config.day_note_marker, "\'", MAXNAME); g_strlcpy (config.date_header_format, DEFAULT_DATE_HEADER_FORMAT, MAXNAME); config.event_marker_type = EVENT_MARKER_CIRCLE; config.today_marker_type = TODAY_MARKER_FREEHAND_CIRCLE; config.day_notes_browser_filter = DN_FILTER_CURRENT_MONTH; config.ical_export_pane_pos = 180; g_strlcpy (config.background_color, "#FFFFFF", MAXCOLORNAME); g_strlcpy (config.header_bg_color, "#404048", MAXCOLORNAME); g_strlcpy (config.header_fg_color, "#DDDDDD", MAXCOLORNAME); g_strlcpy (config.day_color, "#555555", MAXCOLORNAME); g_strlcpy (config.pf_day_color, "#CCCCCC", MAXCOLORNAME); g_strlcpy (config.weekend_color, "#880000", MAXCOLORNAME); g_strlcpy (config.selection_color, "#86ABD9", MAXCOLORNAME); g_strlcpy (config.mark_color, "#CBE140", MAXCOLORNAME); g_strlcpy (config.mark_current_day_color, "#E37751", MAXCOLORNAME); g_strlcpy (config.birthday_mark_color, "#EDD400", MAXCOLORNAME); config.mark_current_day_alpha = 32768; config.selector_alpha = 32768; g_strlcpy (config.day_name_font, "Sans Bold 20", MAXFONTNAME); g_strlcpy (config.calendar_font, "Sans 18", MAXFONTNAME); g_strlcpy (config.notes_font, "Sans 11", MAXFONTNAME); g_strlcpy (config.cal_print_month_name_font, "Sans Bold 40", MAXFONTNAME); g_strlcpy (config.cal_print_day_name_font, "Sans Bold 10", MAXFONTNAME); g_strlcpy (config.cal_print_day_num_font, "Sans Bold 16", MAXFONTNAME); g_strlcpy (config.cal_print_event_font, "Sans 7", MAXFONTNAME); config.cal_print_event_length = 256; config.cal_print_padding = 4; config.cal_print_page_orientation = PORTRAIT; config.cal_print_tasks = TRUE; config.cal_print_birthdays = TRUE; config.cal_print_namedays = TRUE; config.cal_print_day_notes = TRUE; config.cal_print_ical = TRUE; config.cal_print_disable_background = FALSE; /* tasks */ config.tasks_high_in_bold = TRUE; config.hide_completed = FALSE; config.delete_completed = FALSE; config.add_edit = FALSE; config.remember_category_in_tasks = FALSE; config.current_category_in_tasks = 0; config.tasks_pane_pos = DEFAULT_PANED_SPLIT_POSITION; config.tasks_sorting_order = GTK_SORT_ASCENDING; config.tasks_sorting_column = TA_COLUMN_DUE_DATE; config.tsk_visible_due_date_column = TRUE; config.tsk_visible_type_column = TRUE; config.tsk_visible_priority_column = FALSE; config.tsk_visible_category_column = FALSE; config.tasks_addedit_win_w = 370; config.tasks_addedit_win_h = 440; config.tasks_addedit_win_x = config.window_x+config.window_size_x/2-config.tasks_addedit_win_w/2; config.tasks_addedit_win_y = config.window_y+20; config.postpone_time = 10; config.tasks_column_idx_0 = 0; config.tasks_column_idx_0_width = 50; config.tasks_column_idx_1 = 1; config.tasks_column_idx_1_width = 50; config.tasks_column_idx_2 = 2; config.tasks_column_idx_2_width = 100; config.tasks_column_idx_3 = 3; config.tasks_column_idx_3_width = 100; config.tasks_column_idx_4 = 4; config.tasks_column_idx_4_width = 100; config.tasks_column_idx_5 = 5; config.tasks_column_idx_5_width = 100; g_strlcpy (config.due_today_color, "#00981E", MAXCOLORNAME); g_strlcpy (config.due_7days_color, "#0047B7", MAXCOLORNAME); g_strlcpy (config.past_due_color, "#CB362C", MAXCOLORNAME); g_strlcpy (config.task_info_font, "Sans 14", MAXFONTNAME); config.global_notification_command[0] = '\0'; /* contacts */ config.find_mode = CONTACTS_FF_FIRST_NAME; config.hide_group_column = FALSE; config.maps_provider = 0; config.contacts_pane_pos = DEFAULT_PANED_SPLIT_POSITION; config.photo_width = 80; config.cnt_visible_age_column = TRUE; config.cnt_visible_birthday_date_column = TRUE; config.cnt_visible_zodiac_sign_column = TRUE; config.contacts_sorting_order = GTK_SORT_ASCENDING; config.contacts_sorting_column = COLUMN_GROUP; config.contacts_addedit_win_w = 500; config.contacts_addedit_win_h = 600; config.contacts_addedit_win_x = config.window_x+config.window_size_x/2-config.contacts_addedit_win_w/2; config.contacts_addedit_win_y = config.window_y+20; config.contacts_export_win_w = 500; config.contacts_export_win_h = 400; config.contacts_export_win_x = config.window_x+config.window_size_x/2-config.contacts_export_win_w/2; config.contacts_export_win_y = config.window_y+20; config.contacts_import_win_w = 650; config.contacts_import_win_h = 450; config.contacts_import_win_x = config.window_x+config.window_size_x/2-config.contacts_import_win_w/2; config.contacts_import_win_y = config.window_y+20; config.contacts_import_sel_win_x = config.window_x+60; config.contacts_import_sel_win_y = config.window_y+20; config.contacts_birthdays_win_w = 650; config.contacts_birthdays_win_h = 700; config.contacts_column_idx_0 = 0; config.contacts_column_idx_0_width = 150; config.contacts_column_idx_1 = 1; config.contacts_column_idx_1_width = 150; config.contacts_column_idx_2 = 2; config.contacts_column_idx_2_width = 150; config.import_type = IMPORT_TYPE_FILE; config.import_interface_type = 0; config.import_bluetooth_channel = 1; config.import_usb_interface = 0; config.import_binary_xml = 0; config.contact_name_font_size = 18; config.contact_item_font_size = 11; g_strlcpy (config.import_bluetooth_address, "00:00:00:00:00:00", MAXADDRESS); g_strlcpy (config.contact_tag_color, "#228B22", MAXCOLORNAME); g_strlcpy (config.contact_link_color, "blue", MAXCOLORNAME); config.export_format = EXPORT_TO_CSV; for(i=0; i < CONTACTS_NUM_COLUMNS; i++) { config.export_fields[i] = '-'; } config.export_fields[COLUMN_GROUP] = '+'; config.export_fields[COLUMN_FIRST_NAME] = '+'; config.export_fields[COLUMN_LAST_NAME] = '+'; config.export_fields[COLUMN_NICK_NAME] = '+'; /* notes */ config.notes_enc_algorithm = 1; /* Serpent */ config.notes_enc_hashing = 1; /* RIPEMD-160 */ config.notes_comp_algorithm = 0; /* ZLib */ config.notes_comp_ratio = 3; /* BEST */ config.notes_sorting_order = GTK_SORT_ASCENDING; config.notes_sorting_column = N_COLUMN_NAME; config.nte_visible_type_column = TRUE; config.nte_visible_category_column = TRUE; config.nte_visible_last_changes_column = TRUE; config.nte_visible_created_column = TRUE; config.notes_column_idx_0 = 0; config.notes_column_idx_0_width = 50; config.notes_column_idx_1 = 1; config.notes_column_idx_1_width = 200; config.notes_column_idx_2 = 2; config.notes_column_idx_2_width = 80; config.notes_column_idx_3 = 3; config.notes_column_idx_3_width = 150; config.notes_column_idx_4 = 4; config.notes_column_idx_4_width = 150; config.remember_category_in_notes = FALSE; config.current_category_in_notes = 0; config.use_system_date_in_notes = FALSE; config.text_separator = '='; g_strlcpy (config.notes_editor_font, "Sans 11", MAXFONTNAME); } /*------------------------------------------------------------------------------*/ void prefs_read_config (GUI *appGUI) { gboolean cfg_file; xmlDocPtr doc; xmlNodePtr node, general_node, calendar_node, tasks_node, contacts_node, notes_node; cfg_file = g_file_test (prefs_get_config_filename (CONFIG_FILENAME, appGUI), G_FILE_TEST_IS_REGULAR); if (cfg_file == TRUE) { doc = xmlParseFile (prefs_get_config_filename (CONFIG_FILENAME, appGUI)); if (doc == NULL) return; node = xmlDocGetRootElement (doc); if (node == NULL) { xmlFreeDoc (doc); return; } if (xmlStrcmp (node->name, (const xmlChar *) CONFIG_NAME)) { xmlFreeDoc (doc); return; } prefs_set_default_values (); node = node->xmlChildrenNode; while (node != NULL) { /*---------------------------------------------------------------------------------------*/ /* general */ if ((!xmlStrcmp (node->name, (const xmlChar *) "general"))) { general_node = node->xmlChildrenNode; while (general_node != NULL) { utl_xml_get_int ("window_x", &config.window_x, general_node); utl_xml_get_int ("window_y", &config.window_y, general_node); utl_xml_get_int ("window_size_x", &config.window_size_x, general_node); utl_xml_get_int ("window_size_y", &config.window_size_y, general_node); utl_xml_get_int ("fullscreen", &config.fullscreen, general_node); utl_xml_get_int ("enable_tooltips", &config.enable_tooltips, general_node); utl_xml_get_int ("latest_tab", &config.latest_tab, general_node); utl_xml_get_int ("tabs_position", &config.tabs_position, general_node); utl_xml_get_int ("remember_latest_tab", &config.remember_latest_tab, general_node); utl_xml_get_int ("save_data_after_modification", &config.save_data_after_modification, general_node); utl_xml_get_int ("disable_underline_links", &config.disable_underline_links, general_node); utl_xml_get_int ("toolbar_exit_button", &config.toolbar_exit_button, general_node); utl_xml_get_int ("date_format", &config.date_format, general_node); utl_xml_get_int ("time_format", &config.time_format, general_node); utl_xml_get_int ("enable_systray", &config.enable_systray, general_node); utl_xml_get_int ("start_minimised_in_systray", &config.start_minimised_in_systray, general_node); utl_xml_get_int ("ignore_day_note_events", &config.ignore_day_note_events, general_node); utl_xml_get_int ("run_counter", &config.run_counter, general_node); utl_xml_get_int ("lastrun_date", &config.lastrun_date, general_node); utl_xml_get_int ("lastrun_time", &config.lastrun_time, general_node); utl_xml_get_int ("hide_calendar", &config.hide_calendar, general_node); utl_xml_get_int ("hide_tasks", &config.hide_tasks, general_node); utl_xml_get_int ("hide_contacts", &config.hide_contacts, general_node); utl_xml_get_int ("hide_notes", &config.hide_notes, general_node); utl_xml_get_int ("override_locale_settings", &config.override_locale_settings, general_node); utl_xml_get_int ("gui_layout", &config.gui_layout, general_node); utl_xml_get_int ("sound_alarm_repeat", &config.sound_alarm_repeat, general_node); utl_xml_get_strn ("spell_lang", config.spell_lang, MAXNAME, general_node); utl_xml_get_strn ("web_browser", config.web_browser, MAXHELPERCMD, general_node); utl_xml_get_strn ("email_client", config.email_client, MAXHELPERCMD, general_node); utl_xml_get_strn ("sound_player", config.sound_player, MAXHELPERCMD, general_node); general_node = general_node->next; } } /*---------------------------------------------------------------------------------------*/ /* calendar */ if ((!xmlStrcmp (node->name, (const xmlChar *) "calendar"))) { calendar_node = node->xmlChildrenNode; while (calendar_node != NULL) { utl_xml_get_int ("fy_window_size_x", &config.fy_window_size_x, calendar_node); utl_xml_get_int ("fy_window_size_y", &config.fy_window_size_y, calendar_node); utl_xml_get_int ("fy_simple_view", &config.fy_simple_view, calendar_node); utl_xml_get_int ("fy_alternative_view", &config.fy_alternative_view, calendar_node); utl_xml_get_int ("cb_window_size_x", &config.cb_window_size_x, calendar_node); utl_xml_get_int ("cb_window_size_y", &config.cb_window_size_y, calendar_node); utl_xml_get_int ("ib_window_size_x", &config.ib_window_size_x, calendar_node); utl_xml_get_int ("ib_window_size_y", &config.ib_window_size_y, calendar_node); utl_xml_get_int ("display_options", &config.display_options, calendar_node); utl_xml_get_int ("day_notes_visible", &config.day_notes_visible, calendar_node); utl_xml_get_int ("timeline_start", &config.timeline_start, calendar_node); utl_xml_get_int ("timeline_end", &config.timeline_end, calendar_node); utl_xml_get_int ("timeline_step", &config.timeline_step, calendar_node); utl_xml_get_int ("di_show_current_time", &config.di_show_current_time, calendar_node); utl_xml_get_int ("di_show_current_time_seconds", &config.di_show_current_time_seconds, calendar_node); utl_xml_get_int ("di_show_day_number", &config.di_show_day_number, calendar_node); utl_xml_get_int ("di_show_current_day_distance", &config.di_show_current_day_distance, calendar_node); utl_xml_get_int ("di_show_marked_days", &config.di_show_marked_days, calendar_node); utl_xml_get_int ("di_show_week_number", &config.di_show_week_number, calendar_node); utl_xml_get_int ("di_show_weekend_days", &config.di_show_weekend_days, calendar_node); utl_xml_get_int ("di_show_day_category", &config.di_show_day_category, calendar_node); utl_xml_get_int ("di_show_moon_phase", &config.di_show_moon_phase, calendar_node); utl_xml_get_int ("di_show_notes", &config.di_show_notes, calendar_node); utl_xml_get_int ("di_show_zodiac_sign", &config.di_show_zodiac_sign, calendar_node); utl_xml_get_int ("cursor_type", &config.cursor_type, calendar_node); utl_xml_get_int ("frame_cursor_thickness", &config.frame_cursor_thickness, calendar_node); utl_xml_get_int ("enable_auxilary_calendars", &config.enable_auxilary_calendars, calendar_node); utl_xml_get_int ("enable_day_mark", &config.enable_day_mark, calendar_node); utl_xml_get_int ("strikethrough_past_notes", &config.strikethrough_past_notes, calendar_node); utl_xml_get_int ("ascending_sorting_in_day_notes_browser", &config.ascending_sorting_in_day_notes_browser, calendar_node); utl_xml_get_int ("auxilary_calendars_state", &config.auxilary_calendars_state, calendar_node); utl_xml_get_int ("day_note_spell_checker", &config.day_note_spell_checker, calendar_node); utl_xml_get_strn ("day_note_marker", config.day_note_marker, MAXNAME, calendar_node); utl_xml_get_strn ("date_header_format", config.date_header_format, MAXNAME, calendar_node); utl_xml_get_int ("event_marker_type", &config.event_marker_type, calendar_node); utl_xml_get_int ("today_marker_type", &config.today_marker_type, calendar_node); utl_xml_get_int ("day_notes_browser_filter", &config.day_notes_browser_filter, calendar_node); utl_xml_get_int ("ical_export_pane_pos", &config.ical_export_pane_pos, calendar_node); utl_xml_get_strn ("background_color", config.background_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("header_bg_color", config.header_bg_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("header_fg_color", config.header_fg_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("day_color", config.day_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("pf_day_color", config.pf_day_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("weekend_color", config.weekend_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("selection_color", config.selection_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("mark_color", config.mark_color, MAXCOLORNAME, calendar_node); utl_xml_get_strn ("mark_current_day_color", config.mark_current_day_color, MAXCOLORNAME, calendar_node); utl_xml_get_int ("mark_current_day_alpha", &config.mark_current_day_alpha, calendar_node); utl_xml_get_strn ("birthday_mark_color", config.birthday_mark_color, MAXCOLORNAME, calendar_node); utl_xml_get_int ("selector_alpha", &config.selector_alpha, calendar_node); utl_xml_get_strn ("day_name_font", config.day_name_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("calendar_font", config.calendar_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("notes_font", config.notes_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("cal_print_month_name_font", config.cal_print_month_name_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("cal_print_day_name_font", config.cal_print_day_name_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("cal_print_day_num_font", config.cal_print_day_num_font, MAXFONTNAME, calendar_node); utl_xml_get_strn ("cal_print_event_font", config.cal_print_event_font, MAXFONTNAME, calendar_node); utl_xml_get_int ("cal_print_event_length", &config.cal_print_event_length, calendar_node); utl_xml_get_int ("cal_print_padding", &config.cal_print_padding, calendar_node); utl_xml_get_int ("cal_print_page_orientation", &config.cal_print_page_orientation, calendar_node); utl_xml_get_int ("cal_print_tasks", &config.cal_print_tasks, calendar_node); utl_xml_get_int ("cal_print_birthdays", &config.cal_print_birthdays, calendar_node); utl_xml_get_int ("cal_print_namedays", &config.cal_print_namedays, calendar_node); utl_xml_get_int ("cal_print_day_notes", &config.cal_print_day_notes, calendar_node); utl_xml_get_int ("cal_print_ical", &config.cal_print_ical, calendar_node); utl_xml_get_int ("cal_print_disable_background", &config.cal_print_disable_background, calendar_node); calendar_node = calendar_node->next; } } /*---------------------------------------------------------------------------------------*/ /* tasks */ if ((!xmlStrcmp (node->name, (const xmlChar *) "tasks"))) { tasks_node = node->xmlChildrenNode; while (tasks_node != NULL) { utl_xml_get_int ("high_priority_in_bold", &config.tasks_high_in_bold, tasks_node); utl_xml_get_int ("hide_completed", &config.hide_completed, tasks_node); utl_xml_get_int ("delete_completed", &config.delete_completed, tasks_node); utl_xml_get_int ("add_edit", &config.add_edit, tasks_node); utl_xml_get_int ("remember_category", &config.remember_category_in_tasks, tasks_node); utl_xml_get_int ("current_category", &config.current_category_in_tasks, tasks_node); utl_xml_get_int ("pane_pos", &config.tasks_pane_pos, tasks_node); utl_xml_get_int ("tasks_sorting_order", &config.tasks_sorting_order, tasks_node); utl_xml_get_int ("tasks_sorting_column", &config.tasks_sorting_column, tasks_node); utl_xml_get_int ("visible_due_date_column", &config.tsk_visible_due_date_column, tasks_node); utl_xml_get_int ("visible_type_column", &config.tsk_visible_type_column, tasks_node); utl_xml_get_int ("visible_priority_column", &config.tsk_visible_priority_column, tasks_node); utl_xml_get_int ("visible_category_column", &config.tsk_visible_category_column, tasks_node); utl_xml_get_int ("tasks_addedit_win_x", &config.tasks_addedit_win_x, tasks_node); utl_xml_get_int ("tasks_addedit_win_y", &config.tasks_addedit_win_y, tasks_node); utl_xml_get_int ("tasks_addedit_win_w", &config.tasks_addedit_win_w, tasks_node); utl_xml_get_int ("tasks_addedit_win_h", &config.tasks_addedit_win_h, tasks_node); utl_xml_get_int ("postpone_time", &config.postpone_time, tasks_node); utl_xml_get_int ("column_idx_0", &config.tasks_column_idx_0, tasks_node); utl_xml_get_int ("column_idx_0_width", &config.tasks_column_idx_0_width, tasks_node); utl_xml_get_int ("column_idx_1", &config.tasks_column_idx_1, tasks_node); utl_xml_get_int ("column_idx_1_width", &config.tasks_column_idx_1_width, tasks_node); utl_xml_get_int ("column_idx_2", &config.tasks_column_idx_2, tasks_node); utl_xml_get_int ("column_idx_2_width", &config.tasks_column_idx_2_width, tasks_node); utl_xml_get_int ("column_idx_3", &config.tasks_column_idx_3, tasks_node); utl_xml_get_int ("column_idx_3_width", &config.tasks_column_idx_3_width, tasks_node); utl_xml_get_int ("column_idx_4", &config.tasks_column_idx_4, tasks_node); utl_xml_get_int ("column_idx_4_width", &config.tasks_column_idx_4_width, tasks_node); utl_xml_get_int ("column_idx_5", &config.tasks_column_idx_5, tasks_node); utl_xml_get_int ("column_idx_5_width", &config.tasks_column_idx_5_width, tasks_node); utl_xml_get_strn ("due_today_color", config.due_today_color, MAXCOLORNAME, tasks_node); utl_xml_get_strn ("due_7days_color", config.due_7days_color, MAXCOLORNAME, tasks_node); utl_xml_get_strn ("past_due_color", config.past_due_color, MAXCOLORNAME, tasks_node); utl_xml_get_strn ("task_info_font", config.task_info_font, MAXFONTNAME, tasks_node); utl_xml_get_strn ("global_notification_command", config.global_notification_command, MAXHELPERCMD, tasks_node); tasks_node = tasks_node->next; } } /*---------------------------------------------------------------------------------------*/ /* contacts */ if ((!xmlStrcmp (node->name, (const xmlChar *) "contacts"))) { contacts_node = node->xmlChildrenNode; while (contacts_node != NULL) { utl_xml_get_int ("find_mode", &config.find_mode, contacts_node); utl_xml_get_int ("hide_group_column", &config.hide_group_column, contacts_node); utl_xml_get_int ("maps_provider", &config.maps_provider, contacts_node); utl_xml_get_int ("pane_pos", &config.contacts_pane_pos, contacts_node); utl_xml_get_int ("photo_width", &config.photo_width, contacts_node); utl_xml_get_int ("visible_age_column", &config.cnt_visible_age_column, contacts_node); utl_xml_get_int ("visible_birthday_date_column", &config.cnt_visible_birthday_date_column, contacts_node); utl_xml_get_int ("visible_zodiac_sign_column", &config.cnt_visible_zodiac_sign_column, contacts_node); utl_xml_get_strn ("contact_tag_color", config.contact_tag_color, MAXCOLORNAME, contacts_node); utl_xml_get_strn ("contact_link_color", config.contact_link_color, MAXCOLORNAME, contacts_node); utl_xml_get_int ("contact_name_font_size", &config.contact_name_font_size, contacts_node); utl_xml_get_int ("contact_item_font_size", &config.contact_item_font_size, contacts_node); utl_xml_get_int ("export_format", &config.export_format, contacts_node); utl_xml_get_strn ("export_fields", config.export_fields, MAXCONTACTFIELDS, contacts_node); utl_xml_get_int ("contacts_sorting_order", &config.contacts_sorting_order, contacts_node); utl_xml_get_int ("contacts_sorting_column", &config.contacts_sorting_column, contacts_node); utl_xml_get_int ("contacts_addedit_win_x", &config.contacts_addedit_win_x, contacts_node); utl_xml_get_int ("contacts_addedit_win_y", &config.contacts_addedit_win_y, contacts_node); utl_xml_get_int ("contacts_addedit_win_w", &config.contacts_addedit_win_w, contacts_node); utl_xml_get_int ("contacts_addedit_win_h", &config.contacts_addedit_win_h, contacts_node); utl_xml_get_int ("contacts_export_win_x", &config.contacts_export_win_x, contacts_node); utl_xml_get_int ("contacts_export_win_y", &config.contacts_export_win_y, contacts_node); utl_xml_get_int ("contacts_export_win_w", &config.contacts_export_win_w, contacts_node); utl_xml_get_int ("contacts_export_win_h", &config.contacts_export_win_h, contacts_node); utl_xml_get_int ("contacts_import_sel_win_x", &config.contacts_import_sel_win_x, contacts_node); utl_xml_get_int ("contacts_import_sel_win_y", &config.contacts_import_sel_win_y, contacts_node); utl_xml_get_int ("contacts_import_win_x", &config.contacts_import_win_x, contacts_node); utl_xml_get_int ("contacts_import_win_y", &config.contacts_import_win_y, contacts_node); utl_xml_get_int ("contacts_import_win_w", &config.contacts_import_win_w, contacts_node); utl_xml_get_int ("contacts_import_win_h", &config.contacts_import_win_h, contacts_node); utl_xml_get_int ("contacts_birthdays_win_w", &config.contacts_birthdays_win_w, contacts_node); utl_xml_get_int ("contacts_birthdays_win_h", &config.contacts_birthdays_win_h, contacts_node); utl_xml_get_int ("column_idx_0", &config.contacts_column_idx_0, contacts_node); utl_xml_get_int ("column_idx_0_width", &config.contacts_column_idx_0_width, contacts_node); utl_xml_get_int ("column_idx_1", &config.contacts_column_idx_1, contacts_node); utl_xml_get_int ("column_idx_1_width", &config.contacts_column_idx_1_width, contacts_node); utl_xml_get_int ("column_idx_2", &config.contacts_column_idx_2, contacts_node); utl_xml_get_int ("column_idx_2_width", &config.contacts_column_idx_2_width, contacts_node); utl_xml_get_int ("import_type", &config.import_type, contacts_node); utl_xml_get_int ("import_interface_type", &config.import_interface_type, contacts_node); utl_xml_get_int ("import_bluetooth_channel", &config.import_bluetooth_channel, contacts_node); utl_xml_get_int ("import_usb_interface", &config.import_usb_interface, contacts_node); utl_xml_get_int ("import_binary_xml", &config.import_binary_xml, contacts_node); utl_xml_get_strn ("import_bluetooth_address", config.import_bluetooth_address, MAXADDRESS, contacts_node); contacts_node = contacts_node->next; } } /*---------------------------------------------------------------------------------------*/ /* notes */ if ((!xmlStrcmp (node->name, (const xmlChar *) "notes"))) { notes_node = node->xmlChildrenNode; while (notes_node != NULL) { utl_xml_get_int ("enc_algorithm", &config.notes_enc_algorithm, notes_node); utl_xml_get_int ("enc_hashing", &config.notes_enc_hashing, notes_node); utl_xml_get_int ("comp_algorithm", &config.notes_comp_algorithm, notes_node); utl_xml_get_int ("comp_ratio", &config.notes_comp_ratio, notes_node); utl_xml_get_int ("sorting_order", &config.notes_sorting_order, notes_node); utl_xml_get_int ("sorting_column", &config.notes_sorting_column, notes_node); utl_xml_get_int ("visible_type_column", &config.nte_visible_type_column, notes_node); utl_xml_get_int ("visible_category_column", &config.nte_visible_category_column, notes_node); utl_xml_get_int ("visible_last_changes_column", &config.nte_visible_last_changes_column, notes_node); utl_xml_get_int ("visible_created_column", &config.nte_visible_created_column, notes_node); utl_xml_get_int ("column_idx_0", &config.notes_column_idx_0, notes_node); utl_xml_get_int ("column_idx_0_width", &config.notes_column_idx_0_width, notes_node); utl_xml_get_int ("column_idx_1", &config.notes_column_idx_1, notes_node); utl_xml_get_int ("column_idx_1_width", &config.notes_column_idx_1_width, notes_node); utl_xml_get_int ("column_idx_2", &config.notes_column_idx_2, notes_node); utl_xml_get_int ("column_idx_2_width", &config.notes_column_idx_2_width, notes_node); utl_xml_get_int ("column_idx_3", &config.notes_column_idx_3, notes_node); utl_xml_get_int ("column_idx_3_width", &config.notes_column_idx_3_width, notes_node); utl_xml_get_int ("column_idx_4", &config.notes_column_idx_4, notes_node); utl_xml_get_int ("column_idx_4_width", &config.notes_column_idx_4_width, notes_node); utl_xml_get_int ("remember_category", &config.remember_category_in_notes, notes_node); utl_xml_get_int ("current_category", &config.current_category_in_notes, notes_node); utl_xml_get_int ("use_system_date", &config.use_system_date_in_notes, notes_node); utl_xml_get_char ("text_separator", &config.text_separator, notes_node); utl_xml_get_strn ("editor_font", config.notes_editor_font, MAXFONTNAME, notes_node); notes_node = notes_node->next; } if (config.notes_comp_ratio == 0 /* GRG_LVL_NONE */) { /* ignore 'None' option */ config.notes_comp_ratio = 1 /* GRG_LVL_FAST */; } } /*---------------------------------------------------------------------------------------*/ node = node->next; } xmlFreeDoc (doc); } else { prefs_set_default_values (); prefs_write_config (appGUI); } } /*------------------------------------------------------------------------------*/ void prefs_write_config (GUI *appGUI) { xmlDocPtr doc; xmlNodePtr node, general_node, calendar_node, tasks_node, contacts_node, notes_node; doc = xmlNewDoc ((const xmlChar *) "1.0"); node = xmlNewNode (NULL, (const xmlChar *) CONFIG_NAME); xmlDocSetRootElement (doc, node); /*---------------------------------------------------------------------------------------*/ /* general */ general_node = xmlNewNode (NULL, (const xmlChar *) "general"); xmlAddChild (node, general_node); utl_xml_put_int ("window_x", config.window_x, general_node); utl_xml_put_int ("window_y", config.window_y, general_node); utl_xml_put_int ("window_size_x", config.window_size_x, general_node); utl_xml_put_int ("window_size_y", config.window_size_y, general_node); utl_xml_put_int ("fullscreen", config.fullscreen, general_node); utl_xml_put_int ("enable_tooltips", config.enable_tooltips, general_node); utl_xml_put_int ("latest_tab", config.latest_tab, general_node); utl_xml_put_int ("tabs_position", config.tabs_position, general_node); utl_xml_put_int ("remember_latest_tab", config.remember_latest_tab, general_node); utl_xml_put_int ("save_data_after_modification", config.save_data_after_modification, general_node); utl_xml_put_int ("disable_underline_links", config.disable_underline_links, general_node); utl_xml_put_int ("toolbar_exit_button", config.toolbar_exit_button, general_node); utl_xml_put_int ("date_format", config.date_format, general_node); utl_xml_put_int ("time_format", config.time_format, general_node); utl_xml_put_int ("enable_systray", config.enable_systray, general_node); utl_xml_put_int ("start_minimised_in_systray", config.start_minimised_in_systray, general_node); utl_xml_put_int ("ignore_day_note_events", config.ignore_day_note_events, general_node); utl_xml_put_int ("run_counter", config.run_counter, general_node); utl_xml_put_int ("lastrun_date", config.lastrun_date, general_node); utl_xml_put_int ("lastrun_time", config.lastrun_time, general_node); utl_xml_put_int ("hide_calendar", config.hide_calendar, general_node); utl_xml_put_int ("hide_tasks", config.hide_tasks, general_node); utl_xml_put_int ("hide_contacts", config.hide_contacts, general_node); utl_xml_put_int ("hide_notes", config.hide_notes, general_node); utl_xml_put_int ("override_locale_settings", config.override_locale_settings, general_node); utl_xml_put_int ("gui_layout", config.gui_layout, general_node); utl_xml_put_int ("sound_alarm_repeat", config.sound_alarm_repeat, general_node); utl_xml_put_strn ("spell_lang", config.spell_lang, MAXNAME, general_node); utl_xml_put_strn ("web_browser", config.web_browser, MAXHELPERCMD, general_node); utl_xml_put_strn ("email_client", config.email_client, MAXHELPERCMD, general_node); utl_xml_put_strn ("sound_player", config.sound_player, MAXHELPERCMD, general_node); /*---------------------------------------------------------------------------------------*/ /* calendar */ calendar_node = xmlNewNode (NULL, (const xmlChar *) "calendar"); xmlAddChild (node, calendar_node); utl_xml_put_int ("fy_window_size_x", config.fy_window_size_x, calendar_node); utl_xml_put_int ("fy_window_size_y", config.fy_window_size_y, calendar_node); utl_xml_put_int ("fy_simple_view", config.fy_simple_view, calendar_node); utl_xml_put_int ("fy_alternative_view", config.fy_alternative_view, calendar_node); utl_xml_put_int ("cb_window_size_x", config.cb_window_size_x, calendar_node); utl_xml_put_int ("cb_window_size_y", config.cb_window_size_y, calendar_node); utl_xml_put_int ("ib_window_size_x", config.ib_window_size_x, calendar_node); utl_xml_put_int ("ib_window_size_y", config.ib_window_size_y, calendar_node); utl_xml_put_int ("display_options", config.display_options, calendar_node); utl_xml_put_int ("day_notes_visible", config.day_notes_visible, calendar_node); utl_xml_put_int ("timeline_start", config.timeline_start, calendar_node); utl_xml_put_int ("timeline_end", config.timeline_end, calendar_node); utl_xml_put_int ("timeline_step", config.timeline_step, calendar_node); utl_xml_put_int ("di_show_current_time", config.di_show_current_time, calendar_node); utl_xml_put_int ("di_show_current_time_seconds", config.di_show_current_time_seconds, calendar_node); utl_xml_put_int ("di_show_day_number", config.di_show_day_number, calendar_node); utl_xml_put_int ("di_show_current_day_distance", config.di_show_current_day_distance, calendar_node); utl_xml_put_int ("di_show_marked_days", config.di_show_marked_days, calendar_node); utl_xml_put_int ("di_show_week_number", config.di_show_week_number, calendar_node); utl_xml_put_int ("di_show_weekend_days", config.di_show_weekend_days, calendar_node); utl_xml_put_int ("di_show_day_category", config.di_show_day_category, calendar_node); utl_xml_put_int ("di_show_moon_phase", config.di_show_moon_phase, calendar_node); utl_xml_put_int ("di_show_notes", config.di_show_notes, calendar_node); utl_xml_put_int ("di_show_zodiac_sign", config.di_show_zodiac_sign, calendar_node); utl_xml_put_int ("cursor_type", config.cursor_type, calendar_node); utl_xml_put_int ("frame_cursor_thickness", config.frame_cursor_thickness, calendar_node); utl_xml_put_int ("enable_auxilary_calendars", config.enable_auxilary_calendars, calendar_node); utl_xml_put_int ("enable_day_mark", config.enable_day_mark, calendar_node); utl_xml_put_int ("strikethrough_past_notes", config.strikethrough_past_notes, calendar_node); utl_xml_put_int ("ascending_sorting_in_day_notes_browser", config.ascending_sorting_in_day_notes_browser, calendar_node); utl_xml_put_int ("auxilary_calendars_state", config.auxilary_calendars_state, calendar_node); utl_xml_put_int ("day_note_spell_checker", config.day_note_spell_checker, calendar_node); utl_xml_put_strn ("day_note_marker", config.day_note_marker, MAXNAME, calendar_node); utl_xml_put_strn ("date_header_format", config.date_header_format, MAXNAME, calendar_node); utl_xml_put_int ("event_marker_type", config.event_marker_type, calendar_node); utl_xml_put_int ("today_marker_type", config.today_marker_type, calendar_node); utl_xml_put_int ("day_notes_browser_filter", config.day_notes_browser_filter, calendar_node); utl_xml_put_int ("ical_export_pane_pos", config.ical_export_pane_pos, calendar_node); utl_xml_put_strn ("background_color", config.background_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("header_bg_color", config.header_bg_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("header_fg_color", config.header_fg_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("day_color", config.day_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("pf_day_color", config.pf_day_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("weekend_color", config.weekend_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("selection_color", config.selection_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("mark_color", config.mark_color, MAXCOLORNAME, calendar_node); utl_xml_put_strn ("mark_current_day_color", config.mark_current_day_color, MAXCOLORNAME, calendar_node); utl_xml_put_int ("mark_current_day_alpha", config.mark_current_day_alpha, calendar_node); utl_xml_put_strn ("birthday_mark_color", config.birthday_mark_color, MAXCOLORNAME, calendar_node); utl_xml_put_int ("selector_alpha", config.selector_alpha, calendar_node); utl_xml_put_strn ("day_name_font", config.day_name_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("calendar_font", config.calendar_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("notes_font", config.notes_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("cal_print_month_name_font", config.cal_print_month_name_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("cal_print_day_name_font", config.cal_print_day_name_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("cal_print_day_num_font", config.cal_print_day_num_font, MAXFONTNAME, calendar_node); utl_xml_put_strn ("cal_print_event_font", config.cal_print_event_font, MAXFONTNAME, calendar_node); utl_xml_put_int ("cal_print_event_length", config.cal_print_event_length, calendar_node); utl_xml_put_int ("cal_print_padding", config.cal_print_padding, calendar_node); utl_xml_put_int ("cal_print_page_orientation", config.cal_print_page_orientation, calendar_node); utl_xml_put_int ("cal_print_tasks", config.cal_print_tasks, calendar_node); utl_xml_put_int ("cal_print_birthdays", config.cal_print_birthdays, calendar_node); utl_xml_put_int ("cal_print_namedays", config.cal_print_namedays, calendar_node); utl_xml_put_int ("cal_print_day_notes", config.cal_print_day_notes, calendar_node); utl_xml_put_int ("cal_print_ical", config.cal_print_ical, calendar_node); utl_xml_put_int ("cal_print_disable_background", config.cal_print_disable_background, calendar_node); /*---------------------------------------------------------------------------------------*/ /* tasks */ tasks_node = xmlNewNode (NULL, (const xmlChar *) "tasks"); xmlAddChild (node, tasks_node); utl_xml_put_int ("high_priority_in_bold", config.tasks_high_in_bold, tasks_node); utl_xml_put_int ("hide_completed", config.hide_completed, tasks_node); utl_xml_put_int ("delete_completed", config.delete_completed, tasks_node); utl_xml_put_int ("add_edit", config.add_edit, tasks_node); utl_xml_put_int ("remember_category", config.remember_category_in_tasks, tasks_node); utl_xml_put_int ("current_category", config.current_category_in_tasks, tasks_node); utl_xml_put_int ("pane_pos", config.tasks_pane_pos, tasks_node); utl_xml_put_int ("tasks_sorting_order", config.tasks_sorting_order, tasks_node); utl_xml_put_int ("tasks_sorting_column", config.tasks_sorting_column, tasks_node); utl_xml_put_int ("visible_due_date_column", config.tsk_visible_due_date_column, tasks_node); utl_xml_put_int ("visible_type_column", config.tsk_visible_type_column, tasks_node); utl_xml_put_int ("visible_priority_column", config.tsk_visible_priority_column, tasks_node); utl_xml_put_int ("visible_category_column", config.tsk_visible_category_column, tasks_node); utl_xml_put_int ("tasks_addedit_win_x", config.tasks_addedit_win_x, tasks_node); utl_xml_put_int ("tasks_addedit_win_y", config.tasks_addedit_win_y, tasks_node); utl_xml_put_int ("tasks_addedit_win_w", config.tasks_addedit_win_w, tasks_node); utl_xml_put_int ("tasks_addedit_win_h", config.tasks_addedit_win_h, tasks_node); utl_xml_put_int ("postpone_time", config.postpone_time, tasks_node); utl_xml_put_int ("column_idx_0", config.tasks_column_idx_0, tasks_node); utl_xml_put_int ("column_idx_0_width", config.tasks_column_idx_0_width, tasks_node); utl_xml_put_int ("column_idx_1", config.tasks_column_idx_1, tasks_node); utl_xml_put_int ("column_idx_1_width", config.tasks_column_idx_1_width, tasks_node); utl_xml_put_int ("column_idx_2", config.tasks_column_idx_2, tasks_node); utl_xml_put_int ("column_idx_2_width", config.tasks_column_idx_2_width, tasks_node); utl_xml_put_int ("column_idx_3", config.tasks_column_idx_3, tasks_node); utl_xml_put_int ("column_idx_3_width", config.tasks_column_idx_3_width, tasks_node); utl_xml_put_int ("column_idx_4", config.tasks_column_idx_4, tasks_node); utl_xml_put_int ("column_idx_4_width", config.tasks_column_idx_4_width, tasks_node); utl_xml_put_int ("column_idx_5", config.tasks_column_idx_5, tasks_node); utl_xml_put_int ("column_idx_5_width", config.tasks_column_idx_5_width, tasks_node); utl_xml_put_strn ("due_today_color", config.due_today_color, MAXCOLORNAME, tasks_node); utl_xml_put_strn ("due_7days_color", config.due_7days_color, MAXCOLORNAME, tasks_node); utl_xml_put_strn ("past_due_color", config.past_due_color, MAXCOLORNAME, tasks_node); utl_xml_put_strn ("task_info_font", config.task_info_font, MAXFONTNAME, tasks_node); utl_xml_put_strn ("global_notification_command", config.global_notification_command, MAXHELPERCMD, tasks_node); /*---------------------------------------------------------------------------------------*/ /* contacts */ contacts_node = xmlNewNode (NULL, (const xmlChar *) "contacts"); xmlAddChild (node, contacts_node); utl_xml_put_int ("find_mode", config.find_mode, contacts_node); utl_xml_put_int ("hide_group_column", config.hide_group_column, contacts_node); utl_xml_put_int ("maps_provider", config.maps_provider, contacts_node); utl_xml_put_int ("pane_pos", config.contacts_pane_pos, contacts_node); utl_xml_put_int ("photo_width", config.photo_width, contacts_node); utl_xml_put_int ("visible_age_column", config.cnt_visible_age_column, contacts_node); utl_xml_put_int ("visible_birthday_date_column", config.cnt_visible_birthday_date_column, contacts_node); utl_xml_put_int ("visible_zodiac_sign_column", config.cnt_visible_zodiac_sign_column, contacts_node); utl_xml_put_strn ("contact_tag_color", config.contact_tag_color, MAXCOLORNAME, contacts_node); utl_xml_put_strn ("contact_link_color", config.contact_link_color, MAXCOLORNAME, contacts_node); utl_xml_put_int ("contact_name_font_size", config.contact_name_font_size, contacts_node); utl_xml_put_int ("contact_item_font_size", config.contact_item_font_size, contacts_node); utl_xml_put_int ("export_format", config.export_format, contacts_node); utl_xml_put_strn ("export_fields", config.export_fields, MAXCONTACTFIELDS, contacts_node); utl_xml_put_int ("contacts_sorting_order", config.contacts_sorting_order, contacts_node); utl_xml_put_int ("contacts_sorting_column", config.contacts_sorting_column, contacts_node); utl_xml_put_int ("contacts_addedit_win_x", config.contacts_addedit_win_x, contacts_node); utl_xml_put_int ("contacts_addedit_win_y", config.contacts_addedit_win_y, contacts_node); utl_xml_put_int ("contacts_addedit_win_w", config.contacts_addedit_win_w, contacts_node); utl_xml_put_int ("contacts_addedit_win_h", config.contacts_addedit_win_h, contacts_node); utl_xml_put_int ("contacts_export_win_x", config.contacts_export_win_x, contacts_node); utl_xml_put_int ("contacts_export_win_y", config.contacts_export_win_y, contacts_node); utl_xml_put_int ("contacts_export_win_w", config.contacts_export_win_w, contacts_node); utl_xml_put_int ("contacts_export_win_h", config.contacts_export_win_h, contacts_node); utl_xml_put_int ("contacts_import_sel_win_x", config.contacts_import_sel_win_x, contacts_node); utl_xml_put_int ("contacts_import_sel_win_y", config.contacts_import_sel_win_y, contacts_node); utl_xml_put_int ("contacts_import_win_x", config.contacts_import_win_x, contacts_node); utl_xml_put_int ("contacts_import_win_y", config.contacts_import_win_y, contacts_node); utl_xml_put_int ("contacts_import_win_w", config.contacts_import_win_w, contacts_node); utl_xml_put_int ("contacts_import_win_h", config.contacts_import_win_h, contacts_node); utl_xml_put_int ("contacts_birthdays_win_w", config.contacts_birthdays_win_w, contacts_node); utl_xml_put_int ("contacts_birthdays_win_h", config.contacts_birthdays_win_h, contacts_node); utl_xml_put_int ("column_idx_0", config.contacts_column_idx_0, contacts_node); utl_xml_put_int ("column_idx_0_width", config.contacts_column_idx_0_width, contacts_node); utl_xml_put_int ("column_idx_1", config.contacts_column_idx_1, contacts_node); utl_xml_put_int ("column_idx_1_width", config.contacts_column_idx_1_width, contacts_node); utl_xml_put_int ("column_idx_2", config.contacts_column_idx_2, contacts_node); utl_xml_put_int ("column_idx_2_width", config.contacts_column_idx_2_width, contacts_node); utl_xml_put_int ("import_type", config.import_type, contacts_node); utl_xml_put_int ("import_interface_type", config.import_interface_type, contacts_node); utl_xml_put_int ("import_bluetooth_channel", config.import_bluetooth_channel, contacts_node); utl_xml_put_int ("import_usb_interface", config.import_usb_interface, contacts_node); utl_xml_put_int ("import_binary_xml", config.import_binary_xml, contacts_node); utl_xml_put_strn ("import_bluetooth_address", config.import_bluetooth_address, MAXADDRESS, contacts_node); /*---------------------------------------------------------------------------------------*/ /* notes */ notes_node = xmlNewNode (NULL, (const xmlChar *) "notes"); xmlAddChild (node, notes_node); utl_xml_put_int ("enc_algorithm", config.notes_enc_algorithm, notes_node); utl_xml_put_int ("enc_hashing", config.notes_enc_hashing, notes_node); utl_xml_put_int ("comp_algorithm", config.notes_comp_algorithm, notes_node); utl_xml_put_int ("comp_ratio", config.notes_comp_ratio, notes_node); utl_xml_put_int ("sorting_order", config.notes_sorting_order, notes_node); utl_xml_put_int ("sorting_column", config.notes_sorting_column, notes_node); utl_xml_put_int ("visible_type_column", config.nte_visible_type_column, notes_node); utl_xml_put_int ("visible_category_column", config.nte_visible_category_column, notes_node); utl_xml_put_int ("visible_last_changes_column", config.nte_visible_last_changes_column, notes_node); utl_xml_put_int ("visible_created_column", config.nte_visible_created_column, notes_node); utl_xml_put_int ("column_idx_0", config.notes_column_idx_0, notes_node); utl_xml_put_int ("column_idx_0_width", config.notes_column_idx_0_width, notes_node); utl_xml_put_int ("column_idx_1", config.notes_column_idx_1, notes_node); utl_xml_put_int ("column_idx_1_width", config.notes_column_idx_1_width, notes_node); utl_xml_put_int ("column_idx_2", config.notes_column_idx_2, notes_node); utl_xml_put_int ("column_idx_2_width", config.notes_column_idx_2_width, notes_node); utl_xml_put_int ("column_idx_3", config.notes_column_idx_3, notes_node); utl_xml_put_int ("column_idx_3_width", config.notes_column_idx_3_width, notes_node); utl_xml_put_int ("column_idx_4", config.notes_column_idx_4, notes_node); utl_xml_put_int ("column_idx_4_width", config.notes_column_idx_4_width, notes_node); utl_xml_put_int ("remember_category", config.remember_category_in_notes, notes_node); utl_xml_put_int ("current_category", config.current_category_in_notes, notes_node); utl_xml_put_int ("use_system_date", config.use_system_date_in_notes, notes_node); utl_xml_put_char ("text_separator", config.text_separator, notes_node); utl_xml_put_strn ("editor_font", config.notes_editor_font, MAXFONTNAME, notes_node); /*---------------------------------------------------------------------------------------*/ utl_xml_write_doc (prefs_get_config_filename (CONFIG_FILENAME, appGUI), doc); xmlFreeDoc (doc); } /*------------------------------------------------------------------------------*/ static int copy(gchar *source, gchar *target) { int source_fd, target_fd; ssize_t len; gchar buff[8192]; struct stat st; mode_t perm; if (stat(source, &st)) { return -1; } perm = st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO); source_fd = open(source, O_RDONLY); if (source_fd == -1) { return -1; } g_remove(target); target_fd = open(target, O_WRONLY | O_CREAT | O_EXCL, perm); if (target_fd == -1) { close(source_fd); return -1; } len = read(source_fd, buff, sizeof (buff)); while (len > 0) { write(target_fd, buff, len); len = read(source_fd, buff, sizeof (buff)); } close(source_fd); close(target_fd); return 0; } static gboolean restore_from_dir(gchar *source_dirname, gchar *target_name, GUI *appGUI) { GDir *source_dir = g_dir_open(source_dirname, 0, NULL); if (source_dir) { const gchar *old_name = g_dir_read_name(source_dir); for (; old_name; old_name = g_dir_read_name(source_dir)) { gchar *old_fullname = g_build_filename(source_dirname, old_name, NULL); if (g_file_test(old_fullname, G_FILE_TEST_IS_REGULAR)) { gchar *new_name = g_build_filename(target_name, old_name, NULL); gboolean is_config = utl_text_strcmp(CONFIG_FILENAME, new_name) == 0; gchar *new_fullname = is_config ? prefs_get_config_filename(new_name, appGUI) : prefs_get_data_filename(new_name, appGUI); int rc = copy(old_fullname, new_fullname); g_free(new_name); if (rc == -1) { g_warning("Failed to move the old file %s to the new location %s. Aborting migration.", old_fullname, new_fullname); g_free(old_fullname); return FALSE; } } else if (g_file_test(old_fullname, G_FILE_TEST_IS_DIR)) { gchar *new_target_name = g_build_filename(target_name, old_name, NULL); gboolean rc = restore_from_dir(old_fullname, new_target_name, appGUI); g_free(new_target_name); if (rc == FALSE) { return FALSE; } } else { g_warning("Do not know how to handle entry %s. Aborting migration.", old_fullname); g_free(old_fullname); return FALSE; } g_free(old_fullname); } g_dir_close(source_dir); } return TRUE; } gboolean prefs_restore (gchar *source_dir, GUI *appGUI) { return restore_from_dir(source_dir, "", appGUI); } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/contacts_preferences_gui.c0000664000175000017500000004527513066543472015442 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "contacts.h" #include "contacts_preferences_gui.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils_gui.h" #ifdef CONTACTS_ENABLED /* ========================================================================== */ static void checkbutton_clicked_cb (GtkToggleButton *togglebutton, gint *option) { *option = gtk_toggle_button_get_active (togglebutton); } /* ========================================================================== */ static void contacts_photo_size_changed_cb (GtkComboBox *widget, GUI *appGUI) { gint sizes[] = { PHOTO_SMALL, PHOTO_MEDIUM, PHOTO_LARGE }; gint i; i = gtk_combo_box_get_active (widget); config.photo_width = sizes[i % 3]; g_signal_emit_by_name (appGUI->cnt->contacts_list_selection, "changed"); } /* ========================================================================== */ static void contact_link_color_changed_cb (GtkColorChooser *widget, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (widget, &color); utl_gui_convert_color_to_string(&color, config.contact_link_color); g_object_set (G_OBJECT (appGUI->gui_url_tag), "foreground-gdk", &color, NULL); g_signal_emit_by_name (G_OBJECT (appGUI->cnt->contacts_list_selection), "changed"); } /* ========================================================================== */ static void contact_tag_color_changed_cb (GtkColorChooser *widget, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (widget, &color); utl_gui_convert_color_to_string (&color, config.contact_tag_color); g_signal_emit_by_name (appGUI->cnt->contacts_list_selection, "changed"); } /* ========================================================================== */ static void cn_font_size_changed_cb (GtkSpinButton *spinbutton, GUI *appGUI) { config.contact_name_font_size = (gint) gtk_spin_button_get_value (spinbutton); g_signal_emit_by_name (G_OBJECT (appGUI->cnt->contacts_list_selection), "changed"); } static void ci_font_size_changed_cb (GtkSpinButton *spinbutton, GUI *appGUI) { config.contact_item_font_size = (gint) gtk_spin_button_get_value (spinbutton); #ifdef HAVE_LIBWEBKIT webkit_settings_set_default_font_size (webkit_web_view_get_settings(appGUI->cnt->html_webkitview), config.contact_item_font_size); #endif /* LIBWEBKIT */ g_signal_emit_by_name (G_OBJECT (appGUI->cnt->contacts_list_selection), "changed"); } /* ========================================================================== */ static void create_appearance_section (GtkWidget *appearance_vbox, GUI *appGUI) { GtkWidget *table, *colors_hbox, *fonts_hbox, *photo_hbox, *spinbutton; GtkWidget *label, *color_button, *combobox; GtkAdjustment *adjustment; GdkRGBA color; gint i = 0; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (appearance_vbox), table, FALSE, FALSE, 0); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_grid_set_row_spacing (GTK_GRID (table), 8); label = utl_gui_create_label ("%s:", _("Colors")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); colors_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), colors_hbox, 1, i, 3, 1); color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Color of contact tags")); gdk_rgba_parse (&color, config.contact_tag_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (contact_tag_color_changed_cb), appGUI); appGUI->opt->contact_tag_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Color of links")); gdk_rgba_parse (&color, config.contact_link_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (contact_link_color_changed_cb), appGUI); appGUI->opt->contact_link_color_picker = color_button; i++; label = utl_gui_create_label ("%s:", _("Font size")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); fonts_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), fonts_hbox, 1, i, 3, 1); adjustment = gtk_adjustment_new (0, 8, 48, 1, 10, 0); spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 0); if (config.enable_tooltips) gtk_widget_set_tooltip_text (spinbutton, _("Name font size")); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton), config.contact_name_font_size); gtk_box_pack_start (GTK_BOX (fonts_hbox), spinbutton, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (spinbutton), "value-changed", G_CALLBACK (cn_font_size_changed_cb), appGUI); appGUI->opt->cn_font_size_spinbutton = spinbutton; adjustment = gtk_adjustment_new (0, 8, 48, 1, 10, 0); spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 0); if (config.enable_tooltips) gtk_widget_set_tooltip_text (spinbutton, _("Item font size")); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton), config.contact_item_font_size); gtk_box_pack_start (GTK_BOX (fonts_hbox), spinbutton, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (spinbutton), "value-changed", G_CALLBACK (ci_font_size_changed_cb), appGUI); appGUI->opt->ci_font_size_spinbutton = spinbutton; i++; label = utl_gui_create_label ("%s:", _("Photo size")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); photo_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), photo_hbox, 1, i, 3, 1); combobox = gtk_combo_box_text_new (); gtk_box_pack_start (GTK_BOX (photo_hbox), combobox, FALSE, FALSE, 0); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Small")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Medium")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Large")); appGUI->opt->contacts_photo_size_combobox = combobox; g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (contacts_photo_size_changed_cb), appGUI); if (config.photo_width == PHOTO_LARGE) { gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 2); } else if (config.photo_width == PHOTO_MEDIUM) { gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 1); } else { gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0); } } /* ========================================================================== */ static void contacts_hide_group_column_changed_cb (GtkToggleButton *widget, GUI *appGUI) { config.hide_group_column = gtk_toggle_button_get_active (widget); gtk_tree_view_column_set_visible (appGUI->cnt->contacts_columns[COLUMN_GROUP], !config.hide_group_column); set_contacts_columns_width (appGUI); } /* ========================================================================== */ static void maps_provider_changed_cb (GtkComboBox *widget, GUI *appGUI) { config.maps_provider = gtk_combo_box_get_active (widget); } /* ========================================================================== */ static void create_miscellaneous_section (GtkWidget *miscellaneous_vbox, GUI *appGUI) { GtkWidget *checkbutton; GtkWidget *maps_hbox; GtkWidget *label; GtkWidget *combobox; checkbutton = gtk_check_button_new_with_mnemonic (_("Hide group column")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.hide_group_column); gtk_box_pack_start (GTK_BOX (miscellaneous_vbox), checkbutton, TRUE, TRUE, 4); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (contacts_hide_group_column_changed_cb), appGUI); appGUI->opt->contacts_hide_group_column_checkbutton = checkbutton; maps_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (miscellaneous_vbox), maps_hbox, TRUE, TRUE, 4); label = utl_gui_create_label ("%s:", _("Maps provider")); gtk_box_pack_start (GTK_BOX (maps_hbox), label, FALSE, FALSE, 0); combobox = gtk_combo_box_text_new (); gtk_box_pack_start (GTK_BOX (maps_hbox), combobox, FALSE, FALSE, 0); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Google"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "Bing"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, "OpenStreetMap"); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (maps_provider_changed_cb), appGUI); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.maps_provider); } /* ========================================================================== */ static void contacts_group_remove_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->contacts_group_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL (appGUI->opt->contacts_group_store), &iter, path); gtk_list_store_remove (appGUI->opt->contacts_group_store, &iter); gtk_tree_path_free (path); } } /* ========================================================================== */ static void contacts_group_cell_edited_cb (GtkCellRendererText *renderer, gchar *path, gchar *new_text, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (g_ascii_strcasecmp (new_text, "") != 0) { model = gtk_tree_view_get_model (GTK_TREE_VIEW (appGUI->opt->contacts_group_treeview)); if (gtk_tree_model_get_iter_from_string (model, &iter, path)) gtk_list_store_set (appGUI->opt->contacts_group_store, &iter, 0, new_text, -1); } } /* ========================================================================== */ static void contacts_group_add_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeIter iter; const gchar *category_name; gchar *item; gint i = 0; category_name = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->contacts_group_entry)); if (!strlen (category_name)) return; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->contacts_group_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->contacts_group_store), &iter, 0, &item, -1); if (!strcmp (category_name, item)) { g_free (item); return; } g_free (item); } gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->contacts_group_store), &iter, NULL, 0); gtk_list_store_append (appGUI->opt->contacts_group_store, &iter); gtk_list_store_set (appGUI->opt->contacts_group_store, &iter, 0, category_name, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->contacts_group_entry), ""); gtk_widget_set_sensitive (appGUI->opt->contacts_group_add_button, FALSE); } /* ========================================================================== */ static void contacts_group_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_widget_set_sensitive (appGUI->opt->contacts_group_remove_button, TRUE); else gtk_widget_set_sensitive (appGUI->opt->contacts_group_remove_button, FALSE); } /* ========================================================================== */ static gint contacts_group_entry_key_release_cb (GtkEntry *widget, GdkEventKey *event, GUI *appGUI) { gboolean state = FALSE; if (strlen (gtk_entry_get_text (widget))) state = TRUE; gtk_widget_set_sensitive (appGUI->opt->contacts_group_add_button, state); if (event->keyval == GDK_KEY_Return) { if (state) contacts_group_add_cb (NULL, appGUI); return TRUE; } return FALSE; } /* ========================================================================== */ static void create_groups_section (GtkWidget *groups_vbox, GUI *appGUI) { GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *table, *scrolledwindow, *treeview; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (groups_vbox), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 8); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); appGUI->opt->contacts_group_entry = gtk_entry_new (); gtk_widget_set_hexpand(appGUI->opt->contacts_group_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->contacts_group_entry, 0, 3, 1, 1); g_signal_connect (G_OBJECT (appGUI->opt->contacts_group_entry), "key_release_event", G_CALLBACK (contacts_group_entry_key_release_cb), appGUI); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW (scrolledwindow), 80); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, 0, 3, 3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->opt->contacts_group_store)); gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview); gtk_container_set_border_width (GTK_CONTAINER (treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); appGUI->opt->contacts_group_treeview = treeview; appGUI->opt->contacts_group_select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (appGUI->opt->contacts_group_select), "changed", G_CALLBACK (contacts_group_selected_cb), appGUI); renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, "editable-set", TRUE, NULL); g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (contacts_group_cell_edited_cb), appGUI); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); appGUI->opt->contacts_group_add_button = gtk_button_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (appGUI->opt->contacts_group_add_button, FALSE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->contacts_group_add_button, 1, 3, 1, 1); g_signal_connect (appGUI->opt->contacts_group_add_button, "clicked", G_CALLBACK (contacts_group_add_cb), appGUI); appGUI->opt->contacts_group_remove_button = gtk_button_new_from_icon_name ("list-remove", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (appGUI->opt->contacts_group_remove_button, FALSE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->contacts_group_remove_button, 2, 3, 1, 1); g_signal_connect (appGUI->opt->contacts_group_remove_button, "clicked", G_CALLBACK (contacts_group_remove_cb), appGUI); } /* ========================================================================== */ static void create_visible_columns_section (GtkWidget *visible_columns_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (visible_columns_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 8); checkbutton = gtk_check_button_new_with_mnemonic (_("Age")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.cnt_visible_age_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.cnt_visible_age_column)); appGUI->opt->vc_age_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Birthday date")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.cnt_visible_birthday_date_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 1, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.cnt_visible_birthday_date_column)); appGUI->opt->vc_birthday_date_checkbutton = checkbutton; checkbutton = gtk_check_button_new_with_mnemonic (_("Zodiac sign")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.cnt_visible_zodiac_sign_column); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 2, 0, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (checkbutton_clicked_cb), &(config.cnt_visible_zodiac_sign_column)); appGUI->opt->vc_zodiac_sign_checkbutton = checkbutton; } /* ========================================================================== */ GtkWidget * cnt_create_preferences_page (GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox_top, *vbox_icon, *vbox, *scrolledwindow; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), BORDER_WIDTH); scrolledwindow = utl_gui_insert_in_scrolled_window (vbox_top, GTK_SHADOW_ETCHED_IN); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 2); vbox_icon = utl_gui_create_icon_with_label (OSMO_STOCK_CONTACTS, _("Contacts")); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Appearance")); create_appearance_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Miscellaneous")); create_miscellaneous_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Groups")); create_groups_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Visible columns in birthday browser")); create_visible_columns_section (vbox, appGUI); gtk_tree_view_column_set_visible (appGUI->cnt->contacts_columns[COLUMN_GROUP], !config.hide_group_column); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow, vbox_icon); gtk_widget_show_all (scrolledwindow); return scrolledwindow; } /* ========================================================================== */ #endif /* CONTACTS_ENABLED */ osmo-0.4.2/src/calendar_timeline.h0000664000175000017500000000201013066543472014017 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_INSERT_TIMELINE_H #define _CALENDAR_INSERT_TIMELINE_H #include "utils_gui.h" void calendar_create_insert_timeline_window (GUI *appGUI); #endif /* _CALENDAR_INSERT_TIMELINE_H */ osmo-0.4.2/src/main.c0000664000175000017500000003420613110234475011301 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "gui.h" #include "calendar.h" #include "calendar_utils.h" #include "utils.h" #include "utils_date.h" #include "utils_gui.h" #include "i18n.h" #include "check_events.h" #include "options_prefs.h" #include "contacts.h" #ifdef BACKUP_SUPPORT #include "backup.h" #endif /* BACKUP_SUPPORT */ #define RUN_FLAG_FILE "lock" #define OLD_CONFIG_DIRNAME ".osmo" #ifdef HAVE_LIBWEBKIT #define MAX_STYLESHEET_SIZE 1024*1024 #endif /* HAVE_LIBWEBKIT */ static gboolean migrate_to_xdg_dirs(gchar *user_config, GUI *appGUI); static gboolean extract_command_line_args(GOptionEntry *options, gint *argc, gchar ***argv, GUI *appGUI); #ifdef HAVE_LIBWEBKIT static gchar* load_stylesheet(const gchar* file); #endif /* HAVE_LIBWEBKIT */ /*------------------------------------------------------------------------------*/ int main(int argc, char **argv) { GUI *appGUI = NULL; CALENDAR *cal = NULL; #ifdef TASKS_ENABLED TASKS *tsk = NULL; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED CONTACTS *cnt = NULL; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED NOTES *nte = NULL; #endif /* NOTES_ENABLED */ OPTIONS *opt = NULL; GtkWidget *info_dialog; gchar tmpbuf[BUFFER_SIZE]; gint response = -1; #ifndef WIN32 struct flock *s_lock = NULL; #endif /* WIN32 */ int fhandle = 0; gchar* output_codeset = NULL; gboolean cmd_calendar = FALSE; gboolean cmd_check_events = FALSE; gint cmd_check_ndays_events = 0; gchar *cmd_cfg_path = NULL; #ifdef CONTACTS_ENABLED gchar *cmd_mutt_query = NULL; #endif /* CONTACTS_ENABLED */ #ifdef HAVE_LIBWEBKIT gchar *cmd_stylesheet_file = NULL; #endif /* HAVE_LIBWEBKIT */ GOptionEntry cmd_options[] = { { "calendar", 'c', 0, G_OPTION_ARG_NONE, &cmd_calendar, N_("Show small calendar window"), NULL }, { "check", 'e', 0, G_OPTION_ARG_NONE, &cmd_check_events, N_("Check for events since last run"), NULL }, { "days", 'd', 0, G_OPTION_ARG_INT, &cmd_check_ndays_events, N_("Number of days to check forward for events (default: 0)"), NULL }, { "config", 's', 0, G_OPTION_ARG_STRING, &cmd_cfg_path, N_("Set absolute path for settings and data files"), "STRING" }, #ifdef CONTACTS_ENABLED { "mutt-query", 'q', 0, G_OPTION_ARG_STRING, &cmd_mutt_query, N_("Match contacts with given string"), "STRING" }, #endif /* CONTACTS_ENABLED */ #ifdef HAVE_LIBWEBKIT { "html-stylesheet", 0, 0, G_OPTION_ARG_STRING, &cmd_stylesheet_file, N_("HTML renderer stylesheet file"), "STRING" }, #endif /* HAVE_LIBWEBKIT */ { NULL } }; appGUI = g_new0 (GUI, 1); g_return_val_if_fail (appGUI != NULL, -1); cal = g_new0 (CALENDAR, 1); g_return_val_if_fail (cal != NULL, -1); #ifdef TASKS_ENABLED tsk = g_new0 (TASKS, 1); g_return_val_if_fail (tsk != NULL, -1); #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED cnt = g_new0 (CONTACTS, 1); g_return_val_if_fail (cnt != NULL, -1); #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED nte = g_new0 (NOTES, 1); g_return_val_if_fail (nte != NULL, -1); #endif /* NOTES_ENABLED */ opt = g_new0 (OPTIONS, 1); g_return_val_if_fail (opt != NULL, -1); /* register modules */ appGUI->cal = cal; #ifdef TASKS_ENABLED appGUI->tsk = tsk; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED appGUI->cnt = cnt; #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED appGUI->nte = nte; #endif /* NOTES_ENABLED */ appGUI->opt = opt; appGUI->run_date = utl_date_get_current_julian (); appGUI->run_time = utl_time_get_current_seconds (); appGUI->key_counter = 0; /* default values */ appGUI->hovering_over_link = FALSE; appGUI->hand_cursor = NULL; appGUI->regular_cursor = NULL; appGUI->gui_url_tag = NULL; appGUI->trayicon_popup_menu = NULL; appGUI->calendar_only = FALSE; appGUI->cal->datecal_bio = FALSE; appGUI->check_events = FALSE; appGUI->save_status = 0; appGUI->print_font_size = 10; g_sprintf (appGUI->version, "%02d%02d%02d", atoi(VERSION_MAJOR), atoi(VERSION_MINOR), atoi(VERSION_MICRO)); appGUI->cal->last_selected_year = -1; appGUI->cal->date = utl_date_new_current (); appGUI->about_links_list = NULL; #ifdef TASKS_ENABLED appGUI->tsk->next_id = 1; appGUI->tsk->tasks_list_store = NULL; appGUI->tsk->notifications = NULL; appGUI->tsk->notifications_enable = FALSE; #endif /* TASKS_ENABLED */ #ifdef CONTACTS_ENABLED appGUI->cnt->export_button = NULL; appGUI->cnt->output_file_entry = NULL; appGUI->cnt->write_flag = TRUE; #endif /* CONTACTS_ENABLED */ if (!(output_codeset = bind_textdomain_codeset(PACKAGE, NULL))) { output_codeset = g_strdup("UTF-8"); } else { output_codeset = g_strdup(output_codeset); } setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); if (bind_textdomain_codeset(PACKAGE, output_codeset) == NULL) { fprintf(stderr, "Error setting gettext output codeset to %s\n", output_codeset); g_free (output_codeset); goto finish; } textdomain (PACKAGE); g_free (output_codeset); if (extract_command_line_args(cmd_options, &argc, &argv, appGUI) == FALSE) { goto finish; } appGUI->calendar_only = cmd_calendar; appGUI->check_events = cmd_check_events; appGUI->check_ndays_events = cmd_check_ndays_events; if(cmd_cfg_path) { fprintf(stderr, "%s\n", _("The user config path option is deprecated. Use XDG environment variables instead.")); } if(migrate_to_xdg_dirs(cmd_cfg_path, appGUI) == FALSE) { goto finish; } if (prefs_get_config_filename (CONFIG_FILENAME, appGUI) == NULL) { fprintf(stderr, "%s\n", _("ERROR: Cannot create config files")); goto finish; } #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) backup_restore_run (appGUI); #endif /* BACKUP_SUPPORT & HAVE_LIBGRINGOTTS */ #ifndef WIN32 s_lock = g_new0 (struct flock, 1); s_lock->l_type = F_WRLCK; s_lock->l_whence = SEEK_SET; s_lock->l_start = 0; s_lock->l_len = 0; #endif /* WIN32 */ prefs_read_config (appGUI); gtk_init (&argc, &argv); #ifdef CONTACTS_ENABLED if (cmd_mutt_query) { query (appGUI, cmd_mutt_query); goto finish; } #endif /* CONTACTS_ENABLED */ if (appGUI->calendar_only == FALSE) { close(creat(prefs_get_runtime_filename (RUN_FLAG_FILE, appGUI), S_IRUSR | S_IWUSR)); /* create lock file */ fhandle = open(prefs_get_runtime_filename (RUN_FLAG_FILE, appGUI), O_RDWR); #ifndef WIN32 if (fhandle) { if (fcntl(fhandle, F_SETLK, s_lock) == -1) { close (fhandle); g_snprintf (tmpbuf, BUFFER_SIZE, "%s %s\n\n%s", _("Another copy of OSMO is already running."), _("Simultaneously use two or more copies of OSMO can be a cause of data loss."), _("Do you really want to continue?")); info_dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW_TOPLEVEL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, tmpbuf, NULL); gtk_window_set_type_hint (GTK_WINDOW (info_dialog), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_skip_pager_hint(GTK_WINDOW(info_dialog), TRUE); gtk_window_set_skip_taskbar_hint(GTK_WINDOW(info_dialog), TRUE); gtk_window_set_keep_above(GTK_WINDOW(info_dialog), TRUE); gtk_window_set_title(GTK_WINDOW(info_dialog), _("Warning")); gtk_window_set_position(GTK_WINDOW(info_dialog), GTK_WIN_POS_CENTER); gtk_widget_show (info_dialog); response = gtk_dialog_run(GTK_DIALOG(info_dialog)); gtk_widget_destroy(info_dialog); if (response == GTK_RESPONSE_NO || response == GTK_RESPONSE_DELETE_EVENT) { goto finish; } } } #endif /* WIN32 */ } #ifdef HAVE_LIBNOTIFY #ifdef TASKS_ENABLED notify_init("Osmo notification"); #endif /* TASKS_ENABLED */ #endif /* HAVE_LIBNOTIFY */ if (appGUI->calendar_only != TRUE) { /* setup timer at 1000ms (1s) interval */ appGUI->timer = g_timeout_add (1000, time_handler, appGUI); } config.run_counter++; #ifndef REV g_set_application_name ("Osmo " VERSION_MAJOR "." VERSION_MINOR "." VERSION_MICRO); #else g_set_application_name ("Osmo (development)"); #endif #ifdef HAVE_LIBWEBKIT if(cmd_stylesheet_file) { appGUI->stylesheet = load_stylesheet(cmd_stylesheet_file); } #endif /* HAVE_LIBWEBKIT */ gtk_window_set_default_icon_name ("osmo"); if (gui_create_window (appGUI) == TRUE) { gtk_main (); } if (appGUI->calendar_only == FALSE) { config.lastrun_date = utl_date_get_current_julian (); config.lastrun_time = utl_time_get_current_seconds (); } if (appGUI->check_events == FALSE) { prefs_write_config (appGUI); } if (fhandle && appGUI->calendar_only == FALSE) { #ifndef WIN32 s_lock->l_type = F_UNLCK; fcntl(fhandle, F_SETLK, s_lock); #endif /* WIN32 */ close (fhandle); } finish: g_date_free (appGUI->cal->date); utl_gui_url_remove_links (&appGUI->about_links_list, NULL); if (appGUI->hand_cursor != NULL) { g_object_unref (appGUI->hand_cursor); g_object_unref (appGUI->regular_cursor); } g_free (opt); #ifdef NOTES_ENABLED g_free (nte); #endif /* NOTES_ENABLED */ #ifdef CONTACTS_ENABLED g_free (cnt); #endif /* CONTACTS_ENABLED */ #ifdef TASKS_ENABLED g_free (tsk); #endif /* TASKS_ENABLED */ #ifdef HAVE_LIBWEBKIT g_free(appGUI->stylesheet); #endif /* HAVE_LIBWEBKIT */ g_free (cal); g_free (appGUI); g_free(cmd_cfg_path); g_free(cmd_mutt_query); g_free(cmd_stylesheet_file); #ifndef WIN32 g_free (s_lock); #endif /* WIN32 */ return 0; } /*------------------------------------------------------------------------------*/ /* This is a temporary migration from the old Osmo .osmo directory to */ /* XDG directories. DELETE IT after the migration support is no longer needed. */ /*------------------------------------------------------------------------------*/ gchar* get_old_config_dir (gchar *user_config, GUI *appGUI) { static gchar dirname[PATH_MAX]; if (user_config == NULL) { #if defined(CONFIG_PATH) && defined(CONFIG_DIR) g_snprintf (dirname, PATH_MAX, "%s%c%s", CONFIG_PATH, G_DIR_SEPARATOR, CONFIG_DIR); #elif defined(CONFIG_DIR) g_snprintf (dirname, PATH_MAX, "%s%c%s", g_get_home_dir(), G_DIR_SEPARATOR, CONFIG_DIR); #elif defined(CONFIG_PATH) g_snprintf (dirname, PATH_MAX, "%s%c%s", CONFIG_PATH, G_DIR_SEPARATOR, OLD_CONFIG_DIRNAME); #else g_snprintf (dirname, PATH_MAX, "%s%c%s", g_get_home_dir(), G_DIR_SEPARATOR, OLD_CONFIG_DIRNAME); #endif } else { g_strlcpy (dirname, user_config, PATH_MAX); } return dirname; } static gboolean migrate_to_xdg_dirs(gchar *user_config, GUI *appGUI) { gchar *config = prefs_get_config_filename(CONFIG_FILENAME, appGUI); if (!g_file_test(config, G_FILE_TEST_EXISTS)) { gchar *old_dirname = get_old_config_dir(user_config, appGUI); if (g_file_test(old_dirname, G_FILE_TEST_EXISTS)) { fprintf(stderr, _("The old Osmo config directory %s is found. " "The config files and data will be copied to XDG compatible directories. " "Delete the old config directory after a successful migration.\n"), old_dirname); return prefs_restore(old_dirname, appGUI); } } return TRUE; } /*------------------------------------------------------------------------------*/ static gboolean extract_command_line_args(GOptionEntry *options, gint *argc, gchar ***argv, GUI *appGUI) { GOptionContext *cmd_context; gchar *program_summary; GError *err = NULL; program_summary = g_strdup_printf(N_("OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n\n" "Configuration directory = %s\n" "Data directory = %s"), VERSION, prefs_get_config_filename("", appGUI), prefs_get_data_filename("", appGUI)); cmd_context = g_option_context_new(NULL); g_option_context_set_translation_domain(cmd_context, TRANSLATION_DOMAIN); g_option_context_set_summary(cmd_context, program_summary); g_free(program_summary); g_option_context_add_main_entries(cmd_context, options, TRANSLATION_DOMAIN); if (g_option_context_parse(cmd_context, argc, argv, &err) == FALSE) { fprintf(stderr, _("Failed to parse the command line arguments %s.\n"), err->message); g_option_context_free(cmd_context); g_error_free (err); return FALSE; } g_option_context_free(cmd_context); return TRUE; } /*------------------------------------------------------------------------------*/ #ifdef HAVE_LIBWEBKIT static gchar* load_stylesheet(const gchar* file) { GStatBuf st; gchar *content; g_return_val_if_fail(g_stat(file, &st) == 0, NULL); if (st.st_size > MAX_STYLESHEET_SIZE) { fprintf(stderr, _("Stylesheet file is too large. Max size is %d.\n"), MAX_STYLESHEET_SIZE); return NULL; } g_return_val_if_fail(g_file_get_contents(file, &content, NULL, NULL), NULL); return content; } /*------------------------------------------------------------------------------*/ #endif /* HAVE_LIBWEBKIT */ osmo-0.4.2/src/utils_gui.h0000664000175000017500000001302413161167413012364 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _UTILS_GUI_H #define _UTILS_GUI_H #include "gui.h" typedef struct { GUI *appGUI; gchar *config; GtkWidget *entry; PangoFontDescription **font; GtkWidget *widget; gboolean save; } FONT_SEL; enum { SW_MOVE_UP = 0, SW_MOVE_DOWN }; #define VBOX_SPACING 8 #define HBOX_SPACING 8 #define ALIGNMENT_PADDING_TOP 4 #define ALIGNMENT_PADDING_RIGHT 4 #define ALIGNMENT_PADDING_BOTTOM 4 #define ALIGNMENT_PADDING_LEFT 12 #define CHECKBOX_PADDING 0 #define WINDOW_BORDER 8 #define BORDER_WIDTH 8 #define COLOR_BG_OK "#fff77a" #define COLOR_BG_FAIL "#ff7770" #define TAG (0xe000) GtkWidget * utl_gui_create_label (const gchar *format, const gchar *name); GtkWidget * utl_gui_create_window (const gchar *name, gint width, gint height, GUI *appGUI); GtkWidget * utl_gui_create_vbox_in_frame (GtkWidget *container, const gchar *name); GtkWidget * utl_gui_create_hbox_in_frame (GtkWidget *container, const gchar *name); GtkWidget * utl_gui_create_icon_with_label (const gchar *icon_name, const gchar *label_str); GtkWidget * utl_gui_insert_in_scrolled_window (GtkWidget *widget, GtkShadowType type); void utl_gui_font_select_cb (GtkWidget *widget, gpointer user_data); gint utl_gui_get_sw_vscrollbar_width (GtkWidget *scrolled_window); void utl_gui_sw_vscrollbar_move_position (GtkWidget *scrolled_window, gint direction); gint utl_gui_get_column_position (GtkTreeViewColumn *column, GtkTreeView *treeview, gint M, GUI *appGUI); gint utl_gui_get_combobox_items (GtkComboBox *combo_box); void utl_gui_create_category_combobox (GtkComboBox *combo_box, GtkListStore *store, gboolean none); gchar* utl_gui_text_buffer_get_text_with_tags (GtkTextBuffer *buffer); void utl_gui_text_buffer_set_text_with_tags (GtkTextBuffer *buffer, const gchar *text, gboolean clear); void utl_gui_text_buffer_toggle_tags (GtkTextBuffer *buffer, const gchar *tag_name); void utl_gui_text_buffer_remove_tags (GtkTextBuffer *buffer); gchar * utl_gui_text_strip_tags (gchar *text); void utl_gui_clear_text_buffer (GtkTextBuffer *buffer, GtkTextIter *iter); void utl_gui_change_bg_widget_state (GtkWidget *widget, gchar *color_str, GUI *appGUI); GdkPixbuf* utl_gui_create_color_swatch (gchar *color); void utl_gui_update_command_status (GtkEditable *editable, GtkWidget *icon_widget, GUI *appGUI); gint utl_gui_create_dialog (gint dialog_type, gchar *message, GtkWindow *parent); GtkWidget * utl_gui_create_save_file_dialog (const gchar *title, GtkWindow *parent); GtkWidget * utl_gui_create_open_file_dialog (const gchar *title, GtkWindow *parent); gint utl_gui_check_overwrite_file (gchar *filename, GtkWidget *window, GUI *appGUI); gint utl_gui_list_store_get_text_index (GtkListStore *store, gchar *text); GtkWidget* utl_gui_icon_label_radio_button (gchar *label, const gchar *icon_name, GtkIconSize size); void utl_gui_url_initialize (GUI *appGUI); void utl_gui_url_setup (GSList **links_list, gint *link_index, GtkWidget *textview, GUI *appGUI); void utl_gui_url_insert_link (GSList **links_list, gint *link_index, GtkWidget *textview, GtkTextIter *iter, gchar *color, gchar *font, gchar *text, gboolean center, GUI *appGUI); void utl_gui_url_remove_links (GSList **links_list, gint *link_index); void utl_gui_foreach_selected (GtkTreeSelection *selection, GtkTreeModel *model, GFunc foreach_function, gpointer user_data); GtkTreeIter utl_gui_get_first_selection_iter (GtkTreeSelection *selection, GtkTreeModel **model); void utl_gui_convert_color_to_string (GdkRGBA *color, gchar *string); void utl_gui_convert_color_alpha_to_string (GdkRGBA *color, gchar *string, gint *alpha); #ifdef HAVE_GSPELL GspellTextView* utl_gui_create_spell_check_textview (GtkTextView *textview, gboolean enable_by_default); void utl_gui_set_enable_spell_check (GspellTextView* text, gboolean enable); #endif /* HAVE_GSPELL */ #endif /* _UTILS_GUI_H */ osmo-0.4.2/src/backup.c0000664000175000017500000004477213071620673011640 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 #include #include #include #ifndef WIN32 #include #endif /* WIN32 */ #include "i18n.h" #include "backup.h" #include "gui.h" #include "notes_preferences_gui.h" #include "utils.h" #include "utils_gui.h" #include "options_prefs.h" #if defined(BACKUP_SUPPORT) && defined(HAVE_LIBGRINGOTTS) #include #include #include /*------------------------------------------------------------------------------*/ static struct archive * create_archive(const gchar *filename) { struct archive *archive; archive = archive_write_new(); archive_write_set_format_ustar(archive); if (archive_write_open_filename(archive, filename) != ARCHIVE_OK) { fprintf(stderr, "%s\n", archive_error_string(archive)); archive_write_free (archive); return NULL; } return archive; } static void close_archive(struct archive *archive) { archive_write_free (archive); } static void add_entry_to_archive(struct archive *archive, gchar *filename, gchar *archive_entry_name) { struct archive_entry *entry; struct stat st; gchar buff[8192]; gint fd; gint len; stat(filename, &st); entry = archive_entry_new(); archive_entry_copy_stat(entry, &st); archive_entry_set_pathname(entry, archive_entry_name); archive_write_header(archive, entry); fd = open(filename, O_RDONLY); len = read(fd, buff, sizeof (buff)); while (len > 0) { archive_write_data(archive, buff, len); len = read(fd, buff, sizeof (buff)); } close(fd); archive_entry_free(entry); } static void add_to_archive(gchar *from_dir, gchar *extension, gchar *prefix, struct archive *archive) { const gchar *item_name; GDir *dir_path = g_dir_open(from_dir, 0, NULL); g_return_if_fail(dir_path != NULL); while ((item_name = g_dir_read_name(dir_path)) != NULL) { gchar *source_filename = g_build_filename(from_dir, item_name, NULL); gchar *target_filename; if (!g_file_test(source_filename, G_FILE_TEST_IS_REGULAR)) { g_free(source_filename); continue; } if (!g_str_has_suffix(item_name, extension)) { g_free(source_filename); continue; } target_filename = g_build_filename(prefix, item_name, NULL); add_entry_to_archive(archive, source_filename, target_filename); g_free(source_filename); g_free(target_filename); } g_dir_close(dir_path); } /*------------------------------------------------------------------------------*/ static gint untar_archive (gchar *filename) { struct archive_entry *entry; struct archive *archive; archive = archive_read_new (); if ((archive_read_support_filter_all (archive) != ARCHIVE_OK) || (archive_read_support_format_all (archive) != ARCHIVE_OK) || (archive_read_open_filename (archive, filename, 8192) != ARCHIVE_OK)) { archive_read_free (archive); fprintf(stderr, "%s\n", archive_error_string(archive)); return archive_errno (archive); } while (archive_read_next_header (archive, &entry) == ARCHIVE_OK) archive_read_extract (archive, entry, ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM); archive_read_free (archive); return ARCHIVE_OK; } /*------------------------------------------------------------------------------*/ static void create_backup_file(const gchar *filename, const gchar *password, GUI *appGUI) { gchar *backup_filename; GRG_CTX context; GRG_KEY keyholder; gchar *contents; gchar *notes; gsize len; struct archive *archive; /* create backup file */ backup_filename = g_strdup(prefs_get_cache_filename("backup.dat")); archive = create_archive(backup_filename); if (!archive) { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot create backup!"), GTK_WINDOW(appGUI->main_window)); g_unlink(backup_filename); g_free(backup_filename); return; } /* add files to archive */ add_to_archive(prefs_get_config_dir(appGUI), CONFIG_FILENAME, "", archive); add_to_archive(prefs_get_data_dir(appGUI), "xml", "", archive); notes = g_build_filename(prefs_get_data_dir(appGUI), "notes", NULL); add_to_archive(notes, "osm", "notes", archive); g_free(notes); /* done writing backup */ close_archive(archive); if (g_file_get_contents(backup_filename, &contents, &len, NULL) == FALSE) { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot create backup!"), GTK_WINDOW(appGUI->main_window)); g_unlink(backup_filename); g_free(backup_filename); return; } context = grg_context_initialize_defaults((unsigned char*) "BCK"); keyholder = grg_key_gen((unsigned char*) password, -1); if (keyholder == NULL || context == NULL) { utl_gui_create_dialog(GTK_MESSAGE_ERROR, _("Cannot create backup!"), GTK_WINDOW(appGUI->main_window)); g_unlink(backup_filename); g_free(backup_filename); return; } grg_ctx_set_crypt_algo(context, get_enc_algorithm_value()); grg_ctx_set_hash_algo(context, get_enc_hashing_value()); grg_ctx_set_comp_algo(context, get_comp_algorithm_value()); grg_ctx_set_comp_ratio(context, get_comp_ratio_value()); grg_encrypt_file(context, keyholder, (unsigned char*) filename, (guchar *) contents, len); grg_free(context, contents, len); grg_key_free(context, keyholder); grg_context_free(context); /* clean up*/ g_unlink(backup_filename); g_free(backup_filename); } void backup_create (GUI *appGUI) { gint ret, p1len, p2len; gchar *filename, *password, *bpass1, *bpass2; gchar tmpbuf[BUFFER_SIZE]; GtkWidget *dialog, *passwd_dialog; GtkWidget *passwd_content, *vbox1, *frame, *label; GtkWidget *bck_p1_entry, *bck_p2_entry; /* select filename and password */ dialog = utl_gui_create_save_file_dialog (_("Save backup"), GTK_WINDOW(appGUI->main_window)); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), utl_add_timestamp_to_filename("osmobackup", "bck")); ret = gtk_dialog_run(GTK_DIALOG(dialog)); if (ret == GTK_RESPONSE_CANCEL || ret == GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(dialog); return; } filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)); gtk_widget_destroy(dialog); if (utl_gui_check_overwrite_file (filename, appGUI->main_window, appGUI) != 0) { return; } else { g_unlink (filename); } passwd_dialog = gtk_dialog_new_with_buttons (_("Password protection"), GTK_WINDOW(appGUI->main_window), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_position (GTK_WINDOW(passwd_dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW(passwd_dialog), 400, -1); gtk_dialog_set_default_response (GTK_DIALOG(passwd_dialog), GTK_RESPONSE_ACCEPT); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); passwd_content = gtk_dialog_get_content_area(GTK_DIALOG(passwd_dialog)); gtk_container_add(GTK_CONTAINER(passwd_content), vbox1); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); bck_p1_entry = gtk_entry_new (); gtk_widget_show (bck_p1_entry); gtk_container_add (GTK_CONTAINER (frame), bck_p1_entry); gtk_widget_set_margin_left(bck_p1_entry, 16); gtk_widget_set_margin_right(bck_p1_entry, 4); gtk_widget_set_margin_top(bck_p1_entry, 4); gtk_widget_set_margin_bottom(bck_p1_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (bck_p1_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (bck_p1_entry), FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); bck_p2_entry = gtk_entry_new (); gtk_widget_show (bck_p2_entry); gtk_container_add (GTK_CONTAINER (frame), bck_p2_entry); gtk_widget_set_margin_left(bck_p2_entry, 16); gtk_widget_set_margin_right(bck_p2_entry, 4); gtk_widget_set_margin_top(bck_p2_entry, 4); gtk_widget_set_margin_bottom(bck_p2_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (bck_p2_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (bck_p2_entry), FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Re-enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); while (1) { ret = gtk_dialog_run(GTK_DIALOG(passwd_dialog)); if (ret == GTK_RESPONSE_CANCEL || ret == GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(passwd_dialog); return; } bpass1 = g_strdup(gtk_entry_get_text(GTK_ENTRY(bck_p1_entry))); p1len = strlen(bpass1); bpass2 = g_strdup(gtk_entry_get_text(GTK_ENTRY(bck_p2_entry))); p2len = strlen(bpass2); if (p1len == 0 && p2len == 0) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Please enter the password"), GTK_WINDOW(passwd_dialog)); gtk_widget_grab_focus (bck_p1_entry); g_free(bpass1); g_free(bpass2); continue; } else if (p1len != p2len) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Passwords do not match!"), GTK_WINDOW(passwd_dialog)); gtk_widget_grab_focus (bck_p1_entry); g_free(bpass1); g_free(bpass2); continue; } if (g_utf8_collate (bpass1, bpass2) != 0) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Passwords do not match!"), GTK_WINDOW(passwd_dialog)); gtk_widget_grab_focus (bck_p1_entry); g_free(bpass1); g_free(bpass2); continue; } else { g_free(bpass1); g_free(bpass2); break; } } password = g_strdup(gtk_entry_get_text(GTK_ENTRY(bck_p1_entry))); gtk_widget_destroy(passwd_dialog); create_backup_file(filename, password, appGUI); g_free(filename); g_free(password); utl_gui_create_dialog (GTK_MESSAGE_INFO, _("Backup file saved successfully!"), GTK_WINDOW(appGUI->main_window)); } /*------------------------------------------------------------------------------*/ void backup_restore (GUI *appGUI) { gchar *filename, *tmp_filename; gint ret, tErr, passlen; GtkFileFilter *filter; GRG_CTX context; GRG_KEY keyholder; unsigned char *arch; long arch_len; gchar *contents, *password; gchar tmpbuf[BUFFER_SIZE]; GtkWidget *dialog, *passwd_dialog, *pass_entry; GtkWidget *passwd_content, *vbox1, *frame, *label; dialog = utl_gui_create_open_file_dialog (_("Open backup file"), GTK_WINDOW(appGUI->main_window)); filter = gtk_file_filter_new(); gtk_file_filter_add_pattern(filter, "*.[bB][cC][kK]"); gtk_file_filter_set_name(GTK_FILE_FILTER(filter), _("Osmo backup files (*.bck)")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter); ret = gtk_dialog_run(GTK_DIALOG(dialog)); if (ret == GTK_RESPONSE_CANCEL || ret == GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(dialog); return; } filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)); gtk_widget_destroy(dialog); tErr = -1; if (g_file_get_contents (filename, &contents, NULL, NULL) == TRUE) { if (contents[0] == 'B' && contents[1] == 'C' && contents[2] == 'K' && g_ascii_isalnum(contents[3])) { tErr = 0; } g_free (contents); } if (tErr == -1) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("This is not Osmo backup file"), GTK_WINDOW(appGUI->main_window)); g_free (filename); return; } passwd_dialog = gtk_dialog_new_with_buttons (_("Password protection"), GTK_WINDOW(appGUI->main_window), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_position (GTK_WINDOW(passwd_dialog), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_default_size (GTK_WINDOW(passwd_dialog), 400, -1); gtk_dialog_set_default_response (GTK_DIALOG(passwd_dialog), GTK_RESPONSE_ACCEPT); vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox1); passwd_content = gtk_dialog_get_content_area(GTK_DIALOG(passwd_dialog)); gtk_container_add(GTK_CONTAINER(passwd_content), vbox1); frame = gtk_frame_new (NULL); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); pass_entry = gtk_entry_new (); gtk_widget_show (pass_entry); gtk_container_add (GTK_CONTAINER (frame), pass_entry); gtk_widget_set_margin_left(pass_entry, 16); gtk_widget_set_margin_right(pass_entry, 4); gtk_widget_set_margin_top(pass_entry, 4); gtk_widget_set_margin_bottom(pass_entry, 4); gtk_entry_set_invisible_char (GTK_ENTRY (pass_entry), 8226); gtk_entry_set_visibility (GTK_ENTRY (pass_entry), FALSE); g_snprintf(tmpbuf, BUFFER_SIZE, "%s:", _("Enter password")); label = gtk_label_new (tmpbuf); gtk_widget_show (label); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); while (1) { ret = gtk_dialog_run(GTK_DIALOG(passwd_dialog)); if (ret == GTK_RESPONSE_CANCEL || ret == GTK_RESPONSE_DELETE_EVENT) { gtk_widget_destroy(passwd_dialog); g_free(filename); return; } password = g_strdup(gtk_entry_get_text(GTK_ENTRY(pass_entry))); passlen = strlen(password); if (passlen == 0) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Please enter the password"), GTK_WINDOW(passwd_dialog)); gtk_widget_grab_focus (pass_entry); g_free(password); continue; } else { break; } } gtk_widget_destroy(passwd_dialog); /* extracting encrypted data */ tmp_filename = g_strdup (prefs_get_cache_filename (BACKUP_TEMPLATE)); g_unlink (tmp_filename); context = grg_context_initialize_defaults ((unsigned char*) "BCK"); keyholder = grg_key_gen ((unsigned char*) password, -1); if (keyholder == NULL || context == NULL) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Cannot create backup!"), GTK_WINDOW(appGUI->main_window)); return; } grg_ctx_set_crypt_algo (context, get_enc_algorithm_value()); grg_ctx_set_hash_algo (context, get_enc_hashing_value()); grg_ctx_set_comp_algo (context, get_comp_algorithm_value()); grg_ctx_set_comp_ratio (context, get_comp_ratio_value()); ret = grg_decrypt_file (context, keyholder, (unsigned char *) filename, &arch, &arch_len); if (ret != GRG_OK) { utl_gui_create_dialog (GTK_MESSAGE_ERROR, _("Incorrect password!"), GTK_WINDOW(appGUI->main_window)); grg_key_free (context, keyholder); grg_context_free (context); g_free(password); g_free(filename); g_free(tmp_filename); return; } tErr = -1; g_snprintf(tmpbuf, BUFFER_SIZE, "%s\n\n%s", _("All your data will be replaced with backup file content."), _("Are you sure?")); ret = utl_gui_create_dialog (GTK_MESSAGE_QUESTION, tmpbuf, GTK_WINDOW(appGUI->main_window)); if (ret == GTK_RESPONSE_YES) { /* save TAR file */ g_file_set_contents (tmp_filename, (gchar *) arch, arch_len, NULL); tErr = 0; } g_free (arch); grg_key_free (context, keyholder); grg_context_free (context); /* free strings */ g_free(password); g_free(filename); g_free(tmp_filename); if (!tErr) { g_snprintf(tmpbuf, BUFFER_SIZE, "%s", _("Osmo has to be restarted now...")); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW(appGUI->main_window)); gui_quit_osmo (appGUI); } } /*------------------------------------------------------------------------------*/ static void delete_dir(gchar *dir) { GDir *dir_fd = g_dir_open(dir, 0, NULL); if (dir_fd) { const gchar *child = g_dir_read_name(dir_fd); for (; child; child = g_dir_read_name(dir_fd)) { gchar *child_fullname = g_build_filename(dir, child, NULL); if (g_file_test(child_fullname, G_FILE_TEST_IS_DIR)) { delete_dir(child_fullname); } else { g_remove(child_fullname); } g_free(child_fullname); } g_remove(dir); } } void backup_restore_run (GUI *appGUI) { gchar *tmp_filename, *tmp_dirname, *home_dirname; /* is backup file available? */ tmp_filename = g_strdup (prefs_get_cache_filename (BACKUP_TEMPLATE)); if (g_file_test (tmp_filename, G_FILE_TEST_IS_REGULAR) == FALSE) { g_free (tmp_filename); return; } /* prepare and change to a temporary directory */ home_dirname = g_get_current_dir(); tmp_dirname = g_dir_make_tmp(NULL, NULL); if(!tmp_dirname) { g_free (tmp_filename); g_return_if_fail(tmp_dirname != NULL); } g_chdir (tmp_dirname); /* untar files */ untar_archive (tmp_filename); /* copy to the correct directories */ prefs_restore(tmp_dirname, appGUI); delete_dir(tmp_dirname); /* clean up */ g_chdir (home_dirname); g_free (home_dirname); g_free (tmp_dirname); g_unlink (tmp_filename); g_free (tmp_filename); } /*------------------------------------------------------------------------------*/ #endif /* BACKUP_SUPPORT && HAVE_LIBGRINGOTTS */ osmo-0.4.2/src/calendar_widget.h0000664000175000017500000002061213066543472013504 00000000000000/* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * GTK Calendar Widget * Copyright (C) 1998 Cesar Miquel and Shawn T. Amundson * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ /* * Some minor modifications and adaptation to OSMO - a handy personal * manager by pasp@users.sourceforge.net */ #ifndef _CALENDAR_WIDGET_H #define _CALENDAR_WIDGET_H #include #include G_BEGIN_DECLS /* Spacing around day/week headers and main area, inside those windows */ #define CALENDAR_MARGIN 0 /* Spacing around day/week headers and main area, outside those windows */ #define INNER_BORDER 2 /* Separation between day headers and main area */ #define CALENDAR_YSEP 4 /* Separation between week headers and main area */ #define CALENDAR_XSEP 4 #define DAY_XSEP 0 /* not really good for small calendar */ #define DAY_YSEP 0 /* not really good for small calendar */ #define SCROLL_DELAY_FACTOR 5 #define GUI_TYPE_CALENDAR (gui_calendar_get_type ()) #define GUI_CALENDAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GUI_TYPE_CALENDAR, GuiCalendar)) #define GUI_CALENDAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GUI_TYPE_CALENDAR, GuiCalendarClass)) #define GUI_IS_CALENDAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUI_TYPE_CALENDAR)) #define GUI_IS_CALENDAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GUI_TYPE_CALENDAR)) #define GUI_CALENDAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GUI_TYPE_CALENDAR, GuiCalendarClass)) typedef struct _GuiCalendar GuiCalendar; typedef struct _GuiCalendarClass GuiCalendarClass; typedef struct _GuiCalendarPrivate GuiCalendarPrivate; typedef enum { GUI_CALENDAR_SHOW_HEADING = 1 << 0, GUI_CALENDAR_SHOW_DAY_NAMES = 1 << 1, GUI_CALENDAR_NO_MONTH_CHANGE = 1 << 2, GUI_CALENDAR_SHOW_WEEK_NUMBERS = 1 << 3, GUI_CALENDAR_WEEK_START_MONDAY = 1 << 4 } GuiCalendarDisplayOptions; enum { ARROW_YEAR_LEFT, ARROW_YEAR_RIGHT, ARROW_MONTH_LEFT, ARROW_MONTH_RIGHT }; enum { MONTH_PREV, MONTH_CURRENT, MONTH_NEXT }; enum { MONTH_CHANGED_SIGNAL, DAY_SELECTED_SIGNAL, DAY_SELECTED_DOUBLE_CLICK_SIGNAL, PREV_MONTH_SIGNAL, NEXT_MONTH_SIGNAL, PREV_YEAR_SIGNAL, NEXT_YEAR_SIGNAL, LAST_SIGNAL }; enum { PROP_0, PROP_YEAR, PROP_MONTH, PROP_DAY, PROP_SHOW_HEADING, PROP_SHOW_DAY_NAMES, PROP_NO_MONTH_CHANGE, PROP_SHOW_WEEK_NUMBERS, PROP_WEEK_START_MONDAY, PROP_LAST }; enum { CURSOR_BLOCK = 0, CURSOR_FRAME }; enum { EVENT_MARKER_CIRCLE = 0, EVENT_MARKER_ELLIPSE, EVENT_MARKER_WAVE }; enum { TODAY_MARKER_ARROW = 0, TODAY_MARKER_FREEHAND_CIRCLE }; enum { TODAY_MARKER =0, EVENT_MARKER }; enum { DAY_NOTE_MARK =0, EVENT_MARK, BIRTHDAY_MARK }; enum { HEADER_BG_COLOR = 0, HEADER_FG_COLOR, WEEKEND_COLOR, SELECTOR_COLOR, EVENT_MARKER_COLOR, TODAY_MARKER_COLOR, BIRTHDAY_MARKER_COLOR, DAY_COLOR, PF_DAY_COLOR, BACKGROUND_COLOR }; struct _GuiCalendarPrivate { GdkWindow *header_win; GdkWindow *day_name_win; GdkWindow *main_win; GdkWindow *week_win; GdkWindow *arrow_win[4]; guint header_h; guint day_name_h; guint main_h; GtkStateFlags arrow_state[4]; guint arrow_width; guint max_month_width; guint max_year_width; guint day_width; guint week_width; guint min_day_width; guint max_day_char_width; guint max_day_char_ascent; guint max_day_char_descent; guint max_label_char_ascent; guint max_label_char_descent; guint max_week_char_width; /* flags */ guint year_before : 1; guint need_timer : 1; guint in_drag : 1; guint drag_highlight : 1; guint32 timer; gint click_child; gint week_start; gint drag_start_x; gint drag_start_y; }; #define GUI_CALENDAR_GET_PRIVATE(widget) (GUI_CALENDAR (widget)->priv) struct _GuiCalendar { GtkWidget widget; GtkStyle *header_style; GtkStyle *label_style; gint month; gint year; gint selected_day; gint day_month[6][7]; gint day[6][7]; /* day notes */ gint num_marked_dates; gint marked_date[31]; /* events */ gint event_num_marked_dates; gint event_marked_date[31]; /* birthdays */ gint birthday_num_marked_dates; gint birthday_marked_date[31]; GuiCalendarDisplayOptions display_flags; GdkRGBA marked_date_color[31]; GdkRGBA background_color; GdkRGBA header_bg_color; GdkRGBA header_fg_color; GdkRGBA weekend_color; GdkRGBA selector_color; GdkRGBA event_marker_color; GdkRGBA today_marker_color; GdkRGBA birthday_marker_color; GdkRGBA day_color; GdkRGBA pf_day_color; gunichar mark_sign; gint cursor_type; gint frame_cursor_thickness; gint event_marker_type; gint today_marker_type; gboolean enable_cursor; gint focus_row; gint focus_col; gint highlight_row; gint highlight_col; GuiCalendarPrivate *priv; gchar grow_space [32]; /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); }; struct _GuiCalendarClass { GtkWidgetClass parent_class; /* Signal handlers */ void (* month_changed) (GuiCalendar *calendar); void (* day_selected) (GuiCalendar *calendar); void (* day_selected_double_click) (GuiCalendar *calendar); void (* prev_month) (GuiCalendar *calendar); void (* next_month) (GuiCalendar *calendar); void (* prev_year) (GuiCalendar *calendar); void (* next_year) (GuiCalendar *calendar); }; GType gui_calendar_get_type (void) G_GNUC_CONST; GtkWidget* gui_calendar_new (void); gboolean gui_calendar_select_month (GuiCalendar *calendar, guint month, guint year); void gui_calendar_select_day (GuiCalendar *calendar, guint day); gboolean gui_calendar_mark_day (GuiCalendar *calendar, guint day, gint mark_type); gboolean gui_calendar_unmark_day (GuiCalendar *calendar, guint day, gint mark_type); void gui_calendar_clear_marks (GuiCalendar *calendar, gint mark_type); gboolean gui_calendar_set_day_color (GuiCalendar *calendar, guint day, gchar *color_str); void gui_calendar_set_display_options (GuiCalendar *calendar, GuiCalendarDisplayOptions flags); GuiCalendarDisplayOptions gui_calendar_get_display_options (GuiCalendar *calendar); void gui_calendar_get_date (GuiCalendar *calendar, guint *year, guint *month, guint *day); void gui_calendar_get_gdate (GuiCalendar *calendar, GDate *cdate); void gui_calendar_set_marker (GuiCalendar *calendar, gint marker_type, gint marker); void gui_calendar_set_day_note_marker_symbol (GuiCalendar *calendar, gchar *symbol); void gui_calendar_set_color (GuiCalendar *calendar, const gchar *color, gint alpha_value, gint color_type); void gui_calendar_enable_cursor (GuiCalendar *calendar, gboolean state); void gui_calendar_set_cursor_type (GuiCalendar *calendar, gint cursor_type); void gui_calendar_set_frame_cursor_thickness (GuiCalendar *calendar, gint thickness); G_END_DECLS #endif /* _CALENDAR_WIDGET_H */ osmo-0.4.2/src/vcf.h0000664000175000017500000000543213066543472011151 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2015 Tomasz Mąka * 2015 Piotr Mąka * * 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 VCF_H #define VCF_H #include #include #define VCF_TYPE_TEL_VOICE "voice" #define VCF_TYPE_TEL_FAX "fax" #define VCF_TYPE_TEL_CELL "cell" #define VCF_TYPE_HOME "home" #define VCF_TYPE_WORK "work" typedef struct vcf_writer vcf_writer; typedef void(vcf_writer_callback) (gchar const *buffer, gsize buffer_size, void *user_data); vcf_writer *vcf_create_writer(vcf_writer_callback *callback, void *user_data); void vcf_close_writer(vcf_writer *writer); void vcf_write_begin(vcf_writer *writer); void vcf_write_end(vcf_writer *writer); void vcf_write_property(vcf_writer *writer, gchar const *property_name); void vcf_write_FN(vcf_writer *writer, gchar const *first_name, gchar const *last_name); void vcf_write_N(vcf_writer *writer, gchar const *last_name, gchar const *first_name, gchar const *second_name); void vcf_write_NICKNAME(vcf_writer *writer, gchar const *nick_name); void vcf_write_BDAY(vcf_writer *writer, guint32 julian_day); void vcf_write_ADR(vcf_writer *writer, gchar const *type, gchar const *address, gchar const *city, gchar const *state, gchar const *post_code, gchar const *country); void vcf_write_ORG(vcf_writer *writer, gchar const *organization, gchar const *department); #define vcf_write_TEL(writer, number, pref, ...) { \ gchar const **types=(gchar const *[]){__VA_ARGS__, NULL}; \ vcf_write_TEL_internal(writer, number, pref, types); \ } void vcf_write_EMAIL(vcf_writer *writer, gchar const *email, gint pref); void vcf_write_URL(vcf_writer *writer, gchar const *url); void vcf_write_URL_pref(vcf_writer *writer, gchar const *url, gint pref); void vcf_write_IMPP(vcf_writer *writer, gchar const *url, gchar const *type); void vcf_write_NOTE(vcf_writer *writer, gchar const *note); /* Do not call the functions below directly, use the provided macros instead. */ void vcf_write_TEL_internal(vcf_writer *writer, gchar const *number, gint pref, gchar const **types); #endif /* VCF_H */ osmo-0.4.2/src/check_events.h0000664000175000017500000000344213066543472013033 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CHECK_EVENTS_H #define _CHECK_EVENTS_H #include "gui.h" #include "tasks.h" enum { CE_COLUMN_DATE = 0, CE_COLUMN_DATE_JULIAN, CE_COLUMN_EVENT_TYPE, CE_COLUMN_EVENT_LINE, CHECK_EVENTS_NUM_COLUMNS }; enum { NOTIFY_WARNING = 0, NOTIFY_ALARM }; #ifdef HAVE_LIBNOTIFY #ifdef TASKS_ENABLED typedef struct { guint id; gint type; NotifyNotification *notify; guint32 date; gint time; } TASK_NTF; #endif /* TASKS_ENABLED */ #endif /* HAVE_LIBNOTIFY */ void free_notifications_list (GUI *appGUI); gboolean time_handler (gpointer data); gboolean check_contacts (guint32 julian_day, GUI *appGUI); gboolean check_tasks_contacts (guint32 julian_day, GUI *appGUI); gboolean create_event_checker_window (GUI *appGUI); void change_task_notification (TASK_ITEM *item, GUI *appGUI); void delete_task_notification (guint id, GUI *appGUI); #endif /* _CHECK_EVENTS_H */ osmo-0.4.2/src/preferences_gui.h0000664000175000017500000000225213066543472013535 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 _PREFERENCES_GUI_H #define _PREFERENCES_GUI_H #include "gui.h" GtkWidget * opt_create_preferences_window (GUI *appGUI); void opt_hide_modules (gboolean cal, gboolean tsk, gboolean cnt, gboolean nte, gboolean options, GUI *appGUI); #endif /* _PREFERENCES_GUI_H */ osmo-0.4.2/src/notes.h0000664000175000017500000000421713066543472011523 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _NOTES_H #define _NOTES_H #include "gui.h" #define NOTES_NAME "osmo_notes" #define NOTES_ENTRIES_NAME "notes_entries" #define NOTES_CATEGORY_ENTRIES_NAME "category_entries" #define NOTES_DIRNAME "notes" #define NOTES_ENTRIES_FILENAME "notes_entries.xml" void notes_show_selector_editor (gint mode, GUI *appGUI); void gui_create_notes (GUI *appGUI); void update_notes_items (GUI *appGUI); void update_readonly_view (GUI *appGUI); void refresh_notes (GUI *appGUI); gboolean check_if_encrypted (gchar *filename, GUI *appGUI); void check_notes_type (GUI *appGUI); void store_note_columns_info (GUI *appGUI); void set_note_columns_width (GUI *appGUI); void editor_find_text_show_cb (GtkToolButton *toolbutton, gpointer data); void clear_text_attributes_cb (GtkToolButton *toolbutton, gpointer data); void editor_save_buffer_cb (GtkToolButton *toolbutton, gpointer data); void editor_close_cb (GtkToolButton *toolbutton, gpointer data); void open_url_links_cb (GtkToolButton *toolbutton, gpointer data); void text_info_cb (GtkToolButton *toolbutton, gpointer data); #endif /* _NOTES_H */ osmo-0.4.2/src/utils_date.c0000664000175000017500000002403513066543472012523 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "i18n.h" #include "utils.h" #include "utils_date.h" /*============================================================================*/ GDate * utl_date_new_current (void) { GDate *d = g_date_new (); g_date_set_time_t (d, time (NULL)); return d; } /*============================================================================*/ guint utl_date_get_current_day (void) { GDate *d = utl_date_new_current (); guint day = g_date_get_day (d); g_date_free (d); return day; } /*============================================================================*/ guint utl_date_get_current_month (void) { GDate *d = utl_date_new_current (); guint month = g_date_get_month (d); g_date_free (d); return month; } /*============================================================================*/ guint utl_date_get_current_year (void) { GDate *d = utl_date_new_current (); guint year = g_date_get_year (d); g_date_free (d); return year; } /*============================================================================*/ guint32 utl_date_get_current_julian (void) { GDate *d = utl_date_new_current (); guint32 julian = g_date_get_julian (d); g_date_free (d); return julian; } /*============================================================================*/ void utl_date_get_current_dmy (gint *day, gint *month, gint *year) { GDate *d = utl_date_new_current (); if (day != NULL) *day = g_date_get_day (d); if (month != NULL) *month = g_date_get_month (d); if (year != NULL) *year = g_date_get_year (d); g_date_free (d); } /*============================================================================*/ guint utl_date_get_days_in_month (const GDate *date) { g_return_val_if_fail (g_date_valid (date), 0); return g_date_get_days_in_month (g_date_get_month (date), g_date_get_year (date)); } /*============================================================================*/ gboolean utl_date_set_valid_day (GDate *date, gint day) { gint days = utl_date_get_days_in_month (date); if (day > days) { g_date_set_day (date, days); return TRUE; } g_date_set_day (date, day); return FALSE; } /*============================================================================*/ gboolean utl_date_set_valid_dmy (gint *day, gint month, gint year) { gint days = g_date_get_days_in_month (month, year); if (*day > days) { *day = days; return TRUE; } return FALSE; } /*============================================================================*/ void utl_date_diff (const GDate *date1, const GDate *date2, gint *day, gint *month, gint *year) { g_return_if_fail (g_date_valid (date1)); g_return_if_fail (g_date_valid (date2)); g_return_if_fail (g_date_compare (date1, date2) <= 0); *day = g_date_get_day (date2) - g_date_get_day (date1); *month = g_date_get_month (date2) - g_date_get_month (date1); *year = g_date_get_year (date2) - g_date_get_year (date1); if (*day < 0) { *day += utl_date_get_days_in_month (date1); *month -= 1; } if (*month < 0) { *month += 12; *year -= 1; } } /*============================================================================*/ gboolean utl_date_order (GDate *date1, GDate *date2) { g_return_val_if_fail (g_date_valid (date1), FALSE); g_return_val_if_fail (g_date_valid (date2), FALSE); if (g_date_compare (date1, date2) > 0) { GDate tmp = *date1; *date1 = *date2; *date2 = tmp; return TRUE; } else return FALSE; } /*============================================================================*/ void utl_date_set_nearest_weekday (GDate *date, gint weekdays, gboolean month_mode) { gint day, start_day, days_in_month; gint i, j; if (weekdays == D_WEEK) return; g_return_if_fail (weekdays > D_BAD_DAY && weekdays <= D_WEEK); g_return_if_fail (g_date_valid (date)); day = g_date_get_weekday (date) - 1; if (month_mode == TRUE) { days_in_month = utl_date_get_days_in_month (date); start_day = g_date_get_day (date); for (i = 0; i < 7; i++) { if (weekdays & (1 << ((day + i) % 7))) break; } for (j = 0; j < 7; j++) { if (weekdays & (1 << ((day + 7 - j) % 7))) break; } if (start_day + i > days_in_month) i = 7; if (start_day - j < 1) j = 7; if (i <= j) { if (i > 0) g_date_add_days (date, i); } else { if (j > 0) g_date_subtract_days (date, j); } } else { for (i = 0; i < 7; i++) { if (weekdays & (1 << ((day + i) % 7))) break; } if (i > 0) g_date_add_days (date, i); } } /*============================================================================*/ gchar * utl_date_print (const GDate *d, gint date_format, gint override_locale) { gchar date_str[BUFFER_SIZE], *format; g_return_val_if_fail (g_date_valid (d), NULL); format = utl_date_get_format_str (date_format, override_locale); g_date_strftime (date_str, BUFFER_SIZE, format, d); return g_strdup (date_str); } /*============================================================================*/ gchar * utl_date_print_j (guint32 julian, gint date_format, gint override_locale) { gchar *date_str; if (g_date_valid_julian (julian)) { GDate *d = g_date_new_julian (julian); date_str = utl_date_print (d, date_format, override_locale); g_date_free (d); } else date_str = g_strdup (_("No date")); return date_str; } /*============================================================================*/ gchar * utl_date_get_format_str (gint date_format, gint override_locale) { gchar *date_format_str[] = { "%d-%m-%Y", "%m-%d-%Y", "%Y-%m-%d", "%Y-%d-%m", "%e %B", "%A", "%e %B %Y", "%x" }; if (!override_locale) return date_format_str[DATE_LOCALE]; g_return_val_if_fail (date_format >= DATE_DD_MM_YYYY && date_format <= DATE_FULL, NULL); return date_format_str[date_format]; } /*============================================================================*/ void utl_date_get_dmy (const GDate *date, gint *day, gint *month, gint *year) { g_return_if_fail (g_date_valid (date)); if (day != NULL) *day = g_date_get_day (date); if (month != NULL) *month = g_date_get_month (date); if (year != NULL) *year = g_date_get_year (date); } /*============================================================================*/ void utl_date_julian_to_dmy (guint32 julian, gint *day, gint *month, gint *year) { g_return_if_fail (g_date_valid_julian (julian)); GDate *d = g_date_new_julian (julian); if (day != NULL) *day = g_date_get_day (d); if (month != NULL) *month = g_date_get_month (d); if (year != NULL) *year = g_date_get_year (d); g_date_free (d); } /*============================================================================*/ guint32 utl_date_dmy_to_julian (guint day, guint month, guint year) { g_return_val_if_fail (g_date_valid_dmy (day, month, year), 0); GDate *d = g_date_new_dmy (day, month, year); guint32 julian = g_date_get_julian (d); g_date_free (d); return julian; } /*============================================================================*/ /* * lib_date routines * Copyright (c) 1995, 1996, 1997, 1998 by Steffen Beyer * */ guint utl_get_month_length (guint leap_year, guint month) { const guint month_length[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; return month_length[leap_year][month]; } guint utl_get_days_in_months (guint leap_year, guint month) { const guint days_in_months[2][14] = { { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; return days_in_months[leap_year][month]; } glong utl_year_to_days (guint year) { return( year * 365L + (year / 4) - (year / 100) + (year / 400) ); } glong utl_calc_days (guint year, guint mm, guint dd) { gboolean lp; if (year < 1) return(0L); if ((mm < 1) || (mm > 12)) return(0L); if ((dd < 1) || (dd > utl_get_month_length((lp = g_date_is_leap_year(year)), mm))) return(0L); return( utl_year_to_days(--year) + utl_get_days_in_months(lp, mm) + dd ); } glong utl_dates_difference (guint year1, guint mm1, guint dd1, guint year2, guint mm2, guint dd2) { return (utl_calc_days(year2, mm2, dd2) - utl_calc_days(year1, mm1, dd1)); } guint utl_day_of_week (guint year, guint mm, guint dd) { glong days; days = utl_calc_days(year, mm, dd); if (days > 0L) { days--; days %= 7L; days++; } return( (guint) days ); } guint utl_weeks_in_year (guint year) { return(52 + ((utl_day_of_week(year, 1, 1) == 4) || (utl_day_of_week(year, 12, 31) == 4))); } guint utl_get_week_number (guint year, guint mm, guint dd) { guint first; first = utl_day_of_week(year,1,1) - 1; return( (guint) ( (utl_dates_difference(year,1,1, year,mm,dd) + first) / 7L ) + (first < 4) ); } gboolean utl_week_of_year (guint *week, guint *year, guint mm, guint dd) { if (g_date_valid_dmy (dd, mm, *year)) { *week = utl_get_week_number(*year, mm, dd); if (*week == 0) *week = utl_weeks_in_year(--(*year)); else if (*week > utl_weeks_in_year(*year)) { *week = 1; (*year)++; } return TRUE; } return FALSE; } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/stock_icons.c0000664000175000017500000001643213066543472012706 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "stock_icons.h" #include "i18n.h" #include "stock_icons_data.h" /*------------------------------------------------------------------------------*/ void osmo_register_theme_icons() { gint i; gchar * osmo_stock_items[] = { OSMO_STOCK_BUTTON_ADD, OSMO_STOCK_BUTTON_CLEAR, OSMO_STOCK_BUTTON_CLOSE, OSMO_STOCK_BUTTON_CANCEL, OSMO_STOCK_BUTTON_JUMPTO, OSMO_STOCK_BUTTON_EDIT, OSMO_STOCK_BUTTON_DOWN, OSMO_STOCK_BUTTON_INFO, OSMO_STOCK_BUTTON_INSERT_TIMELINE, OSMO_STOCK_BUTTON_NEXT_YEAR, OSMO_STOCK_BUTTON_NO, OSMO_STOCK_BUTTON_OK, OSMO_STOCK_BUTTON_OPEN, OSMO_STOCK_BUTTON_PREV_YEAR, OSMO_STOCK_BUTTON_REMOVE, OSMO_STOCK_BUTTON_SELECT_COLOR, OSMO_STOCK_BUTTON_SELECT_DATE, OSMO_STOCK_BUTTON_SELECT_FONT, OSMO_STOCK_BUTTON_TODAY, OSMO_STOCK_BUTTON_YES, OSMO_STOCK_SYSTRAY_NORMAL, OSMO_STOCK_SYSTRAY_NOTE, OSMO_STOCK_SYSTRAY_MENU_CALENDAR, OSMO_STOCK_BACKUP, OSMO_STOCK_RESTORE, OSMO_STOCK_OPEN_URL, OSMO_STOCK_ABOUT, OSMO_STOCK_CALENDAR, OSMO_STOCK_CLOSE, OSMO_STOCK_CALCULATOR, OSMO_STOCK_EDIT_NOTE, #ifdef CONTACTS_ENABLED OSMO_STOCK_CONTACTS_ADD, OSMO_STOCK_CONTACTS_BIRTHDAYS, OSMO_STOCK_CONTACTS_EDIT, OSMO_STOCK_CONTACTS_EXPORT, OSMO_STOCK_CONTACTS_IMPORT, OSMO_STOCK_CONTACTS_REMOVE, OSMO_STOCK_BUTTON_CONTACTS_EXPORT, OSMO_STOCK_BUTTON_CONTACTS_IMPORT, OSMO_STOCK_CONTACTS, OSMO_STOCK_SYSTRAY_BIRTHDAY, OSMO_STOCK_SYSTRAY_MENU_CONTACTS, #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED OSMO_STOCK_EDITOR_BOLD, OSMO_STOCK_EDITOR_CLEAR, OSMO_STOCK_EDITOR_FIND, OSMO_STOCK_EDITOR_HIGHLIGHT, OSMO_STOCK_EDITOR_INFO, OSMO_STOCK_EDITOR_INSERT_DATE_TIME, OSMO_STOCK_EDITOR_INSERT_SEPARATOR, OSMO_STOCK_EDITOR_ITALIC, OSMO_STOCK_EDITOR_SAVE, OSMO_STOCK_EDITOR_SPELL_CHECKER, OSMO_STOCK_EDITOR_STRIKETHROUGH, OSMO_STOCK_EDITOR_UNDERLINE, OSMO_STOCK_NOTES_ADD, OSMO_STOCK_NOTES_EDIT, OSMO_STOCK_NOTES_REMOVE, OSMO_STOCK_NOTES, OSMO_STOCK_SYSTRAY_MENU_NOTES, #endif /* NOTES_ENABLED */ OSMO_STOCK_EDITOR_BOLD_S, OSMO_STOCK_EDITOR_HIGHLIGHT_S, OSMO_STOCK_EDITOR_ITALIC_S, OSMO_STOCK_EDITOR_STRIKETHROUGH_S, OSMO_STOCK_EDITOR_UNDERLINE_S, OSMO_STOCK_FULLYEAR, OSMO_STOCK_HELP, OSMO_STOCK_INFO_HELP, OSMO_STOCK_JUMPTO, OSMO_STOCK_LICENSE, OSMO_STOCK_LIST_INVALID, OSMO_STOCK_LIST_VALID, OSMO_STOCK_NEXT_DAY, OSMO_STOCK_NEXT_MONTH, OSMO_STOCK_NEXT_YEAR, OSMO_STOCK_PREFERENCES, OSMO_STOCK_PREV_DAY, OSMO_STOCK_PREV_MONTH, OSMO_STOCK_PREV_YEAR, #ifdef TASKS_ENABLED OSMO_STOCK_TASKS_ADD, OSMO_STOCK_TASKS_EDIT, OSMO_STOCK_TASKS_REMOVE, OSMO_STOCK_TASKS_IMPORT, OSMO_STOCK_TASKS_EXPORT, OSMO_STOCK_TASKS_PREV_DATE, OSMO_STOCK_TASKS_NEXT_DATE, OSMO_STOCK_TASKS, OSMO_STOCK_SYSTRAY_TASK, OSMO_STOCK_SYSTRAY_MENU_TASKS, #endif /* TASKS_ENABLED */ OSMO_STOCK_TODAY, #ifdef PRINTING_SUPPORT OSMO_STOCK_PRINT, #endif /* PRINTING_SUPPORT */ OSMO_STOCK_TYPE_NORMAL, OSMO_STOCK_TYPE_ENCRYPTED, OSMO_STOCK_TYPE_RECURRENT }; const guint8 *osmo_stock_item_data[] = { osmo_stock_button_add, osmo_stock_button_clear, osmo_stock_button_close, osmo_stock_button_cancel, osmo_stock_button_jumpto, osmo_stock_button_edit, osmo_stock_button_down, osmo_stock_button_info, osmo_stock_button_insert_timeline, osmo_stock_button_next_year, osmo_stock_button_no, osmo_stock_button_ok, osmo_stock_button_open, osmo_stock_button_prev_year, osmo_stock_button_remove, osmo_stock_button_select_color, osmo_stock_button_select_date, osmo_stock_button_select_font, osmo_stock_button_today, osmo_stock_button_yes, osmo_stock_systray_normal, osmo_stock_systray_note, osmo_stock_systray_menu_calendar, osmo_stock_backup, osmo_stock_restore, osmo_stock_open_url, osmo_stock_about, osmo_stock_calendar, osmo_stock_close, osmo_stock_calculator, osmo_stock_edit_note, #ifdef CONTACTS_ENABLED osmo_stock_contacts_add, osmo_stock_contacts_birthdays, osmo_stock_contacts_edit, osmo_stock_contacts_export, osmo_stock_contacts_import, osmo_stock_contacts_remove, osmo_stock_button_contacts_export, osmo_stock_button_contacts_import, osmo_stock_contacts, osmo_stock_systray_birthday, osmo_stock_systray_menu_contacts, #endif /* CONTACTS_ENABLED */ #ifdef NOTES_ENABLED osmo_stock_editor_bold, osmo_stock_editor_clear, osmo_stock_editor_find, osmo_stock_editor_highlight, osmo_stock_editor_info, osmo_stock_editor_insert_date_time, osmo_stock_editor_insert_separator, osmo_stock_editor_italic, osmo_stock_editor_save, osmo_stock_editor_spell_checker, osmo_stock_editor_strikethrough, osmo_stock_editor_underline, osmo_stock_notes_add, osmo_stock_notes_edit, osmo_stock_notes_remove, osmo_stock_notes, osmo_stock_systray_menu_notes, #endif /* NOTES_ENABLED */ osmo_stock_editor_bold_s, osmo_stock_editor_highlight_s, osmo_stock_editor_italic_s, osmo_stock_editor_strikethrough_s, osmo_stock_editor_underline_s, osmo_stock_fullyear, osmo_stock_help, osmo_stock_info_help, osmo_stock_jumpto, osmo_stock_license, osmo_stock_list_invalid, osmo_stock_list_valid, osmo_stock_next_day, osmo_stock_next_month, osmo_stock_next_year, osmo_stock_preferences, osmo_stock_prev_day, osmo_stock_prev_month, osmo_stock_prev_year, #ifdef TASKS_ENABLED osmo_stock_tasks_add, osmo_stock_tasks_edit, osmo_stock_tasks_remove, osmo_stock_tasks_import, osmo_stock_tasks_export, osmo_stock_tasks_prev_date, osmo_stock_tasks_next_date, osmo_stock_tasks, osmo_stock_systray_task, osmo_stock_systray_menu_tasks, #endif /* TASKS_ENABLED */ osmo_stock_today, #ifdef PRINTING_SUPPORT osmo_stock_print, #endif /* PRINTING_SUPPORT */ osmo_stock_type_normal, osmo_stock_type_encrypted, osmo_stock_type_recurrent }; for(i = 0; i < G_N_ELEMENTS(osmo_stock_item_data); i++) { GdkPixbuf *pixbuf = gdk_pixbuf_new_from_inline(-1, osmo_stock_item_data[i], FALSE, NULL); gint h = gdk_pixbuf_get_height (pixbuf); gtk_icon_theme_add_builtin_icon(osmo_stock_items[i], h, pixbuf); g_object_unref(pixbuf); } } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/calendar_preferences_gui.c0000664000175000017500000023740613161167412015364 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * 2007-2009 Piotr Maka * * 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 "calendar.h" #include "calendar_ical.h" #include "calendar_notes.h" #include "calendar_preferences_gui.h" #include "calendar_widget.h" #include "i18n.h" #include "options_prefs.h" #include "stock_icons.h" #include "utils.h" #include "utils_gui.h" static void calendar_options_cb (GtkToggleButton *togglebutton, GUI *appGUI); /* ========================================================================== */ static void calendar_cursor_settings_enable_disable (GUI *appGUI) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->enable_block_cursor_checkbutton))) { gtk_widget_hide (appGUI->opt->cft_hscale); gtk_widget_hide (appGUI->opt->cft_label_1); gtk_widget_hide (appGUI->opt->cft_label_2); gtk_widget_hide (appGUI->opt->cft_label_3); } else { gtk_widget_show (appGUI->opt->cft_hscale); gtk_widget_show (appGUI->opt->cft_label_1); gtk_widget_show (appGUI->opt->cft_label_2); gtk_widget_show (appGUI->opt->cft_label_3); } } /* ========================================================================== */ static void day_marker_entry_changed_cb (GtkEntry *entry, GUI *appGUI) { g_strlcpy (config.day_note_marker, gtk_entry_get_text (entry), MAXNAME); gui_calendar_set_day_note_marker_symbol (GUI_CALENDAR (appGUI->cal->calendar), config.day_note_marker); gui_calendar_set_day_note_marker_symbol (GUI_CALENDAR (appGUI->cal->calendar_prev), config.day_note_marker); gui_calendar_set_day_note_marker_symbol (GUI_CALENDAR (appGUI->cal->calendar_next), config.day_note_marker); utl_gui_change_bg_widget_state (appGUI->opt->day_marker_entry, NULL, appGUI); } /* ========================================================================== */ static gint day_marker_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { utl_gui_change_bg_widget_state (appGUI->opt->day_marker_entry, COLOR_BG_OK, appGUI); return FALSE; } /* ========================================================================== */ static void event_marker_type_changed_cb (GtkComboBox *combobox, GUI *appGUI) { config.event_marker_type = gtk_combo_box_get_active (combobox); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar), config.event_marker_type, EVENT_MARKER); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar_prev), config.event_marker_type, EVENT_MARKER); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar_next), config.event_marker_type, EVENT_MARKER); } /* ========================================================================== */ static void today_marker_type_changed_cb (GtkComboBox *combobox, GUI *appGUI) { config.today_marker_type = gtk_combo_box_get_active (combobox); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar), config.today_marker_type, EVENT_MARKER); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar_prev), config.today_marker_type, EVENT_MARKER); gui_calendar_set_marker (GUI_CALENDAR (appGUI->cal->calendar_next), config.today_marker_type, EVENT_MARKER); } /* ========================================================================== */ static void background_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.background_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.background_color, 0, BACKGROUND_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.background_color, 0, BACKGROUND_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.background_color, 0, BACKGROUND_COLOR); } /* ========================================================================== */ static void header_bg_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.header_bg_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.header_bg_color, 0, HEADER_BG_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.header_bg_color, 0, HEADER_BG_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.header_bg_color, 0, HEADER_BG_COLOR); } /* ========================================================================== */ static void header_fg_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.header_fg_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.header_fg_color, 0, HEADER_FG_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.header_fg_color, 0, HEADER_FG_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.header_fg_color, 0, HEADER_FG_COLOR); } /* ========================================================================== */ static void weekend_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.weekend_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.weekend_color, 0, WEEKEND_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.weekend_color, 0, WEEKEND_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.weekend_color, 0, WEEKEND_COLOR); } /* ========================================================================== */ static void day_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.day_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.day_color, 0, DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.day_color, 0, DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.day_color, 0, DAY_COLOR); } /* ========================================================================== */ static void pf_day_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.pf_day_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.pf_day_color, 0, PF_DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.pf_day_color, 0, PF_DAY_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.pf_day_color, 0, PF_DAY_COLOR); } /* ========================================================================== */ static void selection_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_alpha_to_string(&color, config.selection_color, &config.selector_alpha); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.selection_color, config.selector_alpha, SELECTOR_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.selection_color, 0, SELECTOR_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.selection_color, 0, SELECTOR_COLOR); } /* ========================================================================== */ static void mark_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.mark_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.mark_color, 0, EVENT_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.mark_color, 0, EVENT_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.mark_color, 0, EVENT_MARKER_COLOR); } /* ========================================================================== */ static void mark_current_day_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_alpha_to_string(&color, config.mark_current_day_color, &config.mark_current_day_alpha); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.mark_current_day_color, config.mark_current_day_alpha, TODAY_MARKER_COLOR); } /* ========================================================================== */ static void birthday_mark_color_changed_cb (GtkColorButton *button, GUI *appGUI) { GdkRGBA color; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color); utl_gui_convert_color_to_string(&color, config.birthday_mark_color); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar), config.birthday_mark_color, 0, BIRTHDAY_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_prev), config.birthday_mark_color, 0, BIRTHDAY_MARKER_COLOR); gui_calendar_set_color (GUI_CALENDAR (appGUI->cal->calendar_next), config.birthday_mark_color, 0, BIRTHDAY_MARKER_COLOR); } /* ========================================================================== */ static void cursor_thickness_changed_cb (GtkRange *range, GUI *appGUI) { config.frame_cursor_thickness = (gint) gtk_range_get_value (range); gui_calendar_set_frame_cursor_thickness (GUI_CALENDAR (appGUI->cal->calendar), config.frame_cursor_thickness); } /* ========================================================================== */ static gboolean date_header_format_entry_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { utl_gui_change_bg_widget_state (widget, COLOR_BG_OK, appGUI); return FALSE; } /* ========================================================================== */ static void update_date_header (GUI *appGUI) { if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->date_header_format_entry)))) g_strlcpy (config.date_header_format, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->date_header_format_entry)), MAXNAME); gtk_label_set_text (GTK_LABEL (appGUI->cal->date_label), utl_get_date_name_format (appGUI->cal->date, config.date_header_format)); } /* ========================================================================== */ static void date_header_format_entry_changed_cb (GtkEntry *entry, GUI *appGUI) { utl_gui_change_bg_widget_state (appGUI->opt->date_header_format_entry, NULL, appGUI); update_date_header (appGUI); } /* ========================================================================== */ static void dh_default_cb (GtkWidget *widget, GUI *appGUI) { gtk_entry_set_text (GTK_ENTRY (appGUI->opt->date_header_format_entry), DEFAULT_DATE_HEADER_FORMAT); update_date_header (appGUI); } /* ========================================================================== */ static void dh_help_cb (GtkWidget *widget, GUI *appGUI) { gchar tmpbuf[BUFFER_SIZE]; g_snprintf (tmpbuf, BUFFER_SIZE, "%s:\n\n" "%sa : %s\n" "%sA : %s\n" "%sb : %s\n" "%sB : %s\n" "%sd : %s\n" "%sD : %s\n" "%se : %s\n" "%sm : %s\n" "%sy : %s\n" "%sY : %s\n", _("Syntax"), "%%",_("abbreviated weekday name"), "%%", _("full weekday name"), "%%", _("abbreviated month name"), "%%", _("full month name"), "%%", _("day of the month"), "%%", _("MM/DD/YY"), "%%", _("day of the month without leading zeros"), "%%", _("month"), "%%", _("year without century"), "%%", _("year with century") ); utl_gui_create_dialog (GTK_MESSAGE_INFO, tmpbuf, GTK_WINDOW (appGUI->opt->window)); } /* ========================================================================== */ static void create_appearance_section (GtkWidget *appearance_vbox, GUI *appGUI) { GtkWidget *table, *label, *entry, *combobox, *color_button, *button; GtkWidget *entry_hbox, *colors_hbox, *colors_hbox_2, *b_hbox; GdkRGBA color; GtkAdjustment *adj; gint i; static FONT_SEL sel1, sel2, sel3; sel1.appGUI = sel2.appGUI = sel3.appGUI = appGUI; sel1.save = sel2.save = sel3.save = TRUE; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (appearance_vbox), table, FALSE, FALSE, 0); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); i = 0; label = utl_gui_create_label ("%s:", _("Date header format")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); appGUI->opt->date_header_format_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->date_header_format_entry), config.date_header_format); gtk_widget_set_hexpand(appGUI->opt->date_header_format_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->date_header_format_entry, 1, i, 4, 1); g_signal_connect (G_OBJECT (appGUI->opt->date_header_format_entry), "key_press_event", G_CALLBACK (date_header_format_entry_key_press_cb), appGUI); g_signal_connect (G_OBJECT (appGUI->opt->date_header_format_entry), "activate", G_CALLBACK (date_header_format_entry_changed_cb), appGUI); b_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_grid_attach (GTK_GRID (table), b_hbox, 5, i, 2, 1); button = gtk_button_new_from_icon_name("edit-clear", GTK_ICON_SIZE_BUTTON); if (config.enable_tooltips) gtk_widget_set_tooltip_text (button, _("Set default format")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (dh_default_cb), appGUI); gtk_box_pack_start (GTK_BOX (b_hbox), button, FALSE, FALSE, 0); button = gtk_button_new_from_icon_name ("help-browser", GTK_ICON_SIZE_BUTTON); if (config.enable_tooltips) gtk_widget_set_tooltip_text (button, _("Date format syntax")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (dh_help_cb), appGUI); gtk_box_pack_start (GTK_BOX (b_hbox), button, FALSE, FALSE, 0); i++; label = utl_gui_create_label ("%s:", _("Day note marker")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); entry_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_set_hexpand(entry_hbox, TRUE); gtk_grid_attach (GTK_GRID (table), entry_hbox, 1, i, 2, i); entry = gtk_entry_new (); gtk_entry_set_max_length (GTK_ENTRY (entry), 1); gtk_entry_set_text (GTK_ENTRY (entry), config.day_note_marker); gtk_widget_set_size_request (entry, 32, -1); gtk_box_pack_start (GTK_BOX (entry_hbox), entry, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (day_marker_entry_changed_cb), appGUI); g_signal_connect (G_OBJECT (entry), "key_press_event", G_CALLBACK (day_marker_key_press_cb), appGUI); appGUI->opt->day_marker_entry = entry; i++; label = utl_gui_create_label ("%s:", _("Event marker")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); combobox = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Circle")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Ellipse")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Wave")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.event_marker_type); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 1, i, 2, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (event_marker_type_changed_cb), appGUI); appGUI->opt->event_marker_type_combobox = combobox; i++; label = utl_gui_create_label ("%s:", _("Current day marker")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); combobox = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Arrow")); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combobox), NULL, _("Free-hand circle")); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), config.today_marker_type); gtk_widget_set_hexpand(combobox, TRUE); gtk_grid_attach (GTK_GRID (table), combobox, 1, i, 2, 1); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (today_marker_type_changed_cb), appGUI); appGUI->opt->today_marker_type_combobox = combobox; i++; label = utl_gui_create_label ("%s:", _("Colors")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); colors_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), colors_hbox, 1, i, 4, 1); color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Background color")); gdk_rgba_parse (&color, config.background_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (background_color_changed_cb), appGUI); appGUI->opt->background_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Header background color")); gdk_rgba_parse (&color, config.header_bg_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (header_bg_color_changed_cb), appGUI); appGUI->opt->header_bg_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Header foreground color")); gdk_rgba_parse (&color, config.header_fg_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (header_fg_color_changed_cb), appGUI); appGUI->opt->header_fg_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Weekend days color")); gdk_rgba_parse (&color, config.weekend_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (weekend_color_changed_cb), appGUI); appGUI->opt->weekend_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Day color")); gdk_rgba_parse (&color, config.day_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (day_color_changed_cb), appGUI); appGUI->opt->day_color_picker = color_button; i++; colors_hbox_2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_grid_attach (GTK_GRID (table), colors_hbox_2, 1, i, 4, 1); color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Previous/Next month's day color")); gdk_rgba_parse (&color, config.pf_day_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox_2), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (pf_day_color_changed_cb), appGUI); appGUI->opt->pf_day_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Cursor color")); gdk_rgba_parse (&color, config.selection_color); color.alpha = (gdouble)config.selector_alpha / 65536; gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox_2), color_button, FALSE, FALSE, 0); gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (color_button), TRUE); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (selection_color_changed_cb), appGUI); appGUI->opt->selection_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Event marker color")); gdk_rgba_parse (&color, config.mark_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox_2), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (mark_color_changed_cb), appGUI); appGUI->opt->mark_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Current day marker color")); gdk_rgba_parse (&color, config.mark_current_day_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); color.alpha = (gdouble)config.mark_current_day_alpha / 65536; gtk_box_pack_start (GTK_BOX (colors_hbox_2), color_button, FALSE, FALSE, 0); gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (color_button), TRUE); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (mark_current_day_color_changed_cb), appGUI); appGUI->opt->mark_current_day_color_picker = color_button; color_button = gtk_color_button_new (); if (config.enable_tooltips) gtk_widget_set_tooltip_text (color_button, _("Birthday marker color")); gdk_rgba_parse (&color, config.birthday_mark_color); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (color_button), &color); gtk_box_pack_start (GTK_BOX (colors_hbox_2), color_button, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (color_button), "color-set", G_CALLBACK (birthday_mark_color_changed_cb), appGUI); appGUI->opt->birthday_mark_color_picker = color_button; i++; label = utl_gui_create_label ("%s:", _("Date font")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); appGUI->opt->day_name_font_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->day_name_font_entry), config.day_name_font); gtk_widget_set_can_focus (appGUI->opt->day_name_font_entry, FALSE); gtk_widget_set_hexpand(appGUI->opt->day_name_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->day_name_font_entry, 1, i, 5, 1); sel1.config = config.day_name_font; sel1.entry = appGUI->opt->day_name_font_entry; sel1.font = &appGUI->cal->fd_day_name_font; sel1.widget = appGUI->cal->date_label; button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), button, 6, i, 1, 1); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel1); i++; label = utl_gui_create_label ("%s:", _("Calendar font")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); appGUI->opt->calendar_font_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->calendar_font_entry), config.calendar_font); gtk_widget_set_can_focus (appGUI->opt->calendar_font_entry, FALSE); gtk_widget_set_hexpand(appGUI->opt->calendar_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->calendar_font_entry, 1, i, 5, 1); sel2.config = config.calendar_font; sel2.entry = appGUI->opt->calendar_font_entry; sel2.font = &appGUI->cal->fd_cal_font; sel2.widget = appGUI->cal->calendar; button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), button, 6, i, 1, 1); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel2); i++; label = utl_gui_create_label ("%s:", _("Note font")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 1); appGUI->opt->notes_font_entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->notes_font_entry), config.notes_font); gtk_widget_set_can_focus(appGUI->opt->notes_font_entry, FALSE); gtk_widget_set_hexpand(appGUI->opt->notes_font_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->notes_font_entry, 1, i, 5, 1); sel3.config = config.notes_font; sel3.entry = appGUI->opt->notes_font_entry; sel3.font = &appGUI->cal->fd_notes_font; sel3.widget = appGUI->cal->calendar_note_textview; button = gtk_button_new_from_icon_name ("gtk-select-font", GTK_ICON_SIZE_BUTTON); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (utl_gui_font_select_cb), &sel3); gtk_grid_attach (GTK_GRID (table), button, 6, i, 1, 1); i++; appGUI->opt->enable_block_cursor_checkbutton = gtk_check_button_new_with_mnemonic (_("Enable block cursor")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->opt->enable_block_cursor_checkbutton), !config.cursor_type); gtk_widget_set_hexpand(appGUI->opt->enable_block_cursor_checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->enable_block_cursor_checkbutton, 0, i, 5, 1); g_signal_connect (G_OBJECT (appGUI->opt->enable_block_cursor_checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); i++; label = utl_gui_create_label ("%s:", _("Cursor thickness")); gtk_grid_attach (GTK_GRID (table), label, 0, i, 1, 2); gtk_widget_set_valign(label, GTK_ALIGN_START); gtk_widget_set_halign(label, GTK_ALIGN_CENTER); appGUI->opt->cft_label_1 = label; label = utl_gui_create_label ("%s", _("Thin")); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_grid_attach (GTK_GRID (table), label, 1, i, 4, 1); gtk_widget_set_halign(label, GTK_ALIGN_START); appGUI->opt->cft_label_2 = label; label = utl_gui_create_label ("%s", _("Thick")); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_grid_attach (GTK_GRID (table), label, 1, i, 4, 1); gtk_widget_set_halign(label, GTK_ALIGN_END); appGUI->opt->cft_label_3 = label; i++; adj = gtk_adjustment_new (1, 1, 6, 1, 1, 1); appGUI->opt->cft_hscale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adj)); gtk_scale_set_draw_value (GTK_SCALE (appGUI->opt->cft_hscale), FALSE); gtk_range_set_value (GTK_RANGE (appGUI->opt->cft_hscale), config.frame_cursor_thickness); gtk_widget_set_hexpand(appGUI->opt->cft_hscale, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->cft_hscale, 1, i, 4, 1); g_signal_connect (G_OBJECT (appGUI->opt->cft_hscale), "value-changed", G_CALLBACK (cursor_thickness_changed_cb), appGUI); } /* ========================================================================== */ static void close_window (GtkWidget *widget, GtkWidget *window) { gtk_widget_destroy (window); } /* ========================================================================== */ static gint color_edit_name_key_release_cb (GtkEntry *entry, GdkEventKey *event, GUI *appGUI) { if (strlen (gtk_entry_get_text (entry))) gtk_widget_set_sensitive (appGUI->opt->color_edit_ok_button, TRUE); else gtk_widget_set_sensitive (appGUI->opt->color_edit_ok_button, FALSE); return FALSE; } /* ========================================================================== */ static void color_edit_action_cb (GtkWidget *widget, GUI *appGUI) { gchar *old_color = NULL; gchar new_color[MAXCOLORNAME]; GtkTreeIter iter; GtkTreeModel *model; GtkTreeIter p_iter; GtkTreePath *path; GdkRGBA color; GdkPixbuf *image; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (appGUI->opt->color_edit_picker), &color); utl_gui_convert_color_to_string(&color, new_color); gtk_tree_selection_get_selected (appGUI->opt->calendar_category_select, &model, &iter); gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 1, &old_color, -1); if (old_color != NULL && strcmp (old_color, new_color)) { gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->calendar_category_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &p_iter, path); gtk_list_store_remove (appGUI->opt->calendar_category_store, &p_iter); gtk_tree_path_free (path); } image = utl_gui_create_color_swatch (new_color); gtk_list_store_append (appGUI->opt->calendar_category_store, &iter); gtk_list_store_set (appGUI->opt->calendar_category_store, &iter, 0, image, 1, new_color, 2, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->color_edit_name_entry)), -1); g_object_unref (image); cal_replace_note_color (old_color, new_color, appGUI); cal_refresh_marks (appGUI); update_aux_calendars (appGUI); g_free (old_color); } close_window (NULL, appGUI->opt->color_edit_window); } /* ========================================================================== */ static gint color_edit_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { switch (event->keyval) { case GDK_KEY_Return: if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->color_edit_name_entry)))) color_edit_action_cb (NULL, appGUI); return TRUE; case GDK_KEY_Escape: close_window (NULL, appGUI->opt->color_edit_window); return TRUE; } return FALSE; } /* ========================================================================== */ static void gui_color_edit_action (GtkTreeIter *iter, GtkTreeModel *model, GUI *appGUI) { GtkWidget *vbox_top, *vbox, *hbox; GtkWidget *hseparator, *hbuttonbox; GtkWidget *cancel_button; GdkRGBA color; gchar *color_val, *color_name; GtkWidget *window; window = utl_gui_create_window (_("Edit category"), 350, -1, appGUI); g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (color_edit_key_press_cb), appGUI); appGUI->opt->color_edit_window = window; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox_top); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox, TRUE, FALSE, 0); vbox = utl_gui_create_vbox_in_frame (hbox, _("Color")); appGUI->opt->color_edit_picker = gtk_color_button_new (); gtk_box_pack_start (GTK_BOX (vbox), appGUI->opt->color_edit_picker, FALSE, FALSE, 0); vbox = utl_gui_create_vbox_in_frame (hbox, _("Name")); appGUI->opt->color_edit_name_entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (vbox), appGUI->opt->color_edit_name_entry); g_signal_connect (G_OBJECT (appGUI->opt->color_edit_name_entry), "key_release_event", G_CALLBACK (color_edit_name_key_release_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (close_window), appGUI->opt->color_edit_window); appGUI->opt->color_edit_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->opt->color_edit_ok_button); g_signal_connect (G_OBJECT (appGUI->opt->color_edit_ok_button), "clicked", G_CALLBACK (color_edit_action_cb), appGUI); gtk_tree_model_get (GTK_TREE_MODEL (model), iter, 1, &color_val, 2, &color_name, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->color_edit_name_entry), color_name); gdk_rgba_parse (&color, color_val); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (appGUI->opt->color_edit_picker), &color); g_free (color_val); g_free (color_name); gtk_widget_show_all (appGUI->opt->color_edit_window); gtk_widget_grab_focus (appGUI->opt->color_edit_name_entry); } /* ========================================================================== */ static void calendar_category_add_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeIter iter; GdkPixbuf *image; GdkRGBA color; const gchar *category_name; gchar category_color[MAXCOLORNAME]; gchar *item_color, *item_name; gint i; category_name = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->calendar_category_entry)); if (!strlen (category_name)) return; gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (appGUI->opt->day_category_color_picker), &color); utl_gui_convert_color_to_string(&color, category_color); i = 0; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, 1, &item_color, 2, &item_name, -1); if (!strcmp (category_color, item_color)) { if (!strcmp (category_name, item_name)) { g_free (item_name); g_free (item_color); return; } } g_free (item_color); g_free (item_name); } gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, NULL, 0); image = utl_gui_create_color_swatch (category_color); gtk_list_store_append (appGUI->opt->calendar_category_store, &iter); gtk_list_store_set (appGUI->opt->calendar_category_store, &iter, 0, image, 1, category_color, 2, category_name, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->calendar_category_entry), ""); gtk_widget_set_sensitive (appGUI->opt->calendar_category_add_button, FALSE); g_object_unref (image); } /* ========================================================================== */ static void calendar_category_edit_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gboolean state; state = gtk_tree_selection_get_selected (appGUI->opt->calendar_category_select, &model, &iter); gtk_widget_set_sensitive (appGUI->opt->calendar_category_edit_button, state); gtk_widget_set_sensitive (appGUI->opt->calendar_category_remove_button, state); if (state) gui_color_edit_action (&iter, model, appGUI); } /* ========================================================================== */ static gint calendar_category_entry_key_release_cb (GtkEntry *entry, GdkEventKey *event, GUI *appGUI) { gboolean state = FALSE; if (strlen (gtk_entry_get_text (entry))) state = TRUE; gtk_widget_set_sensitive (appGUI->opt->calendar_category_add_button, state); if (event->keyval == GDK_KEY_Return) { if (state) calendar_category_add_cb (NULL, appGUI); return TRUE; } return FALSE; } /* ========================================================================== */ static gint color_edit_list_dbclick_cb (GtkWidget *widget, GdkEventButton *event, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) { if (gtk_tree_selection_get_selected (appGUI->opt->calendar_category_select, &model, &iter)) { gui_color_edit_action (&iter, model, appGUI); return TRUE; } } return FALSE; } /* ========================================================================== */ static void calendar_category_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gboolean state; state = gtk_tree_selection_get_selected (selection, &model, &iter); gtk_widget_set_sensitive (appGUI->opt->calendar_category_edit_button, state); gtk_widget_set_sensitive (appGUI->opt->calendar_category_remove_button, state); } /* ========================================================================== */ static void calendar_category_remove_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->calendar_category_treeview), &path, NULL); if (path == NULL) return; gtk_tree_model_get_iter (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, path); gtk_list_store_remove (appGUI->opt->calendar_category_store, &iter); gtk_tree_path_free (path); } /* ========================================================================== */ static void create_day_categories_section (GtkWidget *day_categories_vbox, GUI *appGUI) { GtkWidget *table, *scrolledwindow, *treeview, *button; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GdkRGBA color; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (day_categories_vbox), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 8); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); appGUI->opt->day_category_color_picker = gtk_color_button_new (); gdk_rgba_parse (&color, "#a1aaaf"); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (appGUI->opt->day_category_color_picker), &color); gtk_grid_attach (GTK_GRID (table), appGUI->opt->day_category_color_picker, 0, 3, 1, 1); appGUI->opt->calendar_category_entry = gtk_entry_new (); gtk_widget_set_hexpand(appGUI->opt->calendar_category_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->calendar_category_entry, 1, 3, 1, 1); g_signal_connect (G_OBJECT (appGUI->opt->calendar_category_entry), "key_release_event", G_CALLBACK (calendar_category_entry_key_release_cb), appGUI); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW (scrolledwindow), 80); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, 0, 5, 3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->opt->calendar_category_store)); appGUI->opt->calendar_category_treeview = treeview; gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview); gtk_container_set_border_width (GTK_CONTAINER (treeview), 4); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); g_signal_connect (G_OBJECT (treeview), "button_press_event", G_CALLBACK (color_edit_list_dbclick_cb), appGUI); appGUI->opt->calendar_category_select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (appGUI->opt->calendar_category_select), "changed", G_CALLBACK (calendar_category_selected_cb), appGUI); renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "pixbuf", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 1, NULL); gtk_tree_view_column_set_visible (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 2, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); button = gtk_button_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 2, 3, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_category_add_cb), appGUI); appGUI->opt->calendar_category_add_button = button; button = gtk_button_new_from_icon_name ("gtk-edit", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 3, 3, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_category_edit_cb), appGUI); appGUI->opt->calendar_category_edit_button = button; button = gtk_button_new_from_icon_name ("list-remove", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 4, 3, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_category_remove_cb), appGUI); appGUI->opt->calendar_category_remove_button = button; } /* ========================================================================== */ #ifdef HAVE_LIBICAL static void ical_description_toggled (GtkCellRendererToggle *cell, gchar *path_str, GUI *appGUI) { GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; gboolean desc_status; model = GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store); path = gtk_tree_path_new_from_string (path_str); if (path == NULL) return; gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, ICAL_COLUMN_ENABLE_DESC, &desc_status, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, ICAL_COLUMN_ENABLE_DESC, !desc_status, -1); ics_calendar_refresh (appGUI); gtk_tree_path_free (path); } /* ========================================================================== */ static void ical_use_year_toggled (GtkCellRendererToggle *cell, gchar *path_str, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gboolean fulldate_status; GtkTreeModel *model; model = GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store); path = gtk_tree_path_new_from_string (path_str); if (path == NULL) return; gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, ICAL_COLUMN_FULL_DATE, &fulldate_status, -1); fulldate_status = !fulldate_status; gtk_list_store_set (GTK_LIST_STORE (model), &iter, ICAL_COLUMN_FULL_DATE, fulldate_status, -1); if (fulldate_status == FALSE) gtk_list_store_set (GTK_LIST_STORE (model), &iter, ICAL_COLUMN_MARK, FALSE, -1); ics_calendar_refresh (appGUI); cal_refresh_marks (appGUI); gtk_tree_path_free (path); } /* ========================================================================== */ static void ical_mark_toggled (GtkCellRendererToggle *cell, gchar *path_str, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gboolean mark_status; GtkTreeModel *model; model = GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store); path = gtk_tree_path_new_from_string (path_str); if (path == NULL) return; gtk_tree_model_get_iter (model, &iter, path); /* get toggled iter */ gtk_tree_model_get (model, &iter, ICAL_COLUMN_MARK, &mark_status, -1); mark_status = !mark_status; gtk_list_store_set (GTK_LIST_STORE (model), &iter, ICAL_COLUMN_MARK, mark_status, -1); if (mark_status == TRUE) gtk_list_store_set (GTK_LIST_STORE (model), &iter, ICAL_COLUMN_FULL_DATE, TRUE, -1); ics_calendar_refresh (appGUI); cal_refresh_marks (appGUI); gtk_tree_path_free (path); } /* ========================================================================== */ static void calendar_ical_files_add_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeIter iter; const gchar *ical_name, *ical_filename; gchar *item_filename; gint i = 0; ical_name = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_name_entry)); ical_filename = gtk_entry_get_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_filename_entry)); while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, NULL, i++)) { gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &iter, ICAL_COLUMN_FILENAME, &item_filename, -1); if (!strcmp (ical_filename, item_filename)) { g_free (item_filename); return; } g_free (item_filename); } gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (appGUI->opt->calendar_category_store), &iter, NULL, 0); gtk_list_store_append (appGUI->opt->calendar_ical_files_store, &iter); gtk_list_store_set (appGUI->opt->calendar_ical_files_store, &iter, ICAL_COLUMN_NAME, ical_name, ICAL_COLUMN_FILENAME, ical_filename, ICAL_COLUMN_FULL_DATE, TRUE, ICAL_COLUMN_MARK, FALSE, ICAL_COLUMN_ENABLE_DESC, TRUE, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_name_entry), ""); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_filename_entry), ""); gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_add_button, FALSE); ics_check_if_valid (appGUI); ics_calendar_refresh (appGUI); } /* ========================================================================== */ static gint calendar_ical_files_entry_key_release_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { gboolean state = FALSE; if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_name_entry))) && strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->calendar_ical_files_filename_entry)))) state = TRUE; gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_add_button, state); if (event != NULL) { if (event->keyval == GDK_KEY_Return && state) { calendar_ical_files_add_cb (NULL, appGUI); return TRUE; } } return FALSE; } /* ========================================================================== */ static void choose_ical_file (GtkEntry *entry, GUI *appGUI) { GtkWidget *dialog; GtkFileFilter *filter_1, *filter_2; GtkWidget *parent = gtk_widget_get_toplevel (GTK_WIDGET(entry)); if(gtk_widget_is_toplevel(parent) == FALSE) { parent = appGUI->main_window; } dialog = utl_gui_create_open_file_dialog (_("Select ICS file"), GTK_WINDOW(parent)); filter_1 = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter_1, "*"); gtk_file_filter_set_name (GTK_FILE_FILTER (filter_1), _("All Files")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_1); filter_2 = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter_2, "*.[iI][cC][sS]"); gtk_file_filter_set_name (GTK_FILE_FILTER (filter_2), _("Calendar files (*.ics)")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_2); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter_2); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { gtk_widget_hide (dialog); while (g_main_context_iteration (NULL, FALSE)); gtk_entry_set_text (entry, gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog))); calendar_ical_files_entry_key_release_cb (NULL, NULL, appGUI); } gtk_widget_destroy (dialog); } /* ========================================================================== */ static void calendar_ical_files_browse_cb (GtkWidget *widget, GUI *appGUI) { choose_ical_file(GTK_ENTRY (appGUI->opt->calendar_ical_files_filename_entry), appGUI); } /* ========================================================================== */ static void ical_edit_filename_browse_cb (GtkWidget *widget, GUI *appGUI) { choose_ical_file(GTK_ENTRY (appGUI->opt->ical_edit_filename_entry), appGUI); } /* ========================================================================== */ static void ical_edit_action_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path = NULL; GtkTreeIter iter, p_iter; gboolean desc_flag = FALSE, mark_flag = FALSE, year_flag = FALSE; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->calendar_ical_files_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &p_iter, path); gtk_tree_model_get (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store), &p_iter, ICAL_COLUMN_ENABLE_DESC, &desc_flag, ICAL_COLUMN_MARK, &mark_flag, ICAL_COLUMN_FULL_DATE, &year_flag, -1); gtk_list_store_remove (appGUI->opt->calendar_ical_files_store, &p_iter); gtk_tree_path_free (path); } gtk_list_store_append (appGUI->opt->calendar_ical_files_store, &iter); gtk_list_store_set (appGUI->opt->calendar_ical_files_store, &iter, ICAL_COLUMN_NAME, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->ical_edit_name_entry)), ICAL_COLUMN_FILENAME, gtk_entry_get_text (GTK_ENTRY (appGUI->opt->ical_edit_filename_entry)), ICAL_COLUMN_DISABLED, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ical_edit_disable_checkbutton)), ICAL_COLUMN_STATE, !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ical_edit_disable_checkbutton)), ICAL_COLUMN_ENABLE_DESC, desc_flag, ICAL_COLUMN_MARK, mark_flag, ICAL_COLUMN_FULL_DATE, year_flag, -1); close_window (NULL, appGUI->opt->ical_edit_window); ics_check_if_valid (appGUI); ics_calendar_refresh (appGUI); } /* ========================================================================== */ static gint ical_edit_key_press_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { switch (event->keyval) { case GDK_KEY_Return: if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->ical_edit_name_entry))) && strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->ical_edit_filename_entry)))) ical_edit_action_cb (NULL, appGUI); return TRUE; case GDK_KEY_Escape: close_window (NULL, appGUI->opt->ical_edit_window); return TRUE; } return FALSE; } /* ========================================================================== */ static gint ical_edit_name_key_release_cb (GtkWidget *widget, GdkEventKey *event, GUI *appGUI) { if (strlen (gtk_entry_get_text (GTK_ENTRY (appGUI->opt->ical_edit_name_entry)))) gtk_widget_set_sensitive(appGUI->opt->ical_edit_ok_button, TRUE); else gtk_widget_set_sensitive(appGUI->opt->ical_edit_ok_button, FALSE); return FALSE; } /* ========================================================================== */ static void disable_checkbutton_clicked_cb (GtkToggleButton *togglebutton, GUI *appGUI) { gboolean state = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton)); gtk_widget_set_sensitive (appGUI->opt->ical_edit_name_entry, state); gtk_widget_set_sensitive (appGUI->opt->ical_edit_filename_browse_button, state); gtk_widget_set_sensitive (appGUI->opt->ical_edit_filename_entry, state); } /* ========================================================================== */ static void gui_ical_entry_edit_action (GtkTreeIter *iter, GtkTreeModel *model, GUI *appGUI) { GtkWidget *window, *vbox_top, *hbox; GtkWidget *hseparator, *hbuttonbox; GtkWidget *cancel_button; gchar *ical_name, *ical_filename; gboolean ical_disabled; window = utl_gui_create_window (_("Modify ICAL parameters"), 450, -1, appGUI); appGUI->opt->ical_edit_window = window; g_signal_connect (G_OBJECT (window), "key_press_event", G_CALLBACK (ical_edit_key_press_cb), appGUI); vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox_top); hbox = utl_gui_create_hbox_in_frame (vbox_top, _("Filename")); appGUI->opt->ical_edit_filename_entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), appGUI->opt->ical_edit_filename_entry, TRUE, TRUE, 0); gtk_widget_set_can_focus (appGUI->opt->ical_edit_filename_entry, FALSE); gtk_editable_set_editable (GTK_EDITABLE (appGUI->opt->ical_edit_filename_entry), FALSE); appGUI->opt->ical_edit_filename_browse_button = gtk_button_new_from_icon_name ("folder", GTK_ICON_SIZE_BUTTON); gtk_box_pack_start (GTK_BOX (hbox), appGUI->opt->ical_edit_filename_browse_button, FALSE, TRUE, 0); g_signal_connect (appGUI->opt->ical_edit_filename_browse_button, "clicked", G_CALLBACK (ical_edit_filename_browse_cb), appGUI); hbox = utl_gui_create_hbox_in_frame (vbox_top, _("Name")); appGUI->opt->ical_edit_name_entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (hbox), appGUI->opt->ical_edit_name_entry); g_signal_connect (G_OBJECT (appGUI->opt->ical_edit_name_entry), "key_release_event", G_CALLBACK (ical_edit_name_key_release_cb), appGUI); hbox = utl_gui_create_hbox_in_frame (vbox_top, _("Options")); appGUI->opt->ical_edit_disable_checkbutton = gtk_check_button_new_with_mnemonic (_("Disabled")); gtk_widget_set_can_focus (appGUI->opt->ical_edit_disable_checkbutton, FALSE); gtk_container_add (GTK_CONTAINER (hbox), appGUI->opt->ical_edit_disable_checkbutton); g_signal_connect (G_OBJECT (appGUI->opt->ical_edit_disable_checkbutton), "toggled", G_CALLBACK (disable_checkbutton_clicked_cb), appGUI); hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hseparator, FALSE, TRUE, 4); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox_top), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 4); cancel_button = gtk_button_new_with_mnemonic (_("_Cancel")); gtk_container_add (GTK_CONTAINER (hbuttonbox), cancel_button); g_signal_connect (G_OBJECT (cancel_button), "clicked", G_CALLBACK (close_window), (gpointer) window); appGUI->opt->ical_edit_ok_button = gtk_button_new_with_mnemonic (_("_OK")); gtk_widget_set_can_focus (appGUI->opt->ical_edit_ok_button, FALSE); gtk_container_add (GTK_CONTAINER (hbuttonbox), appGUI->opt->ical_edit_ok_button); g_signal_connect (G_OBJECT (appGUI->opt->ical_edit_ok_button), "clicked", G_CALLBACK (ical_edit_action_cb), appGUI); gtk_tree_model_get (GTK_TREE_MODEL (model), iter, ICAL_COLUMN_NAME, &ical_name, ICAL_COLUMN_FILENAME, &ical_filename, ICAL_COLUMN_DISABLED, &ical_disabled, -1); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->ical_edit_name_entry), ical_name); gtk_entry_set_text (GTK_ENTRY (appGUI->opt->ical_edit_filename_entry), ical_filename); gtk_editable_set_position (GTK_EDITABLE (appGUI->opt->ical_edit_filename_entry), -1); g_free (ical_name); g_free (ical_filename); gtk_widget_set_sensitive (appGUI->opt->ical_edit_name_entry, !ical_disabled); gtk_widget_set_sensitive (appGUI->opt->ical_edit_filename_browse_button, !ical_disabled); gtk_widget_set_sensitive (appGUI->opt->ical_edit_filename_entry, !ical_disabled); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (appGUI->opt->ical_edit_disable_checkbutton), ical_disabled); gtk_widget_show_all (window); } /* ========================================================================== */ static void calendar_ical_files_edit_cb (GtkWidget *widget, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gboolean state; state = gtk_tree_selection_get_selected (appGUI->opt->calendar_ical_files_select, &model, &iter); gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_edit_button, state); gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_remove_button, state); if (state) gui_ical_entry_edit_action (&iter, model, appGUI); } /* ========================================================================== */ static gint ical_entry_edit_list_dbclick_cb (GtkWidget *widget, GdkEventButton *event, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; if ((event->type == GDK_2BUTTON_PRESS) && (event->button == 1)) { if (gtk_tree_selection_get_selected (appGUI->opt->calendar_ical_files_select, &model, &iter)) { gui_ical_entry_edit_action (&iter, model, appGUI); return TRUE; } } return FALSE; } /* ========================================================================== */ static void calendar_ical_files_remove_cb (GtkWidget *widget, GUI *appGUI) { GtkTreePath *path; GtkTreeIter iter; gtk_tree_view_get_cursor (GTK_TREE_VIEW (appGUI->opt->calendar_ical_files_treeview), &path, NULL); if (path != NULL) { gtk_tree_model_get_iter (GTK_TREE_MODEL(appGUI->opt->calendar_ical_files_store), &iter, path); gtk_list_store_remove (appGUI->opt->calendar_ical_files_store, &iter); gtk_tree_path_free (path); } ics_check_if_valid (appGUI); ics_calendar_refresh (appGUI); } /* ========================================================================== */ static void calendar_ical_files_selected_cb (GtkTreeSelection *selection, GUI *appGUI) { GtkTreeModel *model; GtkTreeIter iter; gboolean state; state = gtk_tree_selection_get_selected (selection, &model, &iter); gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_edit_button, state); gtk_widget_set_sensitive (appGUI->opt->calendar_ical_files_remove_button, state); ics_check_if_valid (appGUI); ics_calendar_refresh (appGUI); } /* ========================================================================== */ static void create_icalendar_files_section (GtkWidget *icalendar_files_vbox, GUI *appGUI) { GtkWidget *table, *label, *scrolledwindow, *treeview, *button; GtkTreeViewColumn *column; GtkCellRenderer *renderer; table = gtk_grid_new (); gtk_box_pack_start (GTK_BOX (icalendar_files_vbox), table, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table), 8); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_grid_set_column_spacing (GTK_GRID (table), 4); label = utl_gui_create_label ("%s:", _("Filename")); gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1); label = utl_gui_create_label ("%s:", _("Name")); gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1); appGUI->opt->calendar_ical_files_filename_entry = gtk_entry_new (); gtk_widget_set_can_focus (appGUI->opt->calendar_ical_files_filename_entry, FALSE); gtk_editable_set_editable (GTK_EDITABLE (appGUI->opt->calendar_ical_files_filename_entry), FALSE); gtk_widget_set_hexpand(appGUI->opt->calendar_ical_files_filename_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->calendar_ical_files_filename_entry, 1, 3, 1, 1); button = gtk_button_new_from_icon_name ("folder", GTK_ICON_SIZE_BUTTON); gtk_grid_attach (GTK_GRID (table), button, 4, 3, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_ical_files_browse_cb), appGUI); appGUI->opt->calendar_ical_files_browse_button = button; appGUI->opt->calendar_ical_files_name_entry = gtk_entry_new (); gtk_widget_set_hexpand(appGUI->opt->calendar_ical_files_name_entry, TRUE); gtk_grid_attach (GTK_GRID (table), appGUI->opt->calendar_ical_files_name_entry, 1, 4, 1, 1); g_signal_connect (G_OBJECT (appGUI->opt->calendar_ical_files_name_entry), "key_release_event", G_CALLBACK (calendar_ical_files_entry_key_release_cb), appGUI); button = gtk_button_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 2, 4, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_ical_files_add_cb), appGUI); appGUI->opt->calendar_ical_files_add_button = button; button = gtk_button_new_from_icon_name ("gtk-edit", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 3, 4, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_ical_files_edit_cb), appGUI); appGUI->opt->calendar_ical_files_edit_button = button; button = gtk_button_new_from_icon_name ("list-remove", GTK_ICON_SIZE_BUTTON); gtk_widget_set_sensitive (button, FALSE); gtk_grid_attach (GTK_GRID (table), button, 4, 4, 1, 1); g_signal_connect (button, "clicked", G_CALLBACK (calendar_ical_files_remove_cb), appGUI); appGUI->opt->calendar_ical_files_remove_button = button; scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_hexpand(scrolledwindow, TRUE); gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW (scrolledwindow), 220); gtk_grid_attach (GTK_GRID (table), scrolledwindow, 0, 0, 5, 3); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (appGUI->opt->calendar_ical_files_store)); appGUI->opt->calendar_ical_files_treeview = treeview; g_signal_connect (G_OBJECT (treeview), "button_press_event", G_CALLBACK (ical_entry_edit_list_dbclick_cb), appGUI); appGUI->opt->calendar_ical_files_select = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (appGUI->opt->calendar_ical_files_select), "changed", G_CALLBACK (calendar_ical_files_selected_cb), appGUI); gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview); gtk_container_set_border_width (GTK_CONTAINER (treeview), 4); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (treeview), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); renderer = gtk_cell_renderer_pixbuf_new (); /* icon */ column = gtk_tree_view_column_new_with_attributes (_("Valid"), renderer, "pixbuf", ICAL_COLUMN_VALID_ICON, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); renderer = gtk_cell_renderer_text_new (); /* name */ column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, "text", ICAL_COLUMN_NAME, "strikethrough", ICAL_COLUMN_DISABLED, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_expand (column, TRUE); renderer = gtk_cell_renderer_text_new (); /* filename */ column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", ICAL_COLUMN_FILENAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_visible (column, FALSE); renderer = gtk_cell_renderer_text_new (); /* valid flag */ column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", ICAL_COLUMN_VALID_FLAG, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_visible (column, FALSE); renderer = gtk_cell_renderer_toggle_new (); /* enable description */ column = gtk_tree_view_column_new_with_attributes (_("Description"), renderer, "active", ICAL_COLUMN_ENABLE_DESC, "activatable", ICAL_COLUMN_STATE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (ical_description_toggled), appGUI); renderer = gtk_cell_renderer_toggle_new (); /* enable year */ column = gtk_tree_view_column_new_with_attributes (_("Full date"), renderer, "active", ICAL_COLUMN_FULL_DATE, "activatable", ICAL_COLUMN_STATE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (ical_use_year_toggled), appGUI); renderer = gtk_cell_renderer_toggle_new(); /* mark event in calendar */ column = gtk_tree_view_column_new_with_attributes (_("Mark"), renderer, "active", ICAL_COLUMN_MARK, "activatable", ICAL_COLUMN_STATE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); g_signal_connect (renderer, "toggled", G_CALLBACK (ical_mark_toggled), appGUI); renderer = gtk_cell_renderer_toggle_new(); /* disabled */ column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", ICAL_COLUMN_DISABLED, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_visible (column, FALSE); renderer = gtk_cell_renderer_toggle_new(); /* inverse state */ column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "active", ICAL_COLUMN_STATE, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_tree_view_column_set_visible (column, FALSE); } #endif /* HAVE_LIBICAL */ /* ========================================================================== */ static void calendar_options_cb (GtkToggleButton *togglebutton, GUI *appGUI) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->show_day_names_checkbutton))) config.display_options |= GUI_CALENDAR_SHOW_DAY_NAMES; else config.display_options &= ~GUI_CALENDAR_SHOW_DAY_NAMES; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->no_month_change_checkbutton))) config.display_options |= GUI_CALENDAR_NO_MONTH_CHANGE; else config.display_options &= ~GUI_CALENDAR_NO_MONTH_CHANGE; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->show_week_numbers_checkbutton))) config.display_options |= GUI_CALENDAR_SHOW_WEEK_NUMBERS; else config.display_options &= ~GUI_CALENDAR_SHOW_WEEK_NUMBERS; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->week_start_monday_checkbutton))) config.display_options |= GUI_CALENDAR_WEEK_START_MONDAY; else config.display_options &= ~GUI_CALENDAR_WEEK_START_MONDAY; config.fy_simple_view = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->simple_view_in_fy_calendar_checkbutton)); config.cursor_type = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->enable_block_cursor_checkbutton)); config.enable_auxilary_calendars = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->enable_auxilary_calendars_checkbutton)); config.strikethrough_past_notes = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->strikethrough_past_notes_checkbutton)); config.ascending_sorting_in_day_notes_browser = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->ascending_sorting_in_day_notes_checkbutton)); if (!config.gui_layout) { if (config.enable_auxilary_calendars == TRUE) { gtk_widget_show (appGUI->cal->aux_cal_expander); } else { gtk_widget_hide (appGUI->cal->aux_cal_expander); } } else { if (config.enable_auxilary_calendars == TRUE) { gtk_widget_show (appGUI->cal->aux_calendars_table); } else { gtk_widget_hide (appGUI->cal->aux_calendars_table); } } #ifdef HAVE_GSPELL config.day_note_spell_checker = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->spell_checker_in_day_notes_checkbutton)); utl_gui_set_enable_spell_check(appGUI->cal->calendar_note_spelltextview, config.day_note_spell_checker); #endif /* HAVE_GSPELL */ gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar_prev), (config.display_options & (GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_WEEK_START_MONDAY)) | GUI_CALENDAR_NO_MONTH_CHANGE); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar_next), (config.display_options & (GUI_CALENDAR_SHOW_DAY_NAMES | GUI_CALENDAR_WEEK_START_MONDAY)) | GUI_CALENDAR_NO_MONTH_CHANGE); if (togglebutton == GTK_TOGGLE_BUTTON (appGUI->opt->enable_block_cursor_checkbutton)) calendar_cursor_settings_enable_disable (appGUI); gui_calendar_set_display_options (GUI_CALENDAR (appGUI->cal->calendar), config.display_options); gui_calendar_set_cursor_type (GUI_CALENDAR (appGUI->cal->calendar), config.cursor_type); g_signal_emit_by_name (G_OBJECT (appGUI->cal->calendar), "day-selected"); } /* ========================================================================== */ static void create_options_section (GtkWidget *calendar_opt_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; gint i; table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_box_pack_start (GTK_BOX (calendar_opt_vbox), table, FALSE, FALSE, 0); i = 0; checkbutton = gtk_check_button_new_with_mnemonic (_("Week start on Monday")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.display_options & GUI_CALENDAR_WEEK_START_MONDAY); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->week_start_monday_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Show day names")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.display_options & GUI_CALENDAR_SHOW_DAY_NAMES); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->show_day_names_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("No month change")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.display_options & GUI_CALENDAR_NO_MONTH_CHANGE); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->no_month_change_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Show week numbers")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.display_options & GUI_CALENDAR_SHOW_WEEK_NUMBERS); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->show_week_numbers_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Simple view in full-year calendar")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.fy_simple_view); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->simple_view_in_fy_calendar_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Enable auxilary calendars")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.enable_auxilary_calendars); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->enable_auxilary_calendars_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Strikethrough past day notes")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.strikethrough_past_notes); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->strikethrough_past_notes_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Ascending sorting in day notes browser")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.ascending_sorting_in_day_notes_browser); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (calendar_options_cb), appGUI); appGUI->opt->ascending_sorting_in_day_notes_checkbutton = checkbutton; i++; #ifdef HAVE_GSPELL checkbutton = gtk_check_button_new_with_mnemonic(_("Enable spell checker in day notes")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config.day_note_spell_checker); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach(GTK_GRID(table), checkbutton, 0, i, 1, 1); g_signal_connect(G_OBJECT(checkbutton), "toggled", G_CALLBACK(calendar_options_cb), appGUI); appGUI->opt->spell_checker_in_day_notes_checkbutton = checkbutton; #endif /* HAVE_GSPELL */ } /* ========================================================================== */ static void day_info_panel_options_cb (GtkToggleButton *togglebutton, GUI *appGUI) { config.di_show_current_time = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_current_time_checkbutton)); config.di_show_current_time_seconds = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_current_time_seconds_checkbutton)); config.di_show_day_number = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_day_number_checkbutton)); config.di_show_current_day_distance = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_current_day_distance_checkbutton)); config.di_show_marked_days = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_marked_days_checkbutton)); config.di_show_week_number = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_week_number_checkbutton)); config.di_show_weekend_days = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_weekend_days_checkbutton)); config.di_show_day_category = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_day_category_checkbutton)); config.di_show_moon_phase = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_moon_phase_checkbutton)); config.di_show_notes = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_notes_checkbutton)); config.di_show_zodiac_sign = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (appGUI->opt->di_show_zodiac_sign_checkbutton)); gtk_widget_set_sensitive (appGUI->opt->di_show_current_time_seconds_checkbutton, config.di_show_current_time); g_signal_emit_by_name (G_OBJECT (appGUI->cal->calendar), "day-selected"); } /* ========================================================================== */ static void create_day_info_panel_section (GtkWidget *day_info_panel_vbox, GUI *appGUI) { GtkWidget *table, *checkbutton; gint i; table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 8); gtk_box_pack_start (GTK_BOX (day_info_panel_vbox), table, FALSE, FALSE, 0); i = 0; checkbutton = gtk_check_button_new_with_mnemonic (_("Current time")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_current_time); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_current_time_checkbutton = checkbutton; i++; gtk_widget_set_hexpand(checkbutton, TRUE); checkbutton = gtk_check_button_new_with_mnemonic (_("Show seconds")); gtk_widget_set_margin_left(checkbutton, 16); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_current_time_seconds); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); gtk_widget_set_sensitive (checkbutton, config.di_show_current_time); appGUI->opt->di_show_current_time_seconds_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Day number")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_day_number); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_day_number_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Today distance")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_current_day_distance); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_current_day_distance_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Marked days")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_marked_days); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_marked_days_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Week number")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_week_number); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_week_number_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Weekend days")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_weekend_days); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_weekend_days_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Day category")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_day_category); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_day_category_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Moon phase")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_moon_phase); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_moon_phase_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Day notes")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_notes); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_notes_checkbutton = checkbutton; i++; checkbutton = gtk_check_button_new_with_mnemonic (_("Zodiac sign")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), config.di_show_zodiac_sign); gtk_widget_set_hexpand(checkbutton, TRUE); gtk_grid_attach (GTK_GRID (table), checkbutton, 0, i, 1, 1); g_signal_connect (G_OBJECT (checkbutton), "toggled", G_CALLBACK (day_info_panel_options_cb), appGUI); appGUI->opt->di_show_zodiac_sign_checkbutton = checkbutton; } /* ========================================================================== */ /* ========================================================================== */ /* ========================================================================== */ /* ========================================================================== */ GtkWidget * cal_create_preferences_page (GtkWidget *notebook, GUI *appGUI) { GtkWidget *vbox_top, *vbox_icon, *vbox, *hbox, *scrolledwindow; vbox_top = gtk_box_new (GTK_ORIENTATION_VERTICAL, VBOX_SPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), BORDER_WIDTH); scrolledwindow = utl_gui_insert_in_scrolled_window (vbox_top, GTK_SHADOW_ETCHED_IN); gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow), 2); vbox_icon = utl_gui_create_icon_with_label (OSMO_STOCK_CALENDAR, _("Calendar")); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Appearance")); create_appearance_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (vbox_top, _("Day categories")); create_day_categories_section (vbox, appGUI); #ifdef HAVE_LIBICAL vbox = utl_gui_create_vbox_in_frame (vbox_top, _("iCalendar files")); create_icalendar_files_section (vbox, appGUI); #endif /* HAVE_LIBICAL */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox, FALSE, FALSE, 0); vbox = utl_gui_create_vbox_in_frame (hbox, _("Calendar")); create_options_section (vbox, appGUI); vbox = utl_gui_create_vbox_in_frame (hbox, _("Show in day info panel")); create_day_info_panel_section (vbox, appGUI); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolledwindow, vbox_icon); gtk_widget_show_all (scrolledwindow); return scrolledwindow; } /* ========================================================================== */ osmo-0.4.2/src/contacts_birthdays.h0000664000175000017500000000224313066543472014257 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CONTACTS_BIRTHDAYS_H #define _CONTACTS_BIRTHDAYS_H #include "gui.h" enum { B_COLUMN_NAME = 0, B_COLUMN_DAYS_NUM, B_COLUMN_DAYS, B_COLUMN_AGE, B_COLUMN_DATE, B_COLUMN_ZODIAC, B_COLUMN_ID, BIRTHDAYS_NUM_COLUMNS }; void contacts_create_birthdays_window (GUI *appGUI); #endif /* _CONTACTS_BIRTHDAYS_H */ osmo-0.4.2/src/calendar_notes.h0000664000175000017500000000467113066543472013360 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _CALENDAR_NOTES_H #define _CALENDAR_NOTES_H #include "gui.h" #define CALENDAR_NOTES_NAME "osmo_calendar_notes" #define CALENDAR_DAY_CATEGORIES_NAME "day_categories" #define CALENDAR_NOTES_FILENAME "calendar_notes.xml" struct note { guint32 date; gchar *color; gchar *note; }; enum { DN_FILTER_CURRENT_MONTH = 0, DN_FILTER_SELECTED_MONTH, DN_FILTER_CURRENT_YEAR, DN_FILTER_SELECTED_YEAR, DN_FILTER_SELECTED_MONTH_YEAR, DN_FILTER_ALL_NOTES }; enum { DN_COLUMN_DATE = 0, DN_COLUMN_DATE_JULIAN, DN_COLUMN_NOTE_LINE, DN_COLUMN_DONE, DAY_NOTES_NUM_COLUMNS }; gboolean cal_check_note (guint32 julian, GUI *appGUI); gboolean cal_check_notes (guint32 julian_start, guint32 julian_end, GUI *appGUI); void cal_notes_foreach (guint32 julian_start, guint32 julian_end, gboolean (*cnfunc)(), GUI *appGUI); gchar * cal_get_note (guint32 julian, GUI *appGUI); gchar * cal_get_note_color (guint32 julian, GUI *appGUI); void cal_replace_note_color (gchar *old_color, gchar *new_color, GUI *appGUI); void cal_add_note (guint32 julian, gchar *color_str, gchar *text_note, GUI *appGUI); void cal_remove_note (guint32 julian, GUI *appGUI); void cal_free_notes_list (GUI *appGUI); void cal_read_notes (GUI *appGUI); void cal_write_notes (GUI *appGUI); void cal_notes_browser (GUI *appGUI); gchar * cal_note_remove_empty_lines (gchar *note); #endif /* _CALENDAR_NOTES_H */ osmo-0.4.2/src/calendar_utils.c0000664000175000017500000002334013066543472013355 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 "calendar_utils.h" #include "i18n.h" #include "gui.h" #include "utils.h" #include "options_prefs.h" #include "calendar.h" #include "calendar_notes.h" #include "calendar_widget.h" #include "utils_time.h" #include "utils_date.h" /*------------------------------------------------------------------------------*/ gchar* julian_to_str (guint32 julian_day, gint date_format, gint override_locale) { static gchar buffer[BUFFER_SIZE]; GDate *cdate; gint i; gchar *date_format_str[] = { "%d-%m-%Y", "%m-%d-%Y", "%Y-%m-%d", "%Y-%d-%m", "%e %B", "%A", "%e %B %Y" }; if (g_date_valid_julian (julian_day)) { cdate = g_date_new_julian (julian_day); g_return_val_if_fail (cdate != NULL, buffer); if (override_locale == TRUE) { if (date_format < DATE_DD_MM_YYYY || date_format > DATE_FULL) { date_format = DATE_DD_MM_YYYY; } g_date_strftime (buffer, BUFFER_SIZE, date_format_str[date_format], cdate); } else { g_date_strftime (buffer, BUFFER_SIZE, "%x", cdate); } g_date_free (cdate); if (buffer[0] == ' ') { for (i = 1; buffer[i]; i++) buffer[i-1] = buffer[i]; buffer[i-1] = '\0'; } } else { g_strlcpy (buffer, _("No date"), BUFFER_SIZE); } return buffer; } /*------------------------------------------------------------------------------*/ guint month_name_to_number (gchar *month_str) { GDate *cdate; gint i; gboolean found; char tmpbuf[BUFFER_SIZE]; found = FALSE; cdate = g_date_new_dmy (1, 1, 1); g_return_val_if_fail (cdate != NULL, -1); for (i = G_DATE_JANUARY; i <= G_DATE_DECEMBER; i++) { g_date_set_month (cdate, i); g_date_strftime (tmpbuf, BUFFER_SIZE, "%B", cdate); if (!strcmp (month_str, tmpbuf)) { found = TRUE; break; } } g_date_free (cdate); return (found == TRUE ? i : -1); } /*------------------------------------------------------------------------------*/ void parse_numeric_date (gchar *date_str, gint *first, gint *second, gint *third) { gint i; gchar *date, *token; date = g_strdup(date_str); token = strtok (date, " -"); i = 0; while (token != NULL && i != 3) { if (i == 0) { *first = atoi(token); } else if (i == 1) { *second = atoi(token); } else if (i == 2) { *third = atoi(token); } token = strtok (NULL, " -"); i++; } g_free(date); } /*------------------------------------------------------------------------------*/ guint32 str_to_julian(gchar *date_str, gint date_format) { gint day, month, year, i; gchar *token; day = month = year = 1; switch (date_format) { case DATE_DD_MM_YYYY: parse_numeric_date (date_str, &day, &month, &year); break; case DATE_MM_DD_YYYY: parse_numeric_date (date_str, &month, &day, &year); break; case DATE_YYYY_MM_DD: parse_numeric_date (date_str, &year, &month, &day); break; case DATE_YYYY_DD_MM: parse_numeric_date (date_str, &year, &day, &month); break; case DATE_NAME_DAY: case DATE_FULL: token = strtok (date_str, " -"); i = 0; while (token != NULL && i != 3) { if (i == 0) { day = atoi(token); } else if (i == 1) { month = month_name_to_number(token); } else if (i == 2 && date_format == DATE_FULL) { year = atoi(token); } token = strtok (NULL, " -"); i++; } break; }; if (g_date_valid_dmy (day, month, year) == TRUE) { return utl_date_dmy_to_julian (day, month, year); } else { return 0; } } /*------------------------------------------------------------------------------*/ gint julian_to_year (guint32 julian_day) { GDate *tmpdate; gint year; g_return_val_if_fail (g_date_valid_julian (julian_day) == TRUE, 0); tmpdate = g_date_new_julian (julian_day); g_return_val_if_fail (tmpdate != NULL, 0); year = g_date_get_year (tmpdate); g_date_free (tmpdate); return year; } /*------------------------------------------------------------------------------*/ gchar * get_current_date_distance_str (guint32 julian) { static gchar buffer[BUFFER_SIZE]; gint d; d = julian - utl_date_get_current_julian (); d = (d < 0) ? -d : d; g_snprintf (buffer, BUFFER_SIZE, "%d", d); return buffer; } /*------------------------------------------------------------------------------*/ gchar * get_date_time_str (guint32 julian, gint seconds) { static gchar buffer[BUFFER_SIZE]; TIME *s_time; s_time = utl_time_new_seconds (seconds); g_snprintf (buffer, BUFFER_SIZE, "%s, %s", julian_to_str (julian, config.date_format, config.override_locale_settings), time_to_str (s_time, config.time_format, config.override_locale_settings)); utl_time_free (s_time); return buffer; } /*------------------------------------------------------------------------------*/ gchar * get_date_time_full_str (guint32 julian, gint seconds) { static gchar buffer[BUFFER_SIZE]; TIME *s_time; if (seconds >= 0) { s_time = utl_time_new_seconds (seconds); g_snprintf (buffer, BUFFER_SIZE, "%s, %s", julian_to_str (julian, config.date_format, config.override_locale_settings), time_to_str (s_time, TIME_HH_MM, config.override_locale_settings)); utl_time_free (s_time); } else { g_snprintf (buffer, BUFFER_SIZE, "%s", julian_to_str (julian, config.date_format, config.override_locale_settings)); } return buffer; } /*------------------------------------------------------------------------------*/ gchar * get_chinese_year_name (guint year) { gchar *animals[] = { N_("Rat"), N_("Ox"), N_("Tiger"), N_("Hare"), N_("Dragon"), N_("Snake"), N_("Horse"), N_("Sheep"), N_("Monkey"), N_("Fowl"), N_("Dog"), N_("Pig") }; static gchar buffer[BUFFER_SIZE]; gint n; n = (year - 3) % 12; if (n == 0) n = 12; n--; g_strlcpy (buffer, gettext (animals[n]), BUFFER_SIZE); return buffer; } /*------------------------------------------------------------------------------*/ gchar * utl_get_zodiac_name (guint day, guint month) { gchar *zodiac[] = { N_("Unknown"), N_("Aquarius"), N_("Pisces"), N_("Aries"), N_("Taurus"), N_("Gemini"), N_("Cancer"), N_("Leo"), N_("Virgo"), N_("Libra"), N_("Scorpio"), N_("Sagittarius"), N_("Capricorn") }; guint dtable[13] = { 0, 20, 19, 21, 21, 22, 23, 23, 24, 23, 24, 23, 22 }; static gchar buffer[BUFFER_SIZE]; guint i; g_strlcpy (buffer, gettext (zodiac[0]), BUFFER_SIZE); g_return_val_if_fail (month > 0 && month <= 12, buffer); if (day >= dtable[month]) { i = month; } else { i = (month == 1 ? 12 : month - 1); } g_strlcpy (buffer, gettext (zodiac[i]), BUFFER_SIZE); return buffer; } /*------------------------------------------------------------------------------*/ struct tm * get_tm_struct(void) { time_t tmm; tmm = time(NULL); return localtime(&tmm); } /*------------------------------------------------------------------------------*/ gint get_current_hour(void) { return get_tm_struct()->tm_hour; } /*------------------------------------------------------------------------------*/ gint get_current_minute(void) { return get_tm_struct()->tm_min; } /*------------------------------------------------------------------------------*/ gint get_current_second(void) { return get_tm_struct()->tm_sec; } /*------------------------------------------------------------------------------*/ gint32 get_absolute_minute() { time_t tm = time(NULL); return tm/60; } /*------------------------------------------------------------------------------*/ gchar* current_time_to_str(gint time_format, gint override_locale) { static gchar buffer[BUFFER_SIZE]; const struct tm *timer; gchar *time_format_str[] = { "%R", "%I:%M %p", "%T", "%r", "%Z" }; timer = get_tm_struct(); g_strlcpy (buffer, "empty", BUFFER_SIZE); if (override_locale == TRUE) { if (time_format < TIME_HH_MM || time_format > TIME_TIMEZONE) { time_format = TIME_HH_MM; } strftime (buffer, BUFFER_SIZE-1, time_format_str[time_format], timer); } else { strftime (buffer, BUFFER_SIZE-1, "%X", timer); } return buffer; } /*------------------------------------------------------------------------------*/ gchar* time_to_str(TIME *time, gint time_format, gint override_locale) { static gchar buffer[BUFFER_SIZE]; struct tm timer; gchar *time_format_str[] = { "%R", "%I:%M %p", "%T", "%r", "%Z" }; timer.tm_hour = time->hour; timer.tm_min = time->minute; timer.tm_sec = time->second; g_strlcpy (buffer, "empty", BUFFER_SIZE); if (override_locale == TRUE) { if (time_format < TIME_HH_MM || time_format > TIME_TIMEZONE) { time_format = TIME_HH_MM; } strftime (buffer, BUFFER_SIZE-1, time_format_str[time_format], &timer); } else { strftime (buffer, BUFFER_SIZE-1, "%X", &timer); } return buffer; } /*------------------------------------------------------------------------------*/ osmo-0.4.2/src/tasks_utils.h0000664000175000017500000000320313066543472012732 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Mąka * 2007-2009 Piotr Mąka * * 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 _TASKS_UTILS_H #define _TASKS_UTILS_H #include "tasks.h" #include "utils_date_time.h" enum { STATE_NONE = 0, STATE_CALENDAR, STATE_TASKS, STATE_EITHER }; gboolean tsk_check_tasks (guint32 julian_start, guint32 julian_end, gint type, GUI *appGUI); gboolean tsk_get_category_state (gchar *category_name, gint type, GUI *appGUI); gchar * tsk_get_priority_text (gint index); gint tsk_get_priority_index (gchar *text); GtkTreeIter * tsk_get_iter (guint id, GUI *appGUI); TASK_ITEM * tsk_get_item (GtkTreeIter *iter, GUI *appGUI); TASK_ITEM * tsk_get_item_id (guint id, GUI *appGUI); void tsk_item_free (TASK_ITEM *item); #endif /* _TASKS_UTILS_H */ osmo-0.4.2/src/tasks_items.h0000664000175000017500000000232513066543472012717 00000000000000 /* * Osmo - a handy personal organizer * * Copyright (C) 2007 Tomasz Maka * * 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 _TASKS_ITEMS_H #define _TASKS_ITEMS_H #include "gui.h" #include "tasks.h" void read_tasks_entries (GUI *appGUI); void write_tasks_entries (GUI *appGUI); void tasks_remove_dialog_show (GUI *appGUI); void tasks_add_edit_dialog_show (gboolean tasks_edit_mode, guint32 julian_date, gint time, GUI *appGUI); #endif /* _TASKS_ITEMS_H */ osmo-0.4.2/src/utils_time.c0000664000175000017500000003115013066543472012540 00000000000000/* * Osmo - a handy personal organizer * * Copyright (C) 2007-2009 Tomasz Maka * (C) 2007-2009 Piotr Maka * * 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 "options_prefs.h" #include "utils_time.h" /*============================================================================*/ TIME * utl_time_new (void) { TIME *t = g_slice_new (TIME); return t; } /*============================================================================*/ TIME * utl_time_new_hms (gint hour, gint minute, gint second) { TIME *t; g_return_val_if_fail (utl_time_valid_hms (hour, minute, second), NULL); t = g_slice_new (TIME); t->hour = hour; t->minute = minute; t->second = second; return t; } /*============================================================================*/ TIME * utl_time_new_seconds (gint seconds) { TIME *t; g_return_val_if_fail (utl_time_valid_seconds (seconds), NULL); t = g_slice_new (TIME); utl_time_set_seconds (t, seconds); return t; } /*============================================================================*/ TIME * utl_time_new_now (void) { TIME *t; struct tm *ptm; time_t tmm; tmm = time (NULL); ptm = localtime (&tmm); t = g_slice_new (TIME); utl_time_set_hms (t, ptm->tm_hour, ptm->tm_min, (ptm->tm_sec < 60) ? ptm->tm_sec : 59); return t; } /*============================================================================*/ void utl_time_set_hms (TIME *t, gint hour, gint minute, gint second) { g_return_if_fail (t != NULL); g_return_if_fail (utl_time_valid_hms (hour, minute, second)); t->hour = hour; t->minute = minute; t->second = second; } /*============================================================================*/ void utl_time_set_hour (TIME *t, gint hour) { g_return_if_fail (t != NULL); g_return_if_fail (utl_time_valid_hour (hour)); t->hour = hour; } /*============================================================================*/ void utl_time_set_minute (TIME *t, gint minute) { g_return_if_fail (t != NULL); g_return_if_fail (utl_time_valid_minute (minute)); t->minute = minute; } /*============================================================================*/ void utl_time_set_second (TIME *t, gint second) { g_return_if_fail (t != NULL); g_return_if_fail (utl_time_valid_second (second)); t->second = second; } /*============================================================================*/ void utl_time_set_seconds (TIME *t, gint seconds) { g_return_if_fail (t != NULL); g_return_if_fail (utl_time_valid_seconds (seconds)); t->hour = seconds / 3600; seconds %= 3600; t->minute = seconds / 60; seconds %= 60; t->second = seconds; } /*============================================================================*/ void utl_time_get_hms (const TIME *t, gint *hour, gint *minute, gint *second) { g_return_if_fail (utl_time_valid (t)); if (hour != NULL) *hour = t->hour; if (minute != NULL) *minute = t->minute; if (second != NULL) *second = t->second; } /*============================================================================*/ gint utl_time_get_hour (const TIME *t) { g_return_val_if_fail (utl_time_valid (t), 0); return t->hour; } /*============================================================================*/ gint utl_time_get_minute (const TIME *t) { g_return_val_if_fail (utl_time_valid (t), 0); return t->minute; } /*============================================================================*/ gint utl_time_get_second (const TIME *t) { g_return_val_if_fail (utl_time_valid (t), 0); return t->second; } /*============================================================================*/ gint utl_time_get_seconds (const TIME *t) { g_return_val_if_fail (utl_time_valid (t), 0); return t->hour * 3600 + t->minute * 60 + t->second; } /*============================================================================*/ gint utl_time_get_current_hour () { TIME *time; gint current_hour; time = utl_time_new_now (); current_hour = time->hour; utl_time_free (time); return current_hour; } /*============================================================================*/ gint utl_time_get_current_minute () { TIME *time; gint current_minute; time = utl_time_new_now (); current_minute = time->minute; utl_time_free (time); return current_minute; } /*============================================================================*/ gint utl_time_get_current_seconds () { TIME *t = utl_time_new_now (); gint seconds = utl_time_get_seconds (t); utl_time_free (t); return seconds; } /*============================================================================*/ gint utl_time_add (TIME *f_time, TIME *s_time) { gint days; g_return_val_if_fail (utl_time_valid (s_time), 0); days = utl_time_add_hours (f_time, s_time->hour); days += utl_time_add_minutes (f_time, s_time->minute); days += utl_time_add_seconds (f_time, s_time->second); return days; } /*============================================================================*/ gint utl_time_add_hours (TIME *t, gint hours) { gint days; hours += utl_time_get_hour (t); days = hours / 24; utl_time_set_hour (t, hours % 24); return days; } /*============================================================================*/ gint utl_time_add_minutes (TIME *t, gint minutes) { gint hours; minutes += utl_time_get_minute (t); hours = minutes / 60; utl_time_set_minute (t, minutes % 60); return (hours > 0 ? utl_time_add_hours (t, hours) : 0); } /*============================================================================*/ gint utl_time_add_seconds (TIME *t, gint seconds) { gint minutes; seconds += utl_time_get_second (t); minutes = seconds / 60; utl_time_set_second (t, seconds % 60); return (minutes > 0 ? utl_time_add_minutes (t, minutes) : 0); } /*============================================================================*/ gint utl_time_subtract (TIME *f_time, TIME *s_time) { gint days; g_return_val_if_fail (utl_time_valid (s_time), 0); days = utl_time_subtract_hours (f_time, s_time->hour); days += utl_time_subtract_minutes (f_time, s_time->minute); days += utl_time_subtract_seconds (f_time, s_time->second); return days; } /*============================================================================*/ gint utl_time_subtract_hours (TIME *time, gint hours) { gint days, h; days = hours / 24; hours %= 24; h = utl_time_get_hour (time); if (h < hours) { h += 24; days++; } utl_time_set_hour (time, h - hours); return days; } /*============================================================================*/ gint utl_time_subtract_minutes (TIME *time, gint minutes) { gint hours, m; hours = minutes / 60; minutes %= 60; m = utl_time_get_minute (time); if (m < minutes) { m += 60; hours++; } utl_time_set_minute (time, m - minutes); return (hours > 0 ? utl_time_subtract_hours (time, hours) : 0); } /*============================================================================*/ gint utl_time_subtract_seconds (TIME *t, gint seconds) { gint minutes, s; minutes = seconds / 60; seconds %= 60; s = utl_time_get_second (t); if (s < seconds) { s += 60; minutes++; } utl_time_set_second (t, s - seconds); return (minutes > 0 ? utl_time_subtract_minutes (t, minutes) : 0); } /*============================================================================*/ void utl_time_clamp (TIME *t, const TIME *tmin, const TIME *tmax) { if (tmin != NULL && tmax != NULL) g_return_if_fail (utl_time_compare (tmin, tmax) <= 0); gint s = utl_time_get_seconds (t); if (tmin != NULL) if (s < utl_time_get_seconds (tmin)) *t = *tmin; if (tmax != NULL) if (s > utl_time_get_seconds (tmax)) *t = *tmax; } /*============================================================================*/ gint utl_time_compare (const TIME *time1, const TIME *time2) { gint s1 = utl_time_get_seconds (time1); gint s2 = utl_time_get_seconds (time2); return (s1 > s2 ? 1 : (s1 == s2 ? 0 : -1)); } /*============================================================================*/ gboolean utl_time_order (TIME *time1, TIME *time2) { if (utl_time_compare (time1, time2) > 0) { TIME tmp = *time1; *time1 = *time2; *time2 = tmp; return TRUE; } else return FALSE; } /*============================================================================*/ gint utl_time_seconds_between (const TIME *time1, const TIME *time2) { return utl_time_get_seconds (time2) - utl_time_get_seconds (time1); } /*============================================================================*/ gchar * utl_time_print (const TIME *t, gint time_format, gint override_locale) { gchar time_str[BUFFER_SIZE], *format; struct tm timer; g_return_val_if_fail (utl_time_valid (t), NULL); utl_time_get_hms (t, &(timer.tm_hour), &(timer.tm_min), &(timer.tm_sec)); format = utl_time_get_format_str (time_format, override_locale); strftime (time_str, BUFFER_SIZE-1, format, &timer); return g_strdup (time_str); } /*============================================================================*/ gchar * utl_time_print_s (gint seconds, gint time_format, gint override_locale) { g_return_val_if_fail (utl_time_valid_seconds (seconds), NULL); TIME *t = utl_time_new_seconds (seconds); gchar *timestr = utl_time_print (t, time_format, override_locale); utl_time_free (t); return timestr; } /*============================================================================*/ gchar * utl_time_print_default (gint seconds, gboolean with_sec) { g_return_val_if_fail (utl_time_valid_seconds (seconds), NULL); TIME *t = utl_time_new_seconds (seconds); gchar *timestr = utl_time_print (t, config.time_format + (with_sec ? 2 : 0), config.override_locale_settings); utl_time_free (t); return timestr; } /*============================================================================*/ gchar * utl_time_get_format_str (gint time_format, gint override_locale) { static gchar *time_format_str[] = { "%R", "%I:%M %p", "%T", "%r", "%Z", "%X" }; if (!override_locale) return time_format_str[TIME_LOCALE]; /*g_return_val_if_fail (time_format >= TIME_HH_MM &&*/ /*time_format <= TIME_TIMEZONE, NULL);*/ if (time_format >= TIME_HH_MM && time_format <= TIME_TIMEZONE) { return time_format_str[time_format]; } else { return time_format_str[0]; } } /*============================================================================*/ gint utl_time_hms_to_seconds (gint hour, gint minute, gint second) { g_return_val_if_fail (utl_time_valid_hms (hour, minute, second), 0); return hour * 3600 + minute * 60 + second; } /*============================================================================*/ gboolean utl_time_valid (const TIME *t) { g_return_val_if_fail (t != NULL, FALSE); return (utl_time_valid_hms (t->hour, t->minute, t->second)); } /*============================================================================*/ gboolean utl_time_valid_hms (gint hour, gint minute, gint second) { return (utl_time_valid_hour (hour) && utl_time_valid_minute (minute) && utl_time_valid_second (second)); } /*============================================================================*/ gboolean utl_time_valid_hour (gint hour) { return (hour >= 0 && hour < 24); } /*============================================================================*/ gboolean utl_time_valid_minute (gint minute) { return (minute >= 0 && minute < 60); } /*============================================================================*/ gboolean utl_time_valid_second (gint second) { return (second >= 0 && second < 60); } /*============================================================================*/ gboolean utl_time_valid_seconds (gint seconds) { return (seconds >= 0 && seconds < 86400); } /*============================================================================*/ void utl_time_free (TIME *t) { g_return_if_fail (t != NULL); g_slice_free (TIME, t); t = NULL; } /*============================================================================*/ osmo-0.4.2/src/gui_logo.h0000664000175000017500000026272413066543472012210 00000000000000/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ #ifdef __SUNPRO_C #pragma align 4 (osmo_logo) #endif #ifdef __GNUC__ static const guint8 osmo_logo[] __attribute__ ((__aligned__ (4))) = #else static const guint8 osmo_logo[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (28709) */ "\0\0p=" /* pixdata_type (0x2010002) */ "\2\1\0\2" /* rowstride (1920) */ "\0\0\7\200" /* width (480) */ "\0\0\1\340" /* height (175) */ "\0\0\0\257" /* pixel_data: */ "\230\377\377\377\0\5#4F\20#4F6#4FR#4Fm#4F\177\300#4F\200\5#4F|#4Fd#4" "FJ#4F/#4F\11\230\377\377\377\0\5#4F\1#4F\33#4F8#4FV#4Fm\300#4Fp\5#4F" "n#4FX#4F;#4F\36#4F\3\230\377\377\377\0\4#4F\22#4F/#4FJ#4Fe\377#4Fp\5" "#4Fo#4F^#4FB#4F'#4F\10\233\377\377\377\0\6#4F\5#4FF#4F\223#4F\270#4F" "\322#4F\354\301#4F\377\6#4F\374#4F\345#4F\311#4F\255#4Fo#4F\24\251\377" "\377\377\0\4#4F\6#4FR#4F\260#4F\372\310#4F\377\4#4F\364#4F\252#4FV#4" "F\13\223\377\377\377\0\3#4F4#4F\216#4F\346\310#4F\377\4#4F\356#4F\235" "#4FE#4F\3\222\377\377\377\0\3#4F\"#4Fv#4F\313\377#4F\377\210#4F\377\4" "#4F\365#4F\247#4FL#4F\5\226\377\377\377\0\3#4F2#4F\243#4F\357\313#4F" "\377\3#4F\372#4F\255#4F&\246\377\377\377\0\2#4F6#4F\334\316#4F\377\3" "#4F\357#4Fo#4F\4\217\377\377\377\0\2#4F*#4F\310\316#4F\377\2#4F\343#" "4FS\217\377\377\377\0\2#4F\37#4F\254\377#4F\377\216#4F\377\2#4F\340#" "4FD\223\377\377\377\0\3#4F\40#4F\245#4F\376\317#4F\377\2#4F\363#4F[\243" "\377\377\377\0\3#4F\1#4F\200#4F\373\321#4F\377\2#4F\325#4FD\214\377\377" "\377\0\3#4F\3#4Fx#4F\370\321#4F\377\2#4F\265#4F\40\213\377\377\377\0" "\3#4F\6#4F\177#4F\366\377#4F\377\221#4F\377\2#4F\232#4F\13\217\377\377" "\377\0\3#4F\1#4F~#4F\370\323#4F\377\1#4F\206\242\377\377\377\0\1#4F\271" "\324#4F\377\2#4F\376#4Fy\212\377\377\377\0\2#4F\1#4F\244\324#4F\377\2" "#4F\356#4F6\211\377\377\377\0\2#4F\14#4F\273\377#4F\377\224#4F\377\2" "#4F\271#4F\5\215\377\377\377\0\2#4F\15#4F\261\326#4F\377\1#4FT\240\377" "\377\377\0\1#4Fw\327#4F\377\2#4F\233#4F\4\210\377\377\377\0\1#4F\224" "\326#4F\377\2#4F\361#4F<\207\377\377\377\0\2#4F\23#4F\311\377#4F\377" "\226#4F\377\2#4F\244#4F\1\213\377\377\377\0\2#4FF\326\327#4F\377\2" "#4F\362#4F'\236\377\377\377\0\2#4F4#4F\376\330#4F\377\2#4F\270#4F\10" "\206\377\377\377\0\1#4F|\330#4F\377\2#4F\364#4F>\205\377\377\377\0\2" "#4F\15#4F\324\377#4F\377\230#4F\377\1#4F~\212\377\377\377\0\2#4F!#4F" "\347\331#4F\377\1#4F\271\236\377\377\377\0\1#4F\335\332#4F\377\2#4F\261" "#4F\4\204\377\377\377\0\2#4F,#4F\373\331#4F\377\2#4F\353#4F\37\204\377" "\377\377\0\1#4F\250\377#4F\377\231#4F\377\2#4F\372#4F0\210\377\377\377" "\0\2#4F\24#4F\331\333#4F\377\1#4F<\234\377\377\377\0\1#4Fm\334#4F\377" "\2#4F\240#4F\1\203\377\377\377\0\1#4F\301\333#4F\377\2#4F\317#4F\11\202" "\377\377\377\0\1#4Fj\377#4F\377\233#4F\377\2#4F\317#4F\4\206\377\377" "\377\0\2#4F\12#4F\310\334#4F\377\1#4F\355\233\377\377\377\0\2#4F\31#" "4F\370\335#4F\377\1#4F\204\202\377\377\377\0\1#4FX\335#4F\377\4#4F\241" "\377\377\377\0#4F\34#4F\370\377#4F\377\234#4F\377\1#4F\207\205\377\377" "\377\0\2#4F\3#4F\264\336#4F\377\1#4FE\231\377\377\377\0\2#4F\1#4F\273" "\336#4F\377\4#4F\374#4F2\377\377\377\0#4F\276\336#4F\377\2#4F6#4F\221" "\377#4F\377\235#4F\377\2#4F\373#4F\23\204\377\377\377\0\1#4F\227\337" "#4F\377\1#4F\306\231\377\377\377\0\1#4Ft\340#4F\377\3#4F\315#4F\36#4" "F\375\336#4F\377\2#4F\301#4F\366\377#4F\377\236#4F\377\1#4F\244\203\377" "\377\377\0\2#4F'#4F\376\337#4F\377\2#4F\376#4F$\227\377\377\377\0\2#" "4F2#4F\371\341#4F\377\1#4F\353\377#4F\377\377#4F\377\2#4F\375#4F/\202" "\377\377\377\0\1#4F\231\341#4F\377\1#4F\231\226\377\377\377\0\2#4F\13" "#4F\331\377#4F\377\377#4F\377\344#4F\377\4#4F\301\377\377\377\0#4F\6" "#4F\366\341#4F\377\2#4F\370#4F\30\225\377\377\377\0\1#4F\235\377#4F\377" "\377#4F\377\346#4F\377\2#4Fz#4F\200\343#4F\377\1#4F\210\224\377\377\377" "\0\1#4FU\377#4F\377\377#4F\377\377#4F\377\315#4F\377\2#4F\361#4F\17\222" "\377\377\377\0\2#4F\36#4F\357\377#4F\377\377#4F\377\377#4F\377\316#4" "F\377\1#4Fw\221\377\377\377\0\2#4F\3#4F\302\377#4F\377\377#4F\377\377" "#4F\377\317#4F\377\2#4F\347#4F\7\220\377\377\377\0\1#4F}\205#4F\377\202" "%6H\377\202$5G\377\377#4F\377\325#4F\377\1$5G\377\377#4F\377\361#4F\377" "\1#4Ff\215\377\377\377\0\15\377\377\377\2\377\377\377\7BP`@*:L\373.\77" "P\377Ubr\377w\204\225\377\211\227\247\377\223\241\262\377\222\243\264" "\377\204\230\254\377s\213\240\377c~\225\377\276Xu\215\377\5Vq\211\377" "Mg}\377D[q\3779Od\377&8J\377\232#4F\377\2$5G\377%6G\377\202&7H\377\12" "$5G\377+;L\377N^m\377t\203\225\377\207\227\247\377\213\233\255\377\204" "\230\253\377w\216\243\377i\202\231\377[w\217\377\276Xu\215\377\4Sn\205" "\377Jcy\377@Xm\3773H\\\377\240#4F\377\10""9HY\377kx\210\377\210\224\245" "\377\206\226\250\377\204\226\250\377|\222\246\377p\210\235\377`|\223" "\377\375Xu\215\377\5Vr\211\377Mf}\377B[q\3778Nc\377%6H\377\237#4F\377" "\10+;M\377R_o\377ix\211\377s\203\226\377w\211\233\377w\214\240\377q\211" "\237\377`{\223\377\277Xu\215\377\5Xt\213\377Oi\200\377E]t\377;Qf\377" "'9K\377\203#4F\377\2#4F\333#4F\2\213\377\377\377\0\15\377\377\377\1\377" "\377\377\15\322\326\3318t\177\213\351\252\262\276\377\320\326\341\377" "\313\326\343\377\300\317\337\377\264\307\331\377\251\277\323\377\235" "\266\314\377\221\256\306\377\205\246\300\377\303\202\244\276\377\4\177" "\241\272\377h\207\240\377Mf}\377,\77R\377\226#4F\377\15$5G\377*;K\377" "7GW\377=M]\377fr\202\377\264\275\313\377\312\322\340\377\305\322\341" "\377\272\312\334\377\256\302\326\377\243\273\317\377\227\262\311\377" "\213\252\303\377\304\202\244\276\377\3w\231\262\377]z\221\377>Uj\377" "\227#4F\377\1&7H\377\202(9J\377\12=L]\377\217\232\252\377\272\303\322" "\377\305\317\336\377\276\316\336\377\263\305\330\377\247\275\322\377" "\233\266\314\377\217\255\305\377\204\245\277\377\377\202\244\276\377" "\203\202\244\276\377\3|\235\267\377`~\227\377@Xn\377\227#4F\377\202$" "5G\377\13#4F\377'8J\377]jz\377\235\247\270\377\275\310\326\377\275\313" "\333\377\265\307\331\377\251\277\323\377\236\266\315\377\221\256\306" "\377\206\246\300\377\304\202\244\276\377\6~\240\272\377e\203\233\377" "D\\r\377$5G\377#4F\377#4FU\213\377\377\377\0\13\377\377\377\4\376\376" "\376.\317\323\332\351\362\363\370\377\361\363\370\377\341\347\360\377" "\307\324\342\377\261\305\330\377\244\274\320\377\231\263\312\377\215" "\253\304\377\310\202\244\276\377\3\177\241\272\377Xu\214\377*O\377\12x\203\220\377\317\324\340\377\322\332\350\377" "\307\324\343\377\274\313\335\377\261\304\330\377\246\275\322\377\233" "\265\314\377\216\255\306\377\202\245\277\377\310\202\244\276\377\3m\215" "\246\3771EY\377#4F\314\213\377\377\377\0\12\365\364\373&\340\343\354" "\351\363\364\371\377\372\373\375\377\372\373\374\377\352\356\364\377" "\302\322\337\377\243\273\320\377\224\260\307\377\211\250\301\377\313" "\202\244\276\377\2|\237\270\377Ok\201\377\223#4F\377\12""0AP\377\253" "\262\275\377\361\363\370\377\370\371\374\377\365\366\372\377\340\347" "\357\377\275\316\335\377\247\275\322\377\231\264\313\377\216\254\304" "\377\314\202\244\276\377\2c\201\231\377(:M\377\221#4F\377\14%6H\3776" "FV\377\224\234\247\377\355\356\364\377\360\362\370\377\344\352\362\377" "\315\330\346\377\267\310\333\377\252\300\323\377\235\267\314\377\222" "\257\306\377\206\247\301\377\377\202\244\276\377\212\202\244\276\377" "\2\200\242\273\377Ok\201\377\222#4F\377\14(8I\377@O_\377s~\212\377\316" "\324\335\377\343\347\360\377\324\335\352\377\305\322\342\377\270\311" "\333\377\256\301\326\377\241\272\317\377\225\260\310\377\210\250\302" "\377\313\202\244\276\377\3~\240\272\377E]t\377#4FD\211\377\377\377\0" "\12\361\360\371\21\341\344\357\326\341\346\360\377\360\363\370\377\372" "\373\375\377\371\372\374\377\346\354\362\377\270\312\332\377\220\256" "\305\377\203\244\276\377\316\202\244\276\377\2g\206\237\377)Uk\377\205#4F\377\1m\216\247\377\217\200\242\275\377\322" "\200\243\275\377\1|\236\271\377\205#4F\377\1,\77R\377\377\200\243\275" "\377\241\200\243\275\377\1+\77S\377\205#4F\377\1Jdz\377\225\200\243\275" "\377\315\200\243\276\377\1x\235\271d\204\377\377\377\0\1x\234\271Q\342" "\177\242\275\377\1Tq\210\377\205#4F\377\1h\207\240\377\342\177\242\275" "\377\1*=O\377\204#4F\377\1""2G\\\377\342\177\242\275\377\275\200\242" "\275\377\2\177\242\275\377$6H\377\205#4F\377\1c\202\233\377\227\200\242" "\275\377\313\200\243\275\377\1v\233\270(\204\377\377\377\0\2r\230\266" "\26~\241\274\376\240~\241\274\377\301~\242\275\377\1h\207\240\377\205" "#4F\377\1`~\226\377\224~\242\275\377\316\177\242\275\377\1""3H\\\377" "\204#4F\377\1""6Mb\377\377\177\242\275\377\240\177\242\275\377\1x\233" "\265\377\206#4F\377\1x\233\265\377\341\177\242\275\377\1~\241\274\353" "\206\377\377\377\0\1{\237\273\327\341~\241\274\377\1t\226\260\377\205" "#4F\377\1Sn\206\377\342~\241\274\377\1""6K`\377\204#4F\377\1""5K_\377" "\347~\241\274\377\270~\242\275\377\1i\212\244\377\205#4F\377\1-@S\377" "\235~\242\275\377\305\177\242\275\377\1y\236\272\253\206\377\377\377" "\0\1w\234\271\227\341}\241\274\377\2}\240\273\377'9K\377\204#4F\377\1" "D^t\377\342}\241\274\377\1""8Oc\377\204#4F\377\1""3J^\377\216}\241\274" "\377\377~\241\274\377\222~\241\274\377\1Yw\220\377\205#4F\377\1>Vk\377" "\342~\241\274\377\1u\233\270]\206\377\377\377\0\1t\232\267N\250|\240" "\274\377\272}\240\274\377\1""6K_\377\204#4F\377\1""7M`\377\342}\240\274" "\377\1;Rf\377\204#4F\377\1""1G[\377\220}\240\274\377\377}\241\274\377" "\220}\241\274\377\1Id|\377\205#4F\377\1Oj\201\377\341}\241\274\377\2" "}\240\274\371n\225\264\15\206\377\377\377\0\2m\225\264\10{\237\273\370" "\341|\240\273\377\1D]r\377\204#4F\377\1);M\377\342|\240\273\377\1=Tj" "\377\204#4F\377\1/EY\377\223|\240\273\377\334|\240\274\377\260}\240\274" "\377\1""9Pf\377\205#4F\377\1_}\226\377\341}\240\274\377\1y\236\272\303" "\210\377\377\377\0\1x\235\271\306\341{\237\273\377\1Rn\205\377\205#4" "F\377\1t\227\262\377\240{\237\273\377\301|\237\273\377\1@Xn\377\204#" "4F\377\1.BV\377\225|\237\273\377\377|\240\273\377\213|\240\273\377\1" "(;O\377\205#4F\377\1n\217\251\377\341|\240\273\377\1v\233\270z\210\377" "\377\377\0\1u\232\270\203\341{\237\273\377\1_}\226\377\205#4F\377\1i" "\211\243\377\341{\237\273\377\1BZq\377\204#4F\377\1,@S\377\377{\237\273" "\377\237{\237\273\377\1r\225\261\377\205#4F\377\2%6H\377z\235\270\377" "\252{\237\273\377\267|\237\273\377\1p\227\265%\210\377\377\377\0\1r\230" "\2668\341z\236\272\377\1k\214\246\377\205#4F\377\1[z\222\377\245z\236" "\272\377\274z\237\272\377\1C]s\377\204#4F\377\1*>Q\377\232z\237\272\377" "\377{\237\273\377\205{\237\273\377\1d\204\236\377\205#4F\377\1""3I]\377" "\341{\237\273\377\1y\235\272\333\211\377\377\377\0\2O\177\244\1x\235" "\271\356\262y\236\272\377\256z\236\272\377\2w\232\264\377$5G\377\204" "#4F\377\1Oj\201\377\341z\236\272\377\1F`w\377\204#4F\377\1(Vl\377\340u\233\270\377\1Vt\215\377\205#4F\377\1o\224\261\377" "\377u\233\270\377\235u\233\270\377\1""2G]\377\205#4F\377\1f\210\243\377" "\305u\233\270\377\233v\233\270\377\1n\225\264+\216\377\377\377\0\1p\227" "\265\215\340t\232\267\377\1BYo\377\204#4F\377\1""2FY\377\340t\232\267" "\377\1Wv\220\377\205#4F\377\1n\222\260\377\262t\232\267\377\334u\232" "\267\377\215u\233\270\377\2s\231\266\377$6H\377\204#4F\377\2#5G\377r" "\227\264\377\337u\233\270\377\1s\232\267\340\217\377\377\377\0\1n\225" "\264D\311s\232\267\377\227t\232\267\377\1Ni\200\377\204#4F\377\2%7I\377" "s\230\265\377\337t\232\267\377\1Yy\223\377\205#4F\377\1l\221\255\377" "\377t\232\267\377\234t\232\267\377\1g\213\247\377\205#4F\377\1/EX\377" "\340t\232\267\377\1q\230\265\232\217\377\377\377\0\2e\217\260\5r\231" "\266\364\337s\231\267\377\1Zx\221\377\205#4F\377\1j\215\251\377\337s" "\231\267\377\1Z{\225\377\205#4F\377\1j\216\253\377\267s\231\267\377\334" "s\232\267\377\210t\232\267\377\1Yz\224\377\205#4F\377\1\77Xn\377\340" "t\232\267\377\1n\225\264K\220\377\377\377\0\1p\227\265\274\337r\231\266" "\377\1e\206\240\377\205#4F\377\1^\177\231\377\304r\231\266\377\233s\231" "\266\377\1\\}\230\377\205#4F\377\1h\215\252\377\272s\231\266\377\341" "s\231\267\377\1Li\201\377\205#4F\377\1Mk\203\377\337s\231\267\377\2s" "\231\266\363o\226\264\5\220\377\377\377\0\1m\225\264y\337r\230\266\377" "\2n\221\255\377&6H\377\204#4F\377\1Sq\211\377\337r\230\266\377\1]\177" "\232\377\205#4F\377\1f\213\247\377\274r\230\266\377\337r\231\266\377" "\1=Vm\377\205#4F\377\1[|\227\377\323r\231\266\377\214s\231\266\377\1" "p\227\265\264\221\377\377\377\0\1k\223\262.\340q\230\266\377\1.\77R\377" "\204#4F\377\1Fbx\377\337q\230\266\377\1_\201\235\377\205#4F\377\1e\211" "\246\377\277q\230\266\377\334r\230\266\377\1.CX\377\205#4F\377\1h\214" "\251\377\337r\230\266\377\1n\225\264h\222\377\377\377\0\1o\227\265\350" "\275p\227\265\377\242q\227\265\377\1:Pc\377\204#4F\377\1;Sg\377\264q" "\227\265\377\253q\230\266\377\1a\203\237\377\205#4F\377\1c\207\243\377" "\377q\230\266\377\233q\230\266\377\2n\224\262\377#5G\377\204#4F\377\1" "':K\377\337q\230\266\377\2q\230\266\375k\223\262\26\222\377\377\377\0" "\1m\225\264\251\337p\227\265\377\1G_u\377\204#4F\377\1.CV\377\337p\227" "\265\377\1b\205\241\377\205#4F\377\1a\205\241\377\377p\227\265\377\212" "p\227\265\377\221q\227\265\377\1b\205\242\377\205#4F\377\1""6Lb\377\304" "q\227\265\377\233q\230\266\377\1o\226\265\315\223\377\377\377\0\1k\223" "\262d\302o\226\265\377\235o\227\265\377\1Qm\206\377\204#4F\377\2%5G\377" "n\223\261\377\270o\227\265\377\246p\227\265\377\1c\207\243\377\205#4" "F\377\1_\203\237\377\377p\227\265\377\233p\227\265\377\1Uu\217\377\205" "#4F\377\1D_w\377\337p\227\265\377\1m\225\263\204\223\377\377\377\0\2" "g\221\261\31o\226\264\376\336o\226\264\377\1\\|\225\377\205#4F\377\1" "e\210\244\377\273o\226\264\377\243o\226\265\377\1d\212\246\377\205#4" "F\377\1^\201\235\377\377o\226\265\377\217o\226\265\377\214o\227\265\377" "\1Gd|\377\205#4F\377\1Rq\213\377\311o\227\265\377\226p\227\265\377\1" "j\223\2622\224\377\377\377\0\1m\225\263\327\336n\226\264\377\2f\210\243" "\377$5G\377\204#4F\377\1Yz\224\377\336n\226\264\377\1e\213\250\377\205" "#4F\377\1\\\177\233\377\264n\226\264\377\346o\226\264\377\1""9Ri\377" "\205#4F\377\1^\201\235\377\314o\226\264\377\222o\226\265\377\1n\226\264" "\345\225\377\377\377\0\1k\223\262\226\310m\225\264\377\226n\225\264\377" "\2k\222\257\377):K\377\204#4F\377\1Ol\204\377\336n\225\264\377\1g\214" "\252\377\205#4F\377\1Z}\231\377\267n\225\264\377\343n\226\264\377\1+" "\77S\377\205#4F\377\1j\220\256\377\336n\226\264\377\1l\224\263\237\225" "\377\377\377\0\1i\222\261O\313m\225\263\377\224m\225\264\377\1""3EX\377" "\204#4F\377\1C^u\377\336m\225\264\377\1i\216\255\377\205#4F\377\1X{\227" "\377\377m\225\264\377\226m\225\264\377\204n\225\264\377\1i\220\256\377" "\205#4F\377\1,AT\377\337n\225\264\377\1j\222\262Q\225\377\377\377\0\2" "h\221\261\12l\224\263\371\336l\224\263\377\1\77Ui\377\204#4F\377\1""8" "Nd\377\305l\224\263\377\231m\225\263\377\1j\220\257\377\205#4F\377\1" "Wy\225\377\377m\225\263\377\231m\225\263\377\2m\225\264\377]\200\234" "\377\205#4F\377\1:Sj\377\336m\225\264\377\2m\225\263\366h\221\261\10" "\226\377\377\377\0\1j\223\262\305\336l\224\263\377\1Ic{\377\204#4F\377" "\1,\77R\377\336l\224\263\377\1k\223\261\377\205#4F\377\1Vw\223\377\377" "l\224\263\377\232l\224\263\377\1Pp\212\377\205#4F\377\1He~\377\327l\224" "\263\377\207m\225\263\377\1k\223\262\270\227\377\377\377\0\1i\222\261" "\202\321k\223\262\377\215k\224\263\377\1Tr\212\377\204#4F\377\2$5G\377" "i\217\255\377\336k\224\263\377\205#4F\377\1Tu\221\377\301k\224\263\377" "\330l\224\263\377\1C_x\377\205#4F\377\1Tu\221\377\336l\224\263\377\1" "i\222\261m\227\377\377\377\0\1f\220\2609\324j\223\262\377\212k\223\262" "\377\1^\177\231\377\205#4F\377\1_\203\237\377\336k\223\262\377\1%7J\377" "\204#4F\377\1Rs\216\377\377k\223\262\377\232k\223\262\377\1""6Nd\377" "\205#4F\377\1`\206\243\377\335k\224\263\377\2k\224\263\376f\220\260\34" "\227\377\377\377\0\2e\217\260\2i\222\262\357\335j\223\262\377\2d\211" "\245\377'8I\377\204#4F\377\1Uv\220\377\336j\223\262\377\1':L\377\204" "#4F\377\1Pr\215\377\377j\223\262\377\232j\223\262\377\1(Zq\377\336i\222\262\377" "\1e\217\2609\231\377\377\377\0\1d\217\257$\336h\221\261\377\1BYo\377" "\204#4F\377\1""4J_\377\336h\221\261\377\1-BV\377\204#4F\377\1Ll\206\377" "\315h\221\261\377\313i\222\261\377\1Lk\206\377\205#4F\377\1Kj\205\377" "\335i\222\261\377\2h\221\261\351O\177\244\1\232\377\377\377\0\1f\220" "\260\340\335g\221\261\377\1Lh\177\377\204#4F\377\1*[s\377\210c\215\256\377\377c\216\256\377\217c" "\216\256\377\2b\215\255\377$6I\377\204#4F\377\1.CX\377\243c\216\256\377" "\272c\216\257\377\1a\214\255\77\237\377\377\377\0\1a\214\255x\327b\215" "\256\377\6`\214\255\377^\212\254\377[\210\252\377Y\206\251\377V\204\250" "\377Kt\225\377\205#4F\377\1Cj\212\377\246O\177\244\377\6Q\201\245\377" "T\203\247\377W\205\250\377Z\207\252\377]\211\253\377`\213\255\377\260" "b\215\256\377\1=Yq\377\204#4F\377\1=Yq\377\346b\215\256\377\260c\215" "\256\377\1Y\200\237\377\205#4F\377\1:Ul\377\334c\215\256\377\2b\215\256" "\355e\217\260\2\237\377\377\377\0\1_\213\2540\231a\214\255\377\267a\214" "\256\377\7a\214\255\377^\212\254\377Z\207\252\377W\205\250\377U\203\247" "\377R\201\246\377P\200\244\377\205O\177\244\377\1M{\240\377\205#4F\377" "\1=`}\377\254O\177\244\377\7P\177\244\377R\201\246\377U\204\247\377X" "\206\251\377[\210\252\377^\212\254\377a\214\255\377\251b\215\256\377" "\1\77\\t\377\204#4F\377\1S\377\300O\177" "\244\377\7P\200\245\377R\201\246\377U\203\247\377W\205\250\377Z\207\252" "\377]\211\253\377_\213\254\377\225`\213\255\377\1Bb|\377\204#4F\377\1" "7Rj\377\331`\213\255\377\275`\214\255\377\1-BV\377\204#4F\377\1':M\377" "\334`\214\255\377\1`\213\255\302\242\377\377\377\0\1\\\210\253\34\276" "_\213\254\377\4^\212\254\377[\207\252\377W\205\250\377S\202\246\377\232" "O\177\244\377\1<^z\377\204#4F\377\2$5G\377N~\242\377\232O\177\244\377" "\7L{\236\377Jv\231\377Hs\225\377Fo\220\377Ck\213\377Ah\207\377\77d\202" "\377\245=a~\377\4\77b\177\377Ae\201\377Dg\203\377Gi\204\377\221Hj\205" "\377\1""7Pg\377\204#4F\377\1""7Pg\377\334_\213\254\377\271`\213\255\377" "\2^\211\252\377$5G\377\204#4F\377\1""3Ja\377\334`\213\255\377\1_\213" "\254w\243\377\377\377\0\1^\212\254\327\272^\212\254\377\3Z\207\252\377" "V\204\250\377S\202\246\377\236O\177\244\377\1Bi\210\377\205#4F\377\1" "Ht\226\377\225O\177\244\377\5Ly\235\377Bj\211\3779Zv\3770Kc\377(Zs\377\334_\213\254\377\1]\211\253(\243" "\377\377\377\0\1]\211\253\225\265^\212\254\377\4]\211\253\377Z\207\252" "\377V\204\250\377R\201\246\377\242O\177\244\377\1It\227\377\205#4F\377" "\1Bh\210\377\223O\177\244\377\3Lz\236\3776Up\377$5H\377\312#4F\377\1" "4Md\377\377^\212\254\377\226^\212\254\377\1Jm\211\377\205#4F\377\1Gi" "\205\377\241^\212\254\377\272_\212\254\377\1^\212\254\334\244\377\377" "\377\0\1\\\210\253O\262]\211\253\377\3Y\207\251\377V\204\250\377R\201" "\246\377\246O\177\244\377\2N~\243\377$5H\377\204#4F\377\1;]z\377\222" "O\177\244\377\2Ag\206\377&:M\377\314#4F\377\5/H_\377S\202\246\377V\204" "\250\377X\206\251\377[\207\252\377\203]\211\253\377\377^\212\254\377" "\217^\212\254\377\1@^w\377\205#4F\377\1Qx\226\377\333^\212\254\377\1" "]\211\253\222\244\377\377\377\0\2[\210\252\15\\\211\253\372\223\\\211" "\253\377\231]\211\253\377\4[\210\252\377X\206\251\377U\204\247\377R\201" "\246\377\253O\177\244\377\1*@U\377\204#4F\377\1""5Rl\377\221O\177\244" "\377\2M{\237\377&9L\377\315#4F\377\1.F\\\377\205O\177\244\377\5Q\200" "\245\377S\202\246\377V\204\247\377X\205\251\377Z\207\252\377\377]\211" "\253\377\214]\211\253\377\1""5Nf\377\205#4F\377\1[\206\247\377\333]\211" "\253\377\1\\\211\253E\245\377\377\377\0\1[\210\252\304\247\\\210\253" "\377\5[\210\252\377Y\206\251\377V\204\250\377S\202\246\377P\200\245\377" "\257O\177\244\377\1""0Kc\377\204#4F\377\1.G^\377\221O\177\244\377\1F" "p\221\377\316#4F\377\1-E[\377\213O\177\244\377\6Q\200\245\377S\202\246" "\377U\204\247\377X\205\250\377Z\207\252\377\\\210\253\377\327\\\211\253" "\377\255]\211\253\377\1*\77S\377\204#4F\377\1+@U\377\333]\211\253\377" "\2[\210\252\361[\210\252\4\245\377\377\377\0\1Z\207\252\201\243[\210" "\252\377\4Y\206\251\377W\205\250\377T\203\247\377Q\201\245\377\264O\177" "\244\377\1""7Vq\377\204#4F\377\1(b\200\377\205#4F\377\1M|\240\377\221O\177\244\377\1@" "f\205\377\315#4F\377\1+BX\377\227O\177\244\377\6Q\200\245\377S\202\246" "\377U\203\247\377W\205\250\377Y\206\251\377[\207\252\377\367[\210\252" "\377\1Ow\225\377\205#4F\377\1@_z\377\256[\210\252\377\246\\\210\253\377" "\4Z\207\252\377W\205\250\377S\202\246\377P\177\244\377\203O\177\244\377" "\1O\177\244\\\246\377\377\377\0\13O\177\244\3S\202\246\360S\202\246\377" "T\203\247\377U\203\247\377U\204\247\377V\204\250\377W\205\250\377X\205" "\251\377X\206\251\377Y\206\251\377\205Z\207\252\377\4Z\207\251\377Y\206" "\251\377X\206\251\377X\205\251\377\202W\205\250\377\6V\204\250\377U\204" "\247\377U\203\247\377T\203\247\377R\201\246\377Q\200\245\377\300O\177" "\244\377\1Dm\216\377\205#4F\377\1Gq\223\377\222O\177\244\377\2\77e\203" "\377*AV\377\313#4F\377\1*AV\377\235O\177\244\377\6P\200\245\377R\201" "\246\377T\203\247\377V\204\250\377X\206\251\377Z\207\252\377\315[\207" "\252\377\244[\210\252\377\1Fh\204\377\205#4F\377\1In\213\377\321[\210" "\252\377\3Y\206\251\377U\203\247\377Q\201\245\377\206O\177\244\377\2" "O\177\244\375O\177\244\23\247\377\377\377\0\1O\177\244\256\212O\177\244" "\377\3P\177\244\377P\200\245\377P\177\244\377\315O\177\244\377\1Ky\234" "\377\205#4F\377\1Af\205\377\224O\177\244\377\3Ag\206\377/I`\377':N\377" "\310#4F\377\1*\77T\377\243O\177\244\377\7P\200\245\377R\201\246\377T" "\202\246\377U\204\247\377W\205\250\377X\206\251\377Y\207\251\377\352" "Z\207\252\377\1;Zs\377\205#4F\377\1S{\235\377\315Z\207\252\377\4X\205" "\250\377U\203\247\377R\201\246\377P\200\244\377\211O\177\244\377\1O\177" "\244\304\250\377\377\377\0\1O\177\244j\333O\177\244\377\1&8L\377\204" "#4F\377\1:[w\377\227O\177\244\377\12Kx\233\377Cj\212\377;]y\3774Qj\377" "1Le\377/Ia\377.F\\\377+BX\377*\77T\377(S\377\252O\177\244\377\10P\200" "\244\377Q\200\245\377R\201\246\377T\202\246\377U\203\247\377V\204\250" "\377X\205\250\377Y\206\251\377\303Y\207\251\377\237Z\207\251\377\1""2" "Kb\377\204#4F\377\2%7J\377Y\206\250\377\266Z\207\251\377\222Z\207\252" "\377\4Y\206\251\377V\204\250\377T\202\246\377Q\201\245\377\216O\177\244" "\377\1O\177\244x\250\377\377\377\0\1O\177\244%\333O\177\244\377\1,DZ" "\377\204#4F\377\1""4Pi\377\323O\177\244\377\4Lz\236\377Dl\215\377<]z" "\377,AW\377\210#4F\377\1(=Q\377\262O\177\244\377\10P\177\244\377Q\200" "\245\377R\201\246\377S\202\246\377U\203\247\377V\204\250\377W\205\250" "\377X\206\251\377\332Y\206\251\377\1(;O\377\204#4F\377\1.F\\\377\305" "Y\206\251\377\4W\205\250\377U\203\247\377S\202\246\377P\200\245\377\222" "O\177\244\377\1O\177\244,\251\377\377\377\0\1O\177\244\340\332O\177\244" "\377\1""3Oh\377\204#4F\377\1-E\\\377\326O\177\244\377\3N~\242\3779Yt" "\377#5H\377\206#4F\377\1'Q\377\204#4F\377\1M{\237\377\377O\177\244\377\222O\177" "\244\377\1""3Pi\377\204#4F\377\2$6I\377N~\243\377\331O\177\244\377\1" "O\177\2443\256\377\377\377\0\1O\177\2440\331O\177\244\377\1Iu\230\377" "\205#4F\377\1Em\216\377\331O\177\244\377\1)@T\377\204#4F\377\1Lz\235" "\377\377O\177\244\377\222O\177\244\377\1,CX\377\204#4F\377\1+BX\377\331" "O\177\244\377\2O\177\244\346O\177\244\1\256\377\377\377\0\2O\177\244" "\1O\177\244\352\330O\177\244\377\2O~\243\377$6I\377\204#4F\377\1>b\200" "\377\331O\177\244\377\1+BW\377\204#4F\377\1Ky\234\377\377O\177\244\377" "\221O\177\244\377\2O~\243\377%7I\377\204#4F\377\1""3Pi\377\331O\177\244" "\377\1O\177\244\233\260\377\377\377\0\1O\177\244\247\331O\177\244\377" "\1*AV\377\204#4F\377\1""8Wr\377\331O\177\244\377\1,C[\377\204#4F\377" "\1Jw\232\377\377O\177\244\377\221O\177\244\377\1It\226\377\205#4F\377" "\1;]z\377\331O\177\244\377\1O\177\244O\260\377\377\377\0\1O\177\244b" "\331O\177\244\377\1""1Ld\377\204#4F\377\1""1Ld\377\331O\177\244\377\1" "*AW\377\204#4F\377\1Jv\231\377\377O\177\244\377\221O\177\244\377\1Ag" "\206\377\205#4F\377\1Ck\213\377\330O\177\244\377\2O\177\244\367O\177" "\244\13\260\377\377\377\0\1O\177\244\36\331O\177\244\377\1""8Wr\377\204" "#4F\377\1+AW\377\331O\177\244\377\1+BW\377\204#4F\377\1It\227\377\377" "O\177\244\377\221O\177\244\377\1""9Zv\377\205#4F\377\1Kx\234\377\330" "O\177\244\377\1O\177\244\266\262\377\377\377\0\1O\177\244\331\330O\177" "\244\377\1>c\201\377\204#4F\377\1%7I\377\331O\177\244\377\1,DZ\377\204" "#4F\377\1Hs\225\377\377O\177\244\377\221O\177\244\377\1""2Mf\377\204" "#4F\377\1':N\377\331O\177\244\377\1O\177\244j\262\377\377\377\0\1O\177" "\244\224\330O\177\244\377\1En\217\377\205#4F\377\1Jv\231\377\330O\177" "\244\377\1-F\\\377\204#4F\377\1Gr\223\377\377O\177\244\377\221O\177\244" "\377\1*@U\377\204#4F\377\1/H_\377\331O\177\244\377\1O\177\244\36\262" "\377\377\377\0\1O\177\244O\330O\177\244\377\1Ly\235\377\205#4F\377\1" "Ck\213\377\330O\177\244\377\1/H_\377\204#4F\377\1Gq\222\377\377O\177" "\244\377\220O\177\244\377\2N}\242\377$5G\377\204#4F\377\1""6Up\377\330" "O\177\244\377\1O\177\244\322\263\377\377\377\0\2O\177\244\16O\177\244" "\373\330O\177\244\377\1&:M\377\204#4F\377\1=`}\377\330O\177\244\377\1" "0Ja\377\204#4F\377\1Fo\220\377\377O\177\244\377\220O\177\244\377\1Gq" "\223\377\205#4F\377\1>c\201\377\330O\177\244\377\1O\177\244\206\264\377" "\377\377\0\1O\177\244\306\330O\177\244\377\1-E[\377\204#4F\377\1.G^\377" "\267:\\x\377\10;]z\377=`}\377\77c\201\377Af\205\377Bj\211\377Dl\215\377" "Fp\221\377Ky\234\377\231O\177\244\377\1""1Lc\377\204#4F\377\1En\217\377" "\257O\177\244\377\4Lz\235\377\77e\203\377Bj\211\377M|\241\377\263O\177" "\244\377\4M|\241\377Bi\210\377@e\204\377Lz\236\377\245O\177\244\377\1" "\77e\203\377\205#4F\377\1Fp\222\377\330O\177\244\377\1O\177\244:\264" "\377\377\377\0\1O\177\244\201\330O\177\244\377\1""4Pi\377\304#4F\377" "\5'S\377\256O\177\244\377\2Gq\223\377$5G\377\206#4F\377" "\1(=Q\377\243O\177\244\377\1)>R\377\204#4F\377\1""2Nf\377\330O\177\244" "\377\1O\177\244U\266\377\377\377\0\1O\177\244\263\327O\177\244\377\1" "Hr\224\377\313#4F\377\1.F]\377\221O\177\244\377\1""5Sm\377\204#4F\377" "\1Bi\210\377\254O\177\244\377\1""7Wq\377\210#4F\377\1Iu\230\377\255O" "\177\244\377\1""5Sl\377\210#4F\377\1Ly\235\377\241O\177\244\377\1M|\240" "\377\205#4F\377\1:[w\377\327O\177\244\377\2O\177\244\372O\177\244\17" "\266\377\377\377\0\1O\177\244n\327O\177\244\377\2N}\241\377#5G\377\312" "#4F\377\1$6H\377\221O\177\244\377\1""6Up\377\204#4F\377\1Ag\207\377\254" "O\177\244\377\1)\77S\377\210#4F\377\1\77c\201\377\254O\177\244\377\2" "M|\240\377%8K\377\210#4F\377\1Dl\215\377\241O\177\244\377\1Fo\220\377" "\205#4F\377\1Bi\210\377\327O\177\244\377\1O\177\244\275\267\377\377\377" "\0\1O\177\244)\330O\177\244\377\1)>R\377\312#4F\377\1,DZ\377\221O\177" "\244\377\1""8Wr\377\204#4F\377\1@f\205\377\253O\177\244\377\1Gr\223\377" "\211#4F\377\1""4Qk\377\254O\177\244\377\1\77c\201\377\211#4F\377\1=`" "}\377\241O\177\244\377\1>b\200\377\205#4F\377\1Jv\231\377\327O\177\244" "\377\1O\177\244q\270\377\377\377\0\1O\177\244\344\327O\177\244\377\1" "/I`\377\311#4F\377\2,CY\377Hs\225\377\221O\177\244\377\1""9Yu\377\204" "#4F\377\1@e\203\377\253O\177\244\377\1\77d\202\377\211#4F\377\1""0Jb" "\377\254O\177\244\377\1""4Pi\377\211#4F\377\1<_|\377\241O\177\244\377" "\1""6Up\377\204#4F\377\1&8L\377\330O\177\244\377\1O\177\244%\270\377" "\377\377\0\1O\177\244\240\327O\177\244\377\1""6To\377\307#4F\377\2,C" "Y\377Bh\207\377\223O\177\244\377\1:[w\377\204#4F\377\1\77d\202\377\253" "O\177\244\377\1:\\x\377\211#4F\377\1/I`\377\254O\177\244\377\1+BX\377" "\211#4F\377\1\77c\201\377\241O\177\244\377\1/H_\377\204#4F\377\1.F\\" "\377\327O\177\244\377\1O\177\244\331\271\377\377\377\0\1O\177\244[\327" "O\177\244\377\1=`}\377\275#4F\377\12$5G\377%8K\377';N\377)>S\377+AW\377" "-F\\\3775Rl\377=`}\377Em\216\377M{\237\377\225O\177\244\377\1;]z\377" "\204#4F\377\1>b\200\377\253O\177\244\377\1""6Tn\377\211#4F\377\1.G^\377" "\253O\177\244\377\2N~\243\377$6I\377\211#4F\377\1Ag\207\377\241O\177" "\244\377\1';O\377\204#4F\377\1""5Sm\377\327O\177\244\377\1O\177\244\215" "\271\377\377\377\0\2O\177\244\27O\177\244\376\225O\177\244\377\13N}\241" "\377Fp\221\377>b\200\3775Sm\3771Ld\377/I`\377-F\\\377+BX\377*\77T\377" "(S\377+AW\377,DZ\377.G^\3770Jb\377" "3Ng\3779Zv\377Ag\206\377It\227\377O~\243\377\221O\177\244\377\1Ck\213" "\377\204#4F\377\1-E[\377\267L{\236\377\1N}\241\377\237O\177\244\377\1" "<_|\377\204#4F\377\1=a~\377\253O\177\244\377\1""1Lc\377\211#4F\377\1" ".F\\\377\253O\177\244\377\1Hs\225\377\212#4F\377\1Dl\214\377\240O\177" "\244\377\1Lz\235\377\205#4F\377\1=a~\377\226O\177\244\377\12Iu\227\377" "Ah\207\377:[v\3773Oh\3770Kb\377.G^\377-D[\377+AW\377)>S\377';O\377\233" "&9L\377\12(a\177" "\377Fp\221\377N}\241\377\222O\177\244\377\1O\177\244A\272\377\377\377" "\0\1O\177\244\321\223O\177\244\377\3\77e\203\377+BX\377$5G\377\256#4" "F\377\4%7J\377-E\\\377\77d\202\377N~\242\377\216O\177\244\377\1Jv\231" "\377\204#4F\377\1(S\377\221O\177\244\377\1@e\203\377\267#4F\377\1""3Oh\377\215" "O\177\244\377\1O\177\244\\\273\377\377\377\0\2O\177\244\12O\177\244\371" "\220O\177\244\377\1""0Ja\377\267#4F\377\1)>R\377\215O\177\244\377\1""2" "Me\377\204#4F\377\1Ag\205\377\326O\177\244\377\1Ag\206\377\204#4F\377" "\1:\\x\377\253O\177\244\377\1&:M\377\211#4F\377\1""3Pi\377\253O\177\244" "\377\1/I`\377\211#4F\377\1+AV\377\241O\177\244\377\1.F\\\377\204#4F\377" "\1""1Lc\377\220O\177\244\377\2M{\237\377&9L\377\267#4F\377\1""4Qj\377" "\214O\177\244\377\2O\177\244\375O\177\244\23\274\377\377\377\0\1O\177" "\244\276\220O\177\244\377\2Gr\223\377$6I\377\266#4F\377\1%7J\377\215" "O\177\244\377\1""8Xt\377\204#4F\377\1:\\x\377\326O\177\244\377\1Bi\210" "\377\204#4F\377\1""9Zv\377\253O\177\244\377\1%7I\377\211#4F\377\1""6" "Tn\377\253O\177\244\377\1*@U\377\211#4F\377\1""0Jb\377\241O\177\244\377" "\1&9L\377\204#4F\377\1""9Yt\377\220O\177\244\377\1Ky\234\377\267#4F\377" "\2':N\377Kx\233\377\214O\177\244\377\1O\177\244\304\275\377\377\377\0" "\1O\177\244z\221O\177\244\377\2<_|\377$5H\377\265#4F\377\1:[v\377\215" "O\177\244\377\1\77d\202\377\204#4F\377\1""4Qj\377\326O\177\244\377\1" "Ck\213\377\204#4F\377\1""9Yt\377\253O\177\244\377\212#4F\377\1""8Xs\377" "\253O\177\244\377\1%7J\377\211#4F\377\1""6Tn\377\240O\177\244\377\1K" "w\232\377\205#4F\377\1Ag\205\377\221O\177\244\377\1""3Oh\377\265#4F\377" "\2%8K\377Cj\211\377\215O\177\244\377\1O\177\244x\275\377\377\377\0\1" "O\177\2445\222O\177\244\377\3Jw\232\3777Wq\377&8L\377\261#4F\377\2,D" "Z\377En\217\377\216O\177\244\377\1Fo\220\377\204#4F\377\1.F\\\377\326" "O\177\244\377\1Dm\215\377\204#4F\377\1""8Xs\377\252O\177\244\377\1M|" "\240\377\212#4F\377\1:\\x\377\252O\177\244\377\1Ky\234\377\212#4F\377" "\1;]z\377\240O\177\244\377\1Cj\212\377\205#4F\377\1It\226\377\222O\177" "\244\377\2Ag\205\377)>R\377\261#4F\377\3(=Q\377;]z\377M{\237\377\216" "O\177\244\377\1O\177\244,\275\377\377\377\0\2O\177\244\2O\177\244\355" "\223O\177\244\377\6M{\237\377Bj\211\377;]y\3773Oh\377+BX\377$6I\377\247" "#4F\377\5$6H\377+BX\3774Qj\377<_{\377En\216\377\220O\177\244\377\1Lz" "\236\377\204#4F\377\1';O\377\326O\177\244\377\1Fo\220\377\204#4F\377" "\1""7Vq\377\252O\177\244\377\1Ly\235\377\212#4F\377\1=`}\377\252O\177" "\244\377\1Fp\221\377\212#4F\377\1Ag\206\377\240O\177\244\377\1;]z\377" "\204#4F\377\2%7J\377O~\243\377\223O\177\244\377\5N}\241\377Cj\211\377" ":[w\3772Mf\377)\77T\377\250#4F\377\6&8L\377-E\\\3775Rl\377=`}\377Dm\215" "\377N~\243\377\217O\177\244\377\1O\177\244\337\277\377\377\377\0\1O\177" "\244\253\230O\177\244\377\10N~\243\377Ky\234\377Iu\227\377Gq\223\377" "En\217\377Ck\213\377Ag\206\377\77d\202\377\232\77c\201\377\7Ag\205\377" "Cj\212\377En\216\377Gq\223\377Iu\227\377Kx\234\377N~\242\377\225O\177" "\244\377\1':N\377\204#4F\377\1M{\240\377\325O\177\244\377\1Gq\222\377" "\204#4F\377\1""6Up\377\252O\177\244\377\1Jv\231\377\212#4F\377\1\77d" "\202\377\252O\177\244\377\1Ag\205\377\212#4F\377\1Gq\222\377\240O\177" "\244\377\1""4Pi\377\204#4F\377\1,DZ\377\231O\177\244\377\7M|\240\377" "Kw\232\377Ht\226\377Fp\222\377Dm\215\377Bi\211\377@f\204\377\232\77c" "\201\377\7\77e\203\377Bh\207\377Dl\214\377Fo\220\377Hr\224\377Jv\231" "\377Ly\235\377\225O\177\244\377\1O\177\244\224\277\377\377\377\0\1O\177" "\244g\326O\177\244\377\1.F\\\377\204#4F\377\1Gq\222\377\325O\177\244" "\377\1Hs\225\377\204#4F\377\1""6Tn\377\252O\177\244\377\1Hs\225\377\212" "#4F\377\1Bh\207\377\252O\177\244\377\1;]z\377\212#4F\377\1Lz\236\377" "\240O\177\244\377\1,CY\377\204#4F\377\1""4Qk\377\326O\177\244\377\1O" "\177\244H\277\377\377\377\0\1O\177\244\"\326O\177\244\377\1""4Qj\377" "\204#4F\377\1@f\205\377\325O\177\244\377\1Iu\227\377\204#4F\377\1""5" "Sl\377\252O\177\244\377\1Fp\221\377\212#4F\377\1Dl\214\377\252O\177\244" "\377\1""6To\377\211#4F\377\1&8L\377\241O\177\244\377\1%7J\377\204#4F" "\377\1<_|\377\325O\177\244\377\2O\177\244\364O\177\244\7\300\377\377" "\377\0\1O\177\244\335\325O\177\244\377\1;]y\377\204#4F\377\1:[w\377\325" "O\177\244\377\1Jv\231\377\204#4F\377\1""4Qj\377\252O\177\244\377\1Dm" "\216\377\212#4F\377\1Fp\222\377\252O\177\244\377\1""1Kc\377\211#4F\377" "\1+BX\377\240O\177\244\377\1Iu\227\377\205#4F\377\1Dl\215\377\325O\177" "\244\377\1O\177\244\257\301\377\377\377\0\1O\177\244\230\325O\177\244" "\377\1Ah\207\377\204#4F\377\1""4Pi\377\325O\177\244\377\1Ky\234\377\204" "#4F\377\1""3Pi\377\252O\177\244\377\1Cj\212\377\212#4F\377\1It\226\377" "\252O\177\244\377\1+BX\377\211#4F\377\1""1Lc\377\240O\177\244\377\1A" "h\207\377\205#4F\377\1Lz\235\377\325O\177\244\377\1O\177\244c\301\377" "\377\377\0\1O\177\244S\325O\177\244\377\1Hs\225\377\204#4F\377\1-E\\" "\377\325O\177\244\377\1L{\236\377\204#4F\377\1""3Ng\377\252O\177\244" "\377\1Ag\206\377\212#4F\377\1Kx\234\377\252O\177\244\377\1&9L\377\211" "#4F\377\1""6Up\377\240O\177\244\377\1:[w\377\204#4F\377\1(a\177\377\211#4F\377" "\1$5G\377\252O\177\244\377\1Gr\224\377\212#4F\377\1Bh\210\377\240O\177" "\244\377\1+AV\377\204#4F\377\1""8Wr\377\325O\177\244\377\1O\177\244\177" "\303\377\377\377\0\1O\177\244\205\325O\177\244\377\1""0Jb\377\204#4F" "\377\1Fp\222\377\325O\177\244\377\1$5G\377\203#4F\377\1""0Kb\377\252" "O\177\244\377\1<^{\377\211#4F\377\1&9L\377\252O\177\244\377\1Bi\210\377" "\212#4F\377\1Gr\223\377\237O\177\244\377\2N~\242\377$5H\377\204#4F\377" "\1\77e\203\377\325O\177\244\377\1O\177\2443\303\377\377\377\0\1O\177" "\244@\325O\177\244\377\1""6Up\377\204#4F\377\1@e\204\377\325O\177\244" "\377\1%7J\377\203#4F\377\1""0Ia\377\252O\177\244\377\1:[w\377\211#4F" "\377\1(=Q\377\252O\177\244\377\1=`}\377\212#4F\377\1M{\240\377\237O\177" "\244\377\1Hr\224\377\205#4F\377\1Gr\224\377\324O\177\244\377\2O\177\244" "\346O\177\244\1\303\377\377\377\0\2O\177\244\6O\177\244\365\324O\177" "\244\377\1=a~\377\204#4F\377\1:[v\377\325O\177\244\377\1&9L\377\203#" "4F\377\1/H_\377\252O\177\244\377\1""8Xt\377\211#4F\377\1+AW\377\252O" "\177\244\377\1""7Wq\377\211#4F\377\1&:M\377\240O\177\244\377\1@e\204" "\377\204#4F\377\2$6H\377N~\242\377\324O\177\244\377\1O\177\244\233\305" "\377\377\377\0\1O\177\244\267\324O\177\244\377\1Dl\214\377\204#4F\377" "\1""3Pi\377\325O\177\244\377\1';O\377\203#4F\377\1.G^\377\252O\177\244" "\377\1""7Vp\377\211#4F\377\1-E\\\377\252O\177\244\377\1""2Nf\377\211" "#4F\377\1,CY\377\240O\177\244\377\1""8Xt\377\204#4F\377\1+BW\377\325" "O\177\244\377\1O\177\244N\305\377\377\377\0\1O\177\244r\324O\177\244" "\377\1Kw\232\377\204#4F\377\1-E[\377\325O\177\244\377\1(=Q\377\203#4" "F\377\1-E\\\377\252O\177\244\377\1""5Sl\377\211#4F\377\1""0Ia\377\252" "O\177\244\377\1-D[\377\211#4F\377\1""1Me\377\240O\177\244\377\1""1Lc" "\377\204#4F\377\1""3Oh\377\324O\177\244\377\2O\177\244\367O\177\244\12" "\304\377\377\377\0\2\312\323\343\2j\221\2627\205U\203\247\377\1Q\201" "\245\377\311O\177\244\377\1Q\200\245\377\205U\203\247\377\2-\77Q\377" "$5G\377\202#4F\377\1.AT\377\205U\203\247\377\1R\201\245\377\312O\177" "\244\377\205U\203\247\377\2""1F[\377&7I\377\202#4F\377\1""3K`\377\205" "U\203\247\377\1Q\201\245\377\236O\177\244\377\1P\200\245\377\205U\203" "\247\377\2:Vo\377%6H\377\207#4F\377\2%6H\3779Sl\377\205U\203\247\377" "\1P\200\244\377\236O\177\244\377\1P\200\245\377\205U\203\247\377\2/B" "V\377%6H\377\207#4F\377\2%6H\377>\\v\377\205U\203\247\377\1P\200\245" "\377\224O\177\244\377\1P\200\245\377\205U\203\247\377\2""1FZ\377&7I\377" "\202#4F\377\2&7I\377Bc~\377\205U\203\247\377\312O\177\244\377\205U\203" "\247\377\2W\204\250\271\312\323\343\10\304\377\377\377\0\3\310\322\342" "\0\310\322\342\25[\207\252\352\204Z\206\252\377\1V\204\250\377\311O\177" "\244\377\1Q\200\245\377\205Z\206\252\377\2:Pd\377'8J\377\202#4F\377\2" "0@R\377W\202\244\377\204Z\206\252\377\1V\204\250\377\312O\177\244\377" "\205Z\206\252\377\2""9Nc\377)9K\377\202#4F\377\1:Pd\377\205Z\206\252" "\377\1T\202\246\377\236O\177\244\377\1R\201\245\377\205Z\206\252\377" "\2\77Xp\377%6H\377\207#4F\377\2(9K\377A]v\377\205Z\206\252\377\1P\200" "\245\377\236O\177\244\377\1S\202\246\377\204Z\206\252\377\3Y\205\247" "\3772BT\377$5G\377\207#4F\377\2):L\377Jj\206\377\205Z\206\252\377\1P" "\177\244\377\224O\177\244\377\1S\202\246\377\204Z\206\252\377\3X\204" "\246\3772CU\377&6H\377\202#4F\377\2+P\377\202#4F\377\1I]q\377\205i\221" "\261\377\1\\\210\253\377\236O\177\244\377\1Y\206\251\377\205i\221\261" "\377\2Ncx\377%6G\377\207#4F\377\2""5FW\377Zw\221\377\204i\221\261\377" "\1h\220\260\377\237O\177\244\377\1e\216\257\377\204i\221\261\377\2\\" "{\225\377;K]\377\210#4F\377\2@Qb\377h\217\257\377\204i\221\261\377\1" "`\213\255\377\225O\177\244\377\1h\220\261\377\204i\221\261\377\2Wq\212" "\3778IZ\377\202#4F\377\2%6H\377Pf{\377\205i\221\261\377\1Z\207\252\377" "\310O\177\244\377\1X\205\251\377\205i\221\261\377\2x\233\271\242\302" "\316\336\31\307\377\377\377\0\2\300\315\335P\377\202#4F\377\1Nat\377\205n\224\264\377\1`\213\254\377\236" "O\177\244\377\1\\\210\253\377\205n\224\264\377\1Sg{\377\210#4F\377\2" ";L]\377b\177\231\377\204n\224\264\377\1k\222\262\377\237O\177\244\377" "\1m\224\263\377\204n\224\264\377\2^y\221\3779J\\\377\210#4F\377\1Oas" "\377\205n\224\264\377\1_\212\254\377\224O\177\244\377\1T\202\246\377" "\205n\224\264\377\2Wm\202\3774EV\377\202#4F\377\2,=O\377\\v\215\377\205" "n\224\264\377\1W\205\250\377\310O\177\244\377\1f\217\257\377\205n\224" "\264\377\2\225\260\310p\300\315\335\10\307\377\377\377\0\2\276\313\333" "1\201\242\275\264\204s\227\266\377\2r\227\265\377Q\200\245\377\310O\177" "\244\377\1e\216\257\377\204s\227\266\377\2q\225\262\377N^o\377\202#4" "F\377\2%6H\377[o\203\377\205s\227\266\377\1a\213\255\377\310O\177\244" "\377\1V\204\250\377\205s\227\266\377\2^t\211\377.>P\377\202#4F\377\1" "Rdw\377\205s\227\266\377\1c\215\256\377\236O\177\244\377\1_\212\254\377" "\205s\227\266\377\1Wj}\377\210#4F\377\2BRc\377i\206\240\377\204s\227" "\266\377\1m\223\263\377\236O\177\244\377\1S\202\246\377\205s\227\266" "\377\2`x\216\3776FX\377\207#4F\377\2'8J\377\\o\204\377\205s\227\266\377" "\1]\211\253\377\224O\177\244\377\1^\212\254\377\205s\227\266\377\2Xj" "}\377->P\377\202#4F\377\2""7GY\377g\204\235\377\205s\227\266\377\1S\201" "\246\377\307O\177\244\377\1T\202\246\377\205s\227\266\377\2u\231\267" "\361\273\311\332B\310\377\377\377\0\3\274\312\332\36\227\260\310\215" "x\233\270\377\204w\232\270\377\1^\212\254\377\310O\177\244\377\1e\216" "\257\377\205w\232\270\377\1Xk~\377\203#4F\377\2\\m\177\377\200\240\275" "\377\204w\232\270\377\1n\224\263\377\310O\177\244\377\1Y\206\251\377" "\205w\232\270\377\2dz\220\377->P\377\202#4F\377\1Tgy\377\205w\232\270" "\377\1g\220\260\377\236O\177\244\377\1c\215\256\377\205w\232\270\377" "\1Yk}\377\210#4F\377\2GWi\377o\215\247\377\204w\232\270\377\1o\225\264" "\377\236O\177\244\377\1[\207\252\377\205w\232\270\377\2bw\213\3770AR" "\377\207#4F\377\2/\77Q\377d{\220\377\205w\232\270\377\1Y\206\251\377" "\224O\177\244\377\1m\224\263\377\204w\232\270\377\3u\227\264\377Xhy\377" "$5G\377\202#4F\377\2BRd\377q\221\254\377\204w\232\270\377\1u\231\267" "\377\310O\177\244\377\1d\215\256\377\205w\232\270\377\2\203\243\276\303" "\274\312\332$\310\377\377\377\0\4\272\311\331\7\304\320\337\203\225\260" "\307\375\207\246\301\377\203{\235\272\377\1q\226\265\377\310O\177\244" "\377\1d\216\257\377\205{\235\272\377\1f{\217\377\203#4F\377\4[iz\377" "\230\261\307\377\215\251\303\377\177\240\274\377\202{\235\272\377\2z" "\235\271\377Q\200\245\377\307O\177\244\377\1`\212\254\377\205{\235\272" "\377\2k\201\226\377(9K\377\202#4F\377\3n~\216\377\224\257\307\377\207" "\245\300\377\203{\235\272\377\1o\225\264\377\236O\177\244\377\1f\217" "\260\377\205{\235\272\377\1[m\177\377\210#4F\377\2M^o\377u\223\255\377" "\204{\235\272\377\1q\226\265\377\236O\177\244\377\1g\220\260\377\205" "{\235\272\377\2dw\211\377'8J\377\207#4F\377\2""8I[\377n\207\235\377\205" "{\235\272\377\1U\203\247\377\223O\177\244\377\1S\202\246\377\205{\235" "\272\377\2u\223\255\377L\\n\377\203#4F\377\2P`r\377z\234\270\377\204" "{\235\272\377\1r\227\265\377\307O\177\244\377\2P\177\244\377w\232\270" "\377\205{\235\272\377\2\225\260\307\227\272\311\331\5\311\377\377\377" "\0\5\303\320\337`\263\305\330\350\236\266\315\377\223\256\307\377\207" "\245\300\377\202\177\240\274\377\1\\\210\252\377\307O\177\244\377\1c" "\215\256\377\205\177\240\274\377\2p\207\234\377$5G\377\202#4F\377\5=" "M_\377\251\272\315\377\241\270\316\377\225\257\310\377\210\246\301\377" "\202\177\240\274\377\1\\\210\253\377\307O\177\244\377\1f\217\260\377" "\205\177\240\274\377\1n\204\231\377\203#4F\377\7y\206\225\375\250\275" "\322\377\234\264\313\377\217\253\305\377\201\241\275\377\177\240\274" "\377w\232\270\377\236O\177\244\377\1j\222\262\377\205\177\240\274\377" "\1]m\177\377\210#4F\377\2cq\202\377\206\241\270\377\204\177\240\274\377" "\1q\227\265\377\236O\177\244\377\1u\232\267\377\204\177\240\274\377\2" "~\237\272\377Zk|\377\210#4F\377\2CTf\377u\220\247\377\204\177\240\274" "\377\2~\240\273\377P\200\244\377\223O\177\244\377\1b\214\255\377\205" "\177\240\274\377\2t\216\245\377:K\\\377\203#4F\377\2n\177\221\377\207" "\246\300\377\204\177\240\274\377\1m\224\263\377\307O\177\244\377\1^\211" "\253\377\205\177\240\274\377\2\200\241\274\372\253\277\322N\312\377\377" "\377\0\11\266\306\326+\307\323\342\321\264\305\330\377\251\275\321\377" "\235\265\313\377\213\250\301\377\203\243\275\377{\236\272\377S\202\246" "\377\306O\177\244\377\1b\214\255\377\205\203\243\275\377\2v\216\243\377" "(9K\377\202#4F\377\10(9K\377\251\267\310\377\265\306\331\377\251\276" "\322\377\235\265\313\377\212\250\301\377\203\243\275\377k\223\262\377" "\307O\177\244\377\1n\224\263\377\205\203\243\275\377\1i~\222\377\203" "#4F\377\7\204\217\235\377\273\311\332\377\257\302\325\377\243\272\317" "\377\214\251\302\377\203\243\275\377\177\240\273\377\236O\177\244\377" "\1o\225\263\377\204\203\243\275\377\2\202\242\274\377^o\200\377\210#" "4F\377\4n}\214\377\232\257\304\377\223\256\306\377\206\245\277\377\202" "\203\243\275\377\1u\231\266\377\235O\177\244\377\2R\201\245\377\202\242" "\275\377\204\203\243\275\377\2~\232\262\377L]n\377\210#4F\377\2P`r\377" "}\231\261\377\204\203\243\275\377\1|\236\272\377\224O\177\244\377\1w" "\233\267\377\205\203\243\275\377\2q\206\232\377'8J\377\202#4F\377\5%" "6H\377\214\234\254\377\236\266\314\377\221\255\305\377\205\245\276\377" "\202\203\243\275\377\1h\220\260\377\307O\177\244\377\1v\232\267\377\205" "\203\243\275\377\2\217\253\303\316\266\306\326\27\312\377\377\377\0\6" "\264\305\325\4\314\326\343\252\311\324\343\375\274\313\334\377\261\303" "\326\377\242\271\316\377\202\206\245\277\377\2}\237\272\377T\202\246" "\377\305O\177\244\377\1d\215\256\377\205\206\245\277\377\2|\224\251\377" "->P\377\203#4F\377\10\222\240\261\377\310\323\343\377\274\313\334\377" "\260\302\326\377\235\265\314\377\206\245\277\377\203\243\275\377S\202" "\246\377\306O\177\244\377\1{\235\271\377\205\206\245\277\377\1cx\213" "\377\203#4F\377\5\217\231\247\325\321\331\347\370\301\316\337\377\265" "\306\331\377\236\266\314\377\202\206\245\277\377\1U\203\247\377\235O" "\177\244\377\1s\230\266\377\204\206\245\277\377\2\205\243\274\377`q\202" "\377\210#4F\377\10n}\214\377\256\276\317\377\245\273\320\377\232\263" "\312\377\214\251\302\377\206\245\277\377\204\243\276\377P\200\244\377" "\234O\177\244\377\1g\220\260\377\205\206\245\277\377\2}\226\254\377<" "M^\377\210#4F\377\2^o\200\377\204\240\271\377\204\206\245\277\377\1x" "\233\270\377\223O\177\244\377\1e\216\257\377\205\206\245\277\377\2\206" "\244\276\377]n\200\377\203#4F\377\10*;M\377\242\257\277\377\260\302\326" "\377\244\272\317\377\230\262\311\377\210\246\300\377\206\245\277\377" "d\215\256\377\306O\177\244\377\1j\221\261\377\206\206\245\277\377\1\237" "\266\313\212\314\377\377\377\0\6\275\314\332H\337\343\357\362\317\331" "\346\377\305\321\341\377\272\312\333\377\236\266\313\377\202\212\250" "\300\377\2\200\241\274\377U\203\247\377\304O\177\244\377\1t\231\266\377" "\205\212\250\300\377\2}\223\247\377'8J\377\203#4F\377\10ap\201\377\331" "\336\353\377\316\327\346\377\302\317\337\377\266\307\330\377\221\255" "\304\377\212\250\300\377t\230\266\377\305O\177\244\377\1]\210\253\377" "\205\212\250\300\377\2\210\246\276\377Yj|\377\202#4F\377\11#4F\372\254" "\266\303d\343\346\361\366\323\333\350\377\307\323\342\377\271\311\332" "\377\214\251\301\377\212\250\300\377p\226\264\377\235O\177\244\377\1" "x\233\270\377\204\212\250\300\377\2\210\245\274\377`r\203\377\210#4F" "\377\10Rbs\377\277\311\327\377\270\310\331\377\255\300\323\377\241\270" "\315\377\213\251\301\377\212\250\300\377f\217\257\377\233O\177\244\377" "\2Y\206\251\377\206\246\277\377\205\212\250\300\377\2z\216\240\377):" "L\377\210#4F\377\2m\177\220\377\211\247\300\377\204\212\250\300\377\1" "r\230\265\377\222O\177\244\377\2]\211\253\377\207\246\277\377\205\212" "\250\300\377\2\202\233\261\375DUg\377\203#4F\377\10$5G\377\262\275\312" "\377\302\317\337\377\267\307\331\377\253\277\322\377\222\255\304\377" "\212\250\300\377k\222\261\377\305O\177\244\377\2k\222\261\377\211\250" "\300\377\205\212\250\300\377\2\224\257\305\331\262\304\3249\314\377\377" "\377\0\7\260\303\323\1\336\343\356\313\342\346\361\375\327\336\353\377" "\315\326\345\377\302\317\337\377\231\262\311\377\202\215\252\302\377" "\2\204\245\276\377V\204\250\377\302O\177\244\377\2X\205\250\377\213\251" "\301\377\205\215\252\302\377\1k\200\223\377\204#4F\377\6""5FX\377\324" "\331\345\377\336\343\357\377\323\333\350\377\310\323\342\377\262\304" "\326\377\202\215\252\302\377\1q\227\264\377\303O\177\244\377\2V\204\247" "\377\206\246\277\377\205\215\252\302\377\2\207\240\265\377EWh\377\202" "#4F\377\7#4F\222\265\306\326\15\353\354\365\366\342\346\361\377\330\336" "\353\377\315\326\345\377\253\277\322\377\202\215\252\302\377\1g\220\260" "\377\234O\177\244\377\1|\237\272\377\204\215\252\302\377\2\213\246\275" "\377ar\204\377\207#4F\377\12#4F\376/@R\364\277\310\325\375\311\324\343" "\377\276\314\335\377\263\304\327\377\234\264\312\377\215\252\302\377" "\212\250\301\377\\\210\252\377\231O\177\244\377\2\\\210\252\377\210\247" "\300\377\205\215\252\302\377\5\210\242\270\377i{\214\377#4F\365#4F\340" "#4F\362\205#4F\377\2$5G\377~\221\242\377\205\215\252\302\377\1l\223\262" "\377\221O\177\244\377\2c\215\256\377\213\251\301\377\205\215\252\302" "\377\3\216\253\303\373\223\247\270\275(9K\370\204#4F\377\10\251\263\302" "\377\323\333\350\377\307\323\342\377\274\313\334\377\241\270\315\377" "\215\252\302\377\203\243\275\377P\200\244\377\302O\177\244\377\2W\205" "\250\377y\234\270\377\206\215\252\302\377\3\217\254\303\367\254\300\321" "\237\260\303\323\6\315\377\377\377\0\7\303\320\3360\353\353\365\367\350" "\352\364\377\336\343\356\377\324\333\351\377\310\324\342\377\241\270" "\314\377\202\220\254\303\377\3\214\251\301\377n\224\263\377R\201\245" "\377\277O\177\244\377\2Y\206\251\377\205\244\275\377\205\220\254\303" "\377\2\216\251\277\377Rev\377\205#4F\377\6\207\224\243\377\356\356\367" "\377\343\346\361\377\330\337\353\377\315\327\345\377\253\277\322\377" "\202\220\254\303\377\2\201\242\274\377]\211\253\377\300O\177\244\377" "\2c\215\255\377\211\247\277\377\206\220\254\303\377\14}\222\244\377&" "7I\377#4F\377#4F\356#4F\24\377\377\377\0\332\340\353\257\360\360\371" "\377\347\351\363\377\334\342\356\377\321\331\347\377\242\271\315\377" "\202\220\254\303\377\2\201\242\274\377^\211\253\377\232O\177\244\377" "\1\201\242\274\377\204\220\254\303\377\2\215\250\275\377`r\203\377\202" "#4F\377\20#4F\301#4F^#4F(#4F\33#4F\16#4F\2\377\377\377\0\316\327\344" "\276\332\340\354\374\316\327\346\377\303\320\337\377\270\310\331\377" "\227\261\307\377\220\254\303\377\214\252\301\377d\215\256\377\226O\177" "\244\377\3P\200\244\377o\225\263\377\216\253\302\377\205\220\254\303" "\377\3\220\254\303\375\241\266\310\305\231\254\2742\202\377\377\377\0" "\4#4F\1#4FFZ#4F\312\202#4F\377\2/@R\377\205\232\254\377\205\220\254" "\303\377\1e\216\256\377\217O\177\244\377\2[\207\252\377\177\240\273\377" "\207\220\254\303\377\4\236\266\312\321\256\301\3218#4F7#4F\345\203#4" "F\377\11\222\236\255\377\342\345\360\377\330\336\353\377\315\327\345" "\377\275\314\334\377\223\256\304\377\220\254\303\377z\235\270\377S\202" "\246\377\277O\177\244\377\3T\203\246\377t\230\265\377\216\253\302\377" "\206\220\254\303\377\3\221\255\303\372\244\272\314\301\256\301\3218\317" "\377\377\377\0\10\331\337\353b\357\356\370\374\356\356\370\377\344\347" "\362\377\333\340\355\377\321\331\347\377\263\305\326\377\227\261\306" "\377\202\223\256\304\377\6\217\254\302\377{\236\271\377g\220\257\377" "]\211\253\377V\204\250\377Q\200\245\377\264O\177\244\377\7P\177\244\377" "T\202\246\377X\206\250\377]\211\253\377g\220\260\377|\237\272\377\221" "\255\303\377\206\223\256\304\377\2\213\242\264\3777HZ\377\204#4F\377" "\10#4F\3756GY\260\331\336\352\352\360\357\370\377\347\351\364\377\335" "\342\356\377\322\333\350\377\260\303\325\377\203\223\256\304\377\4\204" "\244\275\377l\223\262\377\\\210\252\377T\202\246\377\266O\177\244\377" "\6P\200\244\377V\204\247\377]\211\253\377d\216\256\377r\230\265\377\211" "\250\277\377\207\223\256\304\377\5\216\247\272\377Tfw\377#4F\377#4F\372" "#4FB\202\377\377\377\0\7\267\310\327*\345\347\362\363\356\356\370\377" "\353\354\366\377\341\345\360\377\325\335\351\377\247\274\317\377\203" "\223\256\304\377\3~\240\272\377_\212\254\377T\202\246\377\227O\177\244" "\377\1\206\246\276\377\204\223\256\304\377\4\220\252\276\377_q\202\377" "#4F\365#4FR\207\377\377\377\0\7\271\311\330L\344\347\362\366\335\342" "\356\377\323\333\350\377\310\324\342\377\272\311\332\377\231\262\307" "\377\202\223\256\304\377\2\203\243\274\377]\211\253\377\223O\177\244" "\377\2[\207\252\377\205\245\276\377\207\223\256\304\377\2\240\270\313" "\325\254\300\320u\206\377\377\377\0\5#4F\1#4F^#4F\363=O`\377\213\241" "\264\377\205\223\256\304\377\1]\211\253\377\213O\177\244\377\5P\200\245" "\377Y\206\251\377d\216\256\377x\234\270\377\222\256\304\377\207\223\256" "\304\377\2\233\264\310\345\254\300\320\200\202\377\377\377\0\2#4F\31" "#4F\302\202#4F\377\6P`q\377\357\356\367\377\346\350\363\377\334\341\355" "\377\322\332\347\377\266\306\330\377\202\223\256\304\377\4\215\252\301" "\377r\227\264\377]\210\252\377Q\200\245\377\270O\177\244\377\5U\203\247" "\377_\212\253\377h\221\260\377u\231\266\377\217\254\302\377\207\223\256" "\304\377\3\225\260\305\370\246\274\315\306\254\300\320e\321\377\377\377" "\0\11\341\345\357x\354\354\366\372\357\357\370\377\353\354\366\377\341" "\345\360\377\330\336\353\377\313\326\344\377\253\277\322\377\227\262" "\306\377\206\225\260\305\377\2\220\255\303\377\212\250\300\377\204\206" "\246\276\377\204\207\246\276\377\202\207\247\277\377\210\210\247\277" "\377\206\211\250\277\377\202\211\250\300\377\204\212\250\300\377\202" "\212\251\300\377\206\213\251\300\377\202\213\251\301\377\210\214\252" "\301\377\2\215\253\301\377\221\256\303\377\214\225\260\305\377\2\223" "\255\301\377cv\207\377\203#4F\377\14#4F\375#4F\250#4F*\377\377\377\0" "\274\313\332h\350\352\364\370\356\356\367\377\354\354\366\377\341\345" "\360\377\327\336\352\377\304\321\340\377\244\272\315\377\205\225\260" "\305\377\5\222\256\304\377\212\250\300\377\201\242\274\377z\235\270\377" "y\234\270\377\202y\235\270\377\203z\235\270\377\204{\236\271\377\1|\236" "\271\377\203|\237\271\377\202}\237\272\377\1}\240\272\377\204~\240\272" "\377\203\177\241\273\377\202\200\241\273\377\202\200\242\273\377\1\201" "\242\273\377\203\201\242\274\377\203\202\243\274\377\202\203\243\274" "\377\202\203\244\275\377\203\204\244\275\377\2\204\245\275\377\205\245" "\275\377\202\205\245\276\377\5\206\245\276\377\206\246\276\377\207\247" "\277\377\216\253\302\377\224\260\305\377\213\225\260\305\377\5\224\256" "\302\377}\221\242\377):L\377#4F\377#4Fa\204\377\377\377\0\10\310\324" "\341\223\351\352\364\373\354\355\366\377\357\357\370\377\345\347\362" "\377\333\340\354\377\274\313\333\377\231\263\310\377\204\225\260\305" "\377\30\220\254\302\377\205\245\275\377z\235\270\377s\230\265\377s\231" "\265\377t\231\266\377u\232\266\377v\232\266\377w\233\267\377x\234\267" "\377y\234\270\377y\235\270\377z\235\270\377{\236\271\377|\237\271\377" "}\237\272\377~\240\272\377\177\241\273\377\200\241\273\377\201\242\273" "\377\201\242\274\377\202\243\274\377\203\244\275\377\223\257\304\377" "\204\225\260\305\377\3\223\254\300\377^p\201\376#4F<\211\377\377\377" "\0\7\306\322\340\242\354\354\366\376\341\345\360\377\327\336\352\377" "\315\327\345\377\300\316\335\377\237\267\312\377\203\225\260\305\377" "\5\207\246\276\377\200\241\273\377y\234\270\377r\230\265\377l\224\262" "\377\213l\223\262\377\4p\226\263\377u\232\266\377\203\243\274\377\224" "\260\305\377\207\225\260\305\377\3\235\266\311\345\252\277\317\257\252" "\277\317\20\210\377\377\377\0\3#4FPL_p\376\220\250\272\377\205\225\260" "\305\377\15\200\242\273\377~\240\272\377\177\241\273\377\200\241\273" "\377\201\242\273\377\201\242\274\377\202\243\274\377\203\244\275\377" "\204\244\275\377\205\245\275\377\206\245\276\377\213\251\300\377\224" "\260\305\377\212\225\260\305\377\3\232\264\310\356\251\276\316\244\252" "\277\317\20\203\377\377\377\0\13#4F\1#4Fg#4F\357#4F\377\260\272\310\377" "\357\356\370\377\353\353\365\377\340\344\357\377\326\335\352\377\272" "\312\332\377\226\261\306\377\204\225\260\305\377\2\223\257\304\377\217" "\254\302\377\265\215\252\301\377\1\222\256\304\377\213\225\260\305\377" "\4\230\262\306\366\247\275\316\314\252\277\317\204\252\277\317\3\322" "\377\377\377\0\13\333\341\354d\351\352\364\370\354\355\366\377\361\360" "\371\377\350\352\364\377\337\343\357\377\325\335\351\377\312\325\343" "\377\264\305\326\377\241\271\313\377\231\263\306\377\302\230\262\306" "\377\7\227\260\304\377\210\235\256\377*;M\377#4F\377#4F\365#4F\236#4" "F*\204\377\377\377\0\13\300\316\333\204\346\350\362\370\354\355\366\377" "\360\357\370\377\346\350\363\377\334\341\355\377\322\332\347\377\301" "\317\335\377\255\300\322\377\237\267\312\377\231\263\307\377\302\230" "\262\306\377\5\227\260\303\377\207\234\255\3771CT\377#4F\346#4FH\205" "\377\377\377\0\12\250\275\315\2\310\323\340\262\347\351\363\374\353\354" "\365\377\360\357\370\377\351\352\365\377\337\344\357\377\322\333\347" "\377\270\311\331\377\243\272\314\377\236\230\262\306\377\2\226\256\301" "\377i}\216\316\212\377\377\377\0\11\250\275\315\17\323\333\347\332\357" "\357\370\377\345\350\362\377\334\341\355\377\322\332\347\377\310\324" "\342\377\263\305\326\377\237\267\312\377\233\230\262\306\377\3\237\267" "\311\347\250\275\315\265\250\275\315\33\212\377\377\377\0\2n\202\222" "\304\225\255\277\377\233\230\262\306\377\3\236\266\310\354\247\275\315" "\246\250\275\315\16\206\377\377\377\0\14#4F\30#4F\252J\\n\377\331\336" "\351\377\355\355\367\377\356\356\367\377\344\347\362\377\333\340\354" "\377\315\327\344\377\263\305\325\377\240\267\312\377\231\262\306\377" "\303\230\262\306\377\4\233\264\307\365\246\274\314\325\250\275\315s\250" "\275\315\1\324\377\377\377\0\16\323\333\347N\336\343\356\361\352\353" "\365\376\356\356\367\377\355\355\367\377\344\347\362\377\334\341\355" "\377\323\333\350\377\312\325\343\377\277\316\335\377\262\305\325\377" "\247\275\316\377\237\270\312\377\233\264\307\377\275\232\264\307\377" "\6\232\263\305\377\223\251\272\377FYj\377#4F\314#4Fh#4F\16\207\377\377" "\377\0\15\272\312\330\217\343\346\360\371\353\354\365\376\357\357\370" "\377\352\353\365\377\340\345\360\377\327\336\353\377\315\327\345\377" "\303\320\337\377\271\312\331\377\256\302\322\377\243\272\314\377\233" "\265\307\377\276\232\264\307\377\5\231\262\304\377\220\246\267\377:K" "]\374#4F\243#4F\23\207\377\377\377\0\16\246\274\314\11\302\317\335\306" "\345\347\362\374\351\353\364\377\356\356\367\377\355\355\367\377\344" "\347\362\377\332\340\354\377\320\331\347\377\303\321\337\377\263\306" "\326\377\250\276\317\377\240\270\312\377\234\265\310\377\231\232\264" "\307\377\2\230\260\302\377\211\236\256\210\213\377\377\377\0\14\257\302" "\321\26\323\333\347\341\360\357\370\377\351\353\364\377\340\344\357\377" "\326\335\352\377\314\327\344\377\303\320\336\377\266\307\327\377\251" "\276\317\377\237\270\312\377\233\265\307\377\225\232\264\307\377\4\234" "\265\307\372\242\271\312\350\246\274\314\271\246\274\314\27\213\377\377" "\377\0\2\223\250\270\253\231\261\303\377\231\232\264\307\377\4\234\265" "\307\373\241\271\312\351\246\274\314\245\246\274\314\13\211\377\377\377" "\0\16#4F@r\202\222\330\333\340\353\377\353\354\366\377\360\360\371\377" "\350\352\364\377\337\343\356\377\325\335\351\377\313\326\343\377\301" "\317\336\377\265\307\327\377\252\277\320\377\242\271\314\377\233\265" "\307\377\275\232\264\307\377\4\233\264\307\375\237\267\311\357\245\273" "\314\321\246\274\314Y\327\377\377\377\0\16\251\277\316\"\307\323\340" "\302\343\347\361\373\354\354\366\376\360\357\370\377\352\353\365\377" "\342\345\360\377\331\340\354\377\321\332\347\377\310\324\342\377\277" "\316\334\377\266\310\326\377\254\301\320\377\243\273\313\377\273\234" "\266\307\377\4\233\264\305\377\212\241\261\371FYj\250#4F1\213\377\377" "\377\0\15\265\307\325^\317\330\345\346\350\352\364\375\356\356\367\377" "\355\355\367\377\344\347\362\377\333\341\355\377\322\333\350\377\311" "\325\343\377\277\316\335\377\265\310\327\377\253\301\321\377\241\271" "\312\377\273\234\266\307\377\5\234\265\307\377\232\262\303\377}\222\243" "\370\77Rc\225#4F\34\212\377\377\377\0\16\244\273\313\4\275\314\332w\331" "\337\353\360\350\352\364\376\354\355\366\377\360\360\371\377\347\351" "\363\377\336\343\357\377\325\335\352\377\314\327\344\377\302\321\337" "\377\270\312\331\377\257\303\323\377\245\274\314\377\230\234\266\307" "\377\2\233\263\304\377\240\266\306j\214\377\377\377\0\14\244\273\313" "\23\312\325\342\324\356\356\367\376\355\355\367\377\344\347\361\377\332" "\340\354\377\321\332\346\377\307\324\340\377\276\315\333\377\265\307" "\326\377\253\300\320\377\242\272\312\377\222\234\266\307\377\5\235\266" "\310\375\241\271\311\362\244\273\313\350\244\273\313\213\244\273\313" "\14\214\377\377\377\0\2\243\272\312\271\234\265\306\377\227\234\266\307" "\377\5\235\266\310\375\241\271\311\362\244\273\313\321\244\273\313U\244" "\273\313\1\214\377\377\377\0\15\224\245\265\204\330\336\351\374\352\353" "\365\377\356\356\367\377\354\355\366\377\343\346\361\377\331\340\353" "\377\320\331\345\377\306\323\340\377\275\315\332\377\263\306\325\377" "\252\300\317\377\241\271\312\377\272\234\266\307\377\5\235\266\310\376" "\240\270\311\364\243\273\313\344\244\273\313\201\244\273\313\20\332\377" "\377\377\0\16\262\305\324B\306\323\340\324\336\343\356\375\355\355\367" "\377\357\357\370\377\347\351\363\377\336\343\356\377\326\335\351\377" "\316\330\345\377\305\322\340\377\275\314\333\377\264\306\326\377\253" "\300\320\377\242\272\313\377\267\236\267\310\377\4\237\267\310\376\240" "\270\310\371\232\261\301\243\242\272\312\13\216\377\377\377\0\15\242" "\272\312\11\263\305\324\211\320\332\346\364\352\353\365\376\361\360\371" "\377\350\352\364\377\336\343\356\377\325\335\350\377\314\326\343\377" "\303\320\336\377\271\312\331\377\260\304\324\377\242\272\312\377\271" "\236\267\310\377\4\236\267\307\375\231\261\301\356\200\226\247\200#4" "F\4\216\377\377\377\0\16\254\301\320\13\313\326\343\242\337\344\357\371" "\353\354\365\377\357\357\370\377\352\354\365\377\341\345\360\377\331" "\337\353\377\320\331\346\377\307\323\342\377\276\315\334\377\265\306" "\327\377\253\300\321\377\237\270\311\377\226\236\267\310\377\2\236\266" "\307\376\242\272\312b\215\377\377\377\0\14\242\272\312\1\305\322\337" "~\334\342\355\363\360\360\371\377\347\351\363\377\336\343\356\377\325" "\335\351\377\314\327\343\377\303\320\336\377\271\312\330\377\260\304" "\323\377\247\275\315\377\217\236\267\310\377\5\237\270\310\376\240\271" "\311\371\242\272\312\364\242\272\312\325\242\272\312@\216\377\377\377" "\0\1\240\270\310\346\226\236\267\310\377\5\237\270\311\376\240\271\311" "\371\242\272\312\355\242\272\312~\242\272\312\13\217\377\377\377\0\15" "\271\312\330/\311\324\340\333\342\346\360\376\355\355\367\377\357\357" "\370\377\346\351\363\377\335\342\355\377\324\334\350\377\313\326\342" "\377\301\317\335\377\270\311\330\377\257\303\322\377\246\275\315\377" "\267\236\267\310\377\5\237\270\311\376\240\271\311\371\242\272\312\364" "\242\272\312\240\242\272\312\40\336\377\377\377\0\15\241\271\311,\275" "\314\332\226\323\333\347\351\344\347\361\377\354\355\366\377\344\347" "\361\377\334\341\354\377\323\334\347\377\313\326\342\377\303\320\335" "\377\272\312\330\377\262\305\323\377\252\277\316\377\264\241\271\311" "\377\4\241\271\311\374\240\271\311\275\241\271\311l\241\271\311\35\222" "\377\377\377\0\13\241\271\311\7\252\277\316X\277\316\333\304\322\333" "\346\374\340\344\357\377\337\344\356\377\331\340\353\377\320\332\345" "\377\307\323\340\377\276\315\333\377\251\277\316\377\267\241\271\311" "\377\4\240\271\311\355\241\271\311\231\241\271\311A\241\271\311\2\222" "\377\377\377\0\14\245\273\313\22\274\314\331\242\317\331\345\372\352" "\353\365\377\356\356\367\377\345\350\362\377\334\342\355\377\323\334" "\347\377\312\325\342\377\302\317\335\377\271\311\327\377\250\276\315" "\377\227\241\271\311\377\1\241\271\311[\217\377\377\377\0\14\241\271" "\311\10\275\314\332\223\330\337\352\372\347\351\363\377\342\346\360\377" "\331\340\353\377\320\332\345\377\310\324\340\377\276\315\333\377\266" "\307\325\377\255\301\320\377\244\273\313\377\216\241\271\311\377\3\241" "\271\311\372\241\271\311\225\241\271\311\14\216\377\377\377\0\1\241\271" "\311\20\226\241\271\311\377\4\241\271\311\376\241\271\311\342\241\271" "\311\245\241\271\311\40\223\377\377\377\0\15\244\273\313K\277\316\333" "\270\326\335\351\367\350\352\363\377\351\353\364\377\341\345\357\377" "\330\337\352\377\317\331\345\377\306\323\337\377\276\315\332\377\265" "\307\325\377\254\301\320\377\243\273\312\377\264\241\271\311\377\4\241" "\271\311\363\241\271\311\315\241\271\311\247\241\271\3115\343\377\377" "\377\0\13\241\271\311\20\265\307\3255\314\327\343n\323\334\347\227\326" "\336\351\263\320\331\345\274\307\323\340\300\301\317\334\273\272\312" "\330\264\264\306\324\255\245\274\313\241\202\241\271\311\235\202\241" "\271\311\234\202\241\271\311\233\202\241\271\311\232\202\241\271\311" "\231\202\241\271\311\230\202\241\271\311\227\202\241\271\311\226\202" "\241\271\311\225\202\241\271\311\224\202\241\271\311\223\202\241\271" "\311\222\202\241\271\311\221\202\241\271\311\220\202\241\271\311\217" "\202\241\271\311\216\202\241\271\311\215\202\241\271\311\214\202\241" "\271\311\213\203\241\271\311\212\202\241\271\311\211\11\241\271\311\210" "\241\271\311\207\241\271\311{\241\271\311k\241\271\311Z\241\271\311I" "\241\271\3119\241\271\311(\241\271\311\15\230\377\377\377\0\21\241\271" "\311\11\241\271\311+\241\271\311I\252\277\317o\262\305\323\224\265\307" "\325\263\265\307\325\315\247\275\315\322\241\271\311\316\241\271\311" "\315\241\271\311\314\241\271\311\313\241\271\311\312\241\271\311\311" "\241\271\311\310\241\271\311\307\241\271\311\306\202\241\271\311\305" "\34\241\271\311\304\241\271\311\303\241\271\311\302\241\271\311\301\241" "\271\311\300\241\271\311\277\241\271\311\276\241\271\311\275\241\271" "\311\274\241\271\311\273\241\271\311\272\241\271\311\271\241\271\311" "\270\241\271\311\267\241\271\311\266\241\271\311\265\241\271\311\264" "\241\271\311\263\241\271\311\262\241\271\311\261\241\271\311\260\241" "\271\311\257\241\271\311\256\241\271\311\255\241\271\311\254\241\271" "\311\253\241\271\311\252\241\271\311\251\202\241\271\311\250\16\241\271" "\311\247\241\271\311\246\241\271\311\245\241\271\311\244\241\271\311" "\243\241\271\311\242\241\271\311\241\241\271\311\240\241\271\311\224" "\241\271\311z\241\271\311_\241\271\311D\241\271\311)\241\271\311\17\230" "\377\377\377\0\"\241\271\311\2\245\274\313$\275\314\332`\312\325\342" "\234\317\330\344\303\316\330\344\334\307\323\340\355\302\317\335\360" "\275\314\332\354\253\300\317\343\241\271\311\335\241\271\311\332\241" "\271\311\326\241\271\311\323\241\271\311\320\241\271\311\315\241\271" "\311\312\241\271\311\307\241\271\311\304\241\271\311\301\241\271\311" "\276\241\271\311\273\241\271\311\270\241\271\311\264\241\271\311\261" "\241\271\311\256\241\271\311\253\241\271\311\250\241\271\311\245\241" "\271\311\242\241\271\311\237\241\271\311\234\241\271\311\232\241\271" "\3111\221\377\377\377\0\12\241\271\311\24\244\273\313t\272\312\330\245" "\310\324\340\312\307\323\340\333\303\320\335\352\276\315\332\371\271" "\312\327\377\264\306\324\377\256\302\321\377\211\241\271\311\377\6\241" "\271\311\372\241\271\311\346\241\271\311\320\241\271\311\254\241\271" "\311]\241\271\311\20\220\377\377\377\0\30\241\271\311*\241\271\311\334" "\241\271\311\330\241\271\311\324\241\271\311\320\241\271\311\314\241" "\271\311\311\241\271\311\306\241\271\311\303\241\271\311\277\241\271" "\311\274\241\271\311\271\241\271\311\266\241\271\311\262\241\271\311" "\257\241\271\311\254\241\271\311\251\241\271\311\246\241\271\311\242" "\241\271\311\235\241\271\311}\241\271\311V\241\271\3110\241\271\311\12" "\230\377\377\377\0\14\241\271\311\2\241\271\3115\245\273\313X\265\307" "\325w\275\314\332\220\274\313\331\234\267\310\326\234\263\306\324\230" "\260\303\322\225\254\300\317\221\250\276\315\215\244\273\313\212\257" "\241\271\311\210\4\241\271\311\202\241\271\311a\241\271\311<\241\271" "\311\27\267\377\377\377\0"}; osmo-0.4.2/install-sh0000755000175000017500000003546313075245513011437 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2014-09-12.12; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # 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. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) # $RANDOM is not portable (e.g. dash); use it when possible to # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 # As "mkdir -p" follows symlinks and we work in /tmp possibly; so # create the $tmpdir first (and fail if unsuccessful) to make sure # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # 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. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: osmo-0.4.2/ChangeLog0000664000175000017500000001304713204320210011157 000000000000002017-11-20: version 0.4.2 * Added support for Webkit user stylesheets * GtkSpell replaced by gspelli * Few important bugs fixed * Updated translations 2017-04-15: version 0.4.0 * Migrated to GTK+-3 and WebKit2Gtk * Bug fixes (#105, #90, #108, #104) * More customisable calendar colors * Use the XDG directory structure for the config and data files (#133) * Moon phase icon is now displayed * Show hidden files in the file chooser dialogs (#143) * Saved the Osmo state on SIGINT and SIGTERM signals * Option to disable background colors in calendar printing * New and updated translations 2015-08-08: version 0.2.14 * Export contacts to vCard 4.0 format (VCF) * Multiple selection in tasks, contacts and notes * Sorting by column header (#127, #85) * Task notification dialog may be disabled * Contacts CSV export/import fixes * Option to open links in the selected text in notes * A lot of bug fixes * Added translations: sr, he * Updated translations: pt_BR, cs, lt, da, pl 2014-10-15: version 0.2.12 * Support for HTML links * Improved text searching in notes * Optional fullscreen mode * Webkit support * GUI fixes and improvements * Libtar has been replaced by Libarchive * Data backup functionality is accessible from toolbar * Added --mutt-query=STRING commandline command * Maps provider can be selected (Google, Bing, OSM) * Added translations: ur, ur_PK, pt_BR, ro, te, gl, gl_es * Updated translations: ru, uk, it, de, pt_BR, cs, en_GB, fr, nl, pt 2010-03-31: version 0.2.10 * Optional horizontal (netbook-friendly) GUI * Search capability added for tasks and notes list * Configurable date format in calendar header * Options and About tabs are moved to separate windows * Read-only mode and customizable font for notes * Statistics for selected text in notes * Many GUI improvements * Added translations: en_GB, da, bg * Updated translations: cs, es, jp, pl, it, de, fr, hu, nl, zh_cn 2009-08-21: version 0.2.8 * Encrypted data backup * Exporting tasks to iCal file * Option to ignore weekend days in date calculator * Text attributes are handled now in day notes editor * Default alarm sound for task reminder * Added new calendar marker for birthdays * Slightly improved iCal support * Locale settings are used by default * Many improvements and fixes * Added translations: uk * Updated translations: it, fr, ru, jp, tr, cs, nl, es, pl 2009-03-06: version 0.2.6 * Unencrypted notes implemented * Calendar printing improvements * Spell checker support * Showing map location of selected contact using Google Maps * The order and width of columns is configurable * System tray support improvements * Selected modules can be disabled at compilation stage * Printing support is optional * Many bug fixes * Added translations: ca, el, fi, sv * Updated translations: tr, fr, de, nl, es, cs, pl 2008-09-27: version 0.2.4 * Exporting calendar events to iCal file * Preliminary calendar and tasks list printing * Improved birthdays browser * Option to save data after every modification * Global notification command for tasks * Added --tinygui commandline option * Many bug fixes and enhancements * A temporary birthday logo * Added translations: tr, ja * Updated translations: fr, pl, es, de, nl, cs 2008-07-22: version 0.2.2 * Advanced task reminder and event checker * Importing contacts from SyncML based devices (experimental) * Day notes browser with filtering and searching capabilities * A popup menu in the calendar widget * Alternative view in full year calendar * Day category can be displayed in day info panel * Personal data in calendar can be temporary hidden * A marker for current day with distance metric added * Three new event markers in calendar widget * New commandline options * A lot of improvements and bug fixes * Added Hungarian, Italian, Russian and Chinese translations * Updated German, Czech, French, Polish, Spanish and Dutch translations 2008-02-08: version 0.2.0 * Encrypted notes editor * Selected modules can be hidden * Short statistics in full year calendar * Days in full-year calendar have assigned jump-to functionality * Added jump-to button to calendar calculator * Zodiac sign name can be displayed in day info panel * Bug fixes and many small GUI changes * Added Spanish and Lithuanian translation * Updated Dutch, Czech, Portuguese, German and Polish translations 2007-12-24: version 0.1.6 * Support for iCalendar files added * Configurable day info panel * Option to change tab bar position * A temporary holiday logo * Several usability changes * Added Dutch translation * Updated Czech and Polish translations 2007-12-04: version 0.1.4 * System tray support * Birthdays browser * Windows sizes and positions are preserved between sessions * Auxiliary calendars for the previous and next month added * Current time is displayed in the day info panel * Many bug fixes and cleanups * Updated Polish translation 2007-11-17: version 0.1.2 * Arbitrary colors can be assigned to days with notes * Date calculator * Popup menu to change month in calendar * A new type of calendar mark * Many small GUI changes and updates * A lot of code rewritten * Added French, Czech and German translations * Updated Portuguese and Polish translations 2007-10-22: version 0.1.1 * Importing contacts from CSV files is now available * Multiline fields are exported correctly in CSV files * Various minor fixes and enhancements 2007-09-27: version 0.1.0 * First public release osmo-0.4.2/AUTHORS0000664000175000017500000000271713074511277010503 00000000000000 Authors ------- Tomasz Maka (Programming) Piotr Maka (Programming) Maja Kocon (http://pinky-babble.org) (Graphics) Contributors ------------ LibSyncML support, fixes: Markus Dahms Windows port: Nacho Alonso González Mutt query command: Maarten Faddegon Bug fixes, GUI updates and GTK3 port: Maxim Gordienko Borrowed code ------------- - The calendar widget is slighty modified version of standard GTK+ calendar widget developed by GTK+ Development Team - Routines to get and put text with tags into text view widget have been written by Michael Terry, the author of xpad (http://xpad.sf.net) - Case insensitive text find routine (gtksourceiter.[ch]) by Paolo Maggi and Jeroen Zwartepoorte Bug reports and patches ------------------------ Bruno Miguel Andrea Antolini Nacho Alonso González Pierre-Emmanuel André W. Goesgens Tiger!P Eike Nicklas Omair Eshkenazi Lylliann Essandre Michael Pusterhofer Norm Pierce Christoph Wickert Markus Koschany osmo-0.4.2/m4/0000775000175000017500000000000013204323474010017 500000000000000osmo-0.4.2/m4/libxml2.m40000664000175000017500000001731013066543472011564 00000000000000# Configure paths for LIBXML2 # Mike Hommey 2004-06-19 # use CPPFLAGS instead of CFLAGS # Toshio Kuratomi 2001-04-21 # Adapted from: # Configure paths for GLIB # Owen Taylor 97-11-3 dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for XML, and define XML_CPPFLAGS and XML_LIBS dnl AC_DEFUN([AM_PATH_XML2],[ AC_ARG_WITH(xml-prefix, [ --with-xml-prefix=PFX Prefix where libxml is installed (optional)], xml_config_prefix="$withval", xml_config_prefix="") AC_ARG_WITH(xml-exec-prefix, [ --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)], xml_config_exec_prefix="$withval", xml_config_exec_prefix="") AC_ARG_ENABLE(xmltest, [ --disable-xmltest Do not try to compile and run a test LIBXML program],, enable_xmltest=yes) if test x$xml_config_exec_prefix != x ; then xml_config_args="$xml_config_args" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config fi fi if test x$xml_config_prefix != x ; then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_prefix/bin/xml2-config fi fi AC_PATH_PROG(XML2_CONFIG, xml2-config, no) min_xml_version=ifelse([$1], ,2.0.0,[$1]) AC_MSG_CHECKING(for libxml - version >= $min_xml_version) no_xml="" if test "$XML2_CONFIG" = "no" ; then no_xml=yes else XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_xmltest" = "xyes" ; then ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS" LIBS="$XML_LIBS $LIBS" dnl dnl Now check if the installed libxml is sufficiently new. dnl (Also sanity checks the results of xml2-config to some extent) dnl rm -f conf.xmltest AC_TRY_RUN([ #include #include #include #include int main() { int xml_major_version, xml_minor_version, xml_micro_version; int major, minor, micro; char *tmp_version; system("touch conf.xmltest"); /* Capture xml2-config output via autoconf/configure variables */ /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = (char *)strdup("$min_xml_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string from xml2-config\n", "$min_xml_version"); exit(1); } free(tmp_version); /* Capture the version information from the header files */ tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); exit(1); } free(tmp_version); /* Compare xml2-config output to the libxml headers */ if ((xml_major_version != $xml_config_major_version) || (xml_minor_version != $xml_config_minor_version) || (xml_micro_version != $xml_config_micro_version)) { printf("*** libxml header files (version %d.%d.%d) do not match\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** xml2-config (version %d.%d.%d)\n", $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); return 1; } /* Compare the headers to the library to make sure we match */ /* Less than ideal -- doesn't provide us with return value feedback, * only exits if there's a serious mismatch between header and library. */ LIBXML_TEST_VERSION; /* Test that the library is greater than our minimum version */ if ((xml_major_version > major) || ((xml_major_version == major) && (xml_minor_version > minor)) || ((xml_major_version == major) && (xml_minor_version == minor) && (xml_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); printf("*** correct copy of xml2-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } return 1; } ],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_xml" = x ; then AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$XML2_CONFIG" = "no" ; then echo "*** The xml2-config script installed by LIBXML could not be found" echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the XML2_CONFIG environment variable to the" echo "*** full path to xml2-config." else if test -f conf.xmltest ; then : else echo "*** Could not run libxml test program, checking why..." CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS" LIBS="$LIBS $XML_LIBS" AC_TRY_LINK([ #include #include ], [ LIBXML_TEST_VERSION; return 0;], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBXML or finding the wrong" echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ]) CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" fi fi XML_CPPFLAGS="" XML_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(XML_CPPFLAGS) AC_SUBST(XML_LIBS) rm -f conf.xmltest ]) osmo-0.4.2/m4/pkg.m40000664000175000017500000001214513066543472010775 00000000000000# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # 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. # # 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES osmo-0.4.2/FAQ0000664000175000017500000000326113074515325007756 00000000000000 Q: How to add or update translations in Osmo? A: Please join or create the language team at Transifex (http://www.transifex.com/pasp/osmo/). =============================================================================== Q: How to use Osmo with different configurations? A: Since version 0.4.0 Osmo uses XDG Base Directory Specification (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) for storing configuration and data files. The files are stored in locations indicated by XDG_CONFIG_HOME and XDG_DATA_HOME environmental variables. Typically, these variables are set to $HOME/.config/osmo and $HOME/.local/share/osmo directories. In order to run Osmo with other setup, these variables have to be adjusted - e.g. (for BASH shell): export XDG_CONFIG_HOME="path/to/osmo/config" export XDG_DATA_HOME="path/to/osmo/data" =============================================================================== Q: Does Osmo support data synchronization with online services? A: Unfortunately no. Because of lack of our interest in such feature we do not plan to work on it. Any patches related to data synchronization functionality are welcome. =============================================================================== Q: I get the following message on console when I run Osmo: java version "1.7.0_55" OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode Does Osmo require Java? A: No, this message is generated by Java plugin for Webkit. Because Osmo uses Webkit for HTML rendering such output is generated during initialization. osmo-0.4.2/configure.ac0000664000175000017500000002061313177616165011722 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT([Osmo], [0.4.2], [pasp@users.sf.net]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([-Wall foreign]) AC_CONFIG_SRCDIR([src/contacts.c]) AC_CONFIG_HEADER([config.h]) AC_MSG_CHECKING(for type of build) PKG_PROG_PKG_CONFIG # Checks for enabled modules AC_ARG_WITH(contacts, [[ --without-contacts disable Contacts module]], [if test "x$withval" = "xyes" ; then contacts="yes" ; else contacts="no"; fi], contacts="yes") AC_ARG_WITH(tasks, [[ --without-tasks disable Tasks module]], [if test "x$withval" = "xyes" ; then tasks="yes" ; else tasks="no"; fi], tasks="yes") AC_ARG_WITH(notes, [[ --without-notes disable Notes module]], [if test "x$withval" = "xyes" ; then notes="yes" ; else notes="no"; fi], notes="yes") if test "x$notes" = "xyes"; then AC_DEFINE([NOTES_ENABLED], [1], [Notes module enabled]) fi # Checks for programs. SAVEDFLAGS=${CFLAGS} AC_PROG_CC CFLAGS=${SAVEDFLAGS} # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([libintl.h locale.h fcntl.h stdlib.h string.h sys/time.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_STRUCT_TM AC_TYPE_SIZE_T AC_SYS_LARGEFILE # Checks for library functions. AC_FUNC_STAT AC_FUNC_STRFTIME AC_CHECK_FUNCS([floor memset setlocale strncasecmp strstr strtol]) # Checks for msgfmt AC_PATH_PROG(MSGFMT, msgfmt, msgfmt) # Checks for libraries. AM_PATH_GTK_3_0(3.10.0,, AC_MSG_ERROR([GTK+ not found or too old (version < 3.10)])) AM_PATH_XML2(2.0.0,, AC_MSG_ERROR([You do not appear to have libxml2 installed.])) PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.6.0) # Checks for libgringotts AC_CHECK_LIB(gringotts, grg_context_initialize_defaults, [lib=yes], [lib=no]) libgringotts="no" if test "$lib" = "yes"; then libgringotts="yes" fi if test "x$lib" = "xyes"; then gringotts_LIBS="-lgringotts" AC_DEFINE([HAVE_LIBGRINGOTTS], [1], [Defined to 1 if compile with libgringotts support]) fi # Checks for libarchive PKG_CHECK_MODULES(LIBARCHIVE, libarchive >= 3.0.0, have_libarchive=true, have_libarchive=false) if test "x$have_libarchive" = "xtrue"; then libarchive="yes" libarchive_LIBS="-larchive" AC_DEFINE([HAVE_LIBARCHIVE], [1], [Defined to 1 if compile with libarchive support]) else libarchive="no" fi AM_CONDITIONAL([HAVE_LIBARCHIVE], test "x$have_libarchive" = "xtrue") # Checks for libsqlite3 #PKG_CHECK_MODULES(LIBSQLITE3, sqlite3 >= 3.7.0, have_libsqlite3=true, # have_libsqlite3=false) #if test "x$have_libsqlite3" = "xtrue"; then # AC_DEFINE([HAVE_LIBSQLITE3], [1], [Definded to 1 if compile with libsqlite3 support]) # libsqlite3="yes" #else # libsqlite3="no" #fi #AM_CONDITIONAL([HAVE_LIBSQLITE3], test "x$have_libsqlite3" = "xtrue") # Checks for libical PKG_CHECK_MODULES(LIBICAL, libical >= 1.0, have_libical=true, have_libical=false) if test "x$have_libical" = "xtrue"; then AC_DEFINE([HAVE_LIBICAL], [1], [Definded to 1 if compile with libical support]) libical="yes" else libical="no" fi AM_CONDITIONAL([HAVE_LIBICAL], test "x$have_libical" = "xtrue") # Checks for gspell PKG_CHECK_MODULES(GSPELL, gspell-1 >= 1.2.0, have_gspell=true, have_gspell=false) if test "x$have_gspell" = "xtrue"; then AC_DEFINE([HAVE_GSPELL], [1], [Definded to 1 if compile with gspell support]) gspell="yes" else gspell="no" fi AM_CONDITIONAL([HAVE_GSPELL], test "x$have_gspell" = "xtrue") # Checks for libnotify PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= 0.7.0, have_libnotify7=true, have_libnotify7=false) if test "x$have_libnotify7" = "xtrue"; then AC_DEFINE([HAVE_LIBNOTIFY], [1], [Definded to 1 if compile with libnotify support]) AC_DEFINE([HAVE_LIBNOTIFY7], [1], [Definded to 1 if compile with libnotify >= 0.7.0 support]) libnotify="yes" else PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= 0.4.4, have_libnotify=true, have_libnotify=false) if test "x$have_libnotify" = "xtrue"; then AC_DEFINE([HAVE_LIBNOTIFY], [1], [Definded to 1 if compile with libnotify support]) libnotify="yes" else libnotify="no" fi fi AM_CONDITIONAL([TASKS_ENABLED], test "x$tasks" = "xyes") AM_CONDITIONAL([HAVE_LIBNOTIFY], test "x$have_libnotify" = "xtrue") if test "x$tasks" = "xyes"; then AC_DEFINE([TASKS_ENABLED], [1], [Tasks module enabled]) fi # Checks for libwebkit PKG_CHECK_MODULES(LIBWEBKIT, webkit2gtk-4.0 >= 2.4.0, have_libwebkit=true, have_libwebkit=false) if test "x$have_libwebkit" = "xtrue"; then libwebkit="yes" else libwebkit="no" fi contacts="yes"; htmlrender="no"; if test "x$have_libwebkit" = "xfalse"; then contacts="no"; else htmlrender="webkit"; contacts="yes"; AC_DEFINE([HAVE_LIBWEBKIT], [1], [Definded to 1 if compile with libwebkit support]) AC_DEFINE([HTMLRENDER], ["webkit"], [HTML render type]) fi AM_CONDITIONAL([HAVE_LIBWEBKIT], test "x$libwebkit" = "xyes") if test "x$contacts" = "xyes"; then AC_DEFINE([CONTACTS_ENABLED], [1], [Contacts module enabled]) fi # Checks for Pango 1.20 PKG_CHECK_MODULES(PANGO_1_20, pango >= 1.20, [HAVE_PANGO_1_20=yes], [HAVE_PANGO_1_20=no]) if test "x$HAVE_PANGO_1_20" = xyes; then AC_DEFINE(HAVE_PANGO_1_20, 1, [Define to 1 if you have Pango-1.20]) fi # Checks for additional options AC_ARG_ENABLE( reproducible, [ --enable-reproducible=yes,no make the build reproducible (default: no)], reproducible="$enableval", reproducible="no") if test "x$reproducible" = "xyes"; then AC_DEFINE([REPRODUCIBLE_BUILD], [1], [Defined if doing a reproducible build]) fi AC_ARG_ENABLE( debug, [ --enable-debug=yes,no compile with debugging support (default: no)], debug="$enableval", debug="no") if test "x$debug" = "xyes"; then BUILD_CFLAGS="-rdynamic -ggdb -g -O0" AC_DEFINE([DEBUG_BUILD], [1], [Defined if doing a debug build]) fi AC_ARG_ENABLE( printing, [ --enable-printing=yes,no compile with printing support (default: yes)], printing="$enableval", printing="yes") if test "x$printing" = "xyes"; then AC_DEFINE([PRINTING_SUPPORT], [1], [Defined if printing support is enabled]) fi AC_ARG_ENABLE( backup, [ --enable-backup=yes,no compile with backup support (default: yes)], backup="$enableval", backup="yes") if test "x$backup" = "xyes"; then if test "x$libarchive" = "xyes"; then if test "x$libgringotts" = "xyes"; then AC_DEFINE([BACKUP_SUPPORT], [1], [Defined if backup support is enabled]) else backup="no" fi else backup="no" fi fi AC_ARG_WITH([config-path], AS_HELP_STRING([--with-config-path=PATH], [use a non-default config path. Deprecated, used for the configuration migration only]), [configpath=$withval AC_SUBST([configpath])]) AM_CONDITIONAL([CONFIGPATH], [test x$configpath != x]) AC_ARG_WITH([config-dir], AS_HELP_STRING([--with-config-dir=DIR], [use a non-default config directory. Deprecated, used for the configuration migration only]), [configdir=$withval AC_SUBST([configdir])]) AM_CONDITIONAL([CONFIGDIR], [test x$configdir != x]) CFLAGS=${CFLAGS:="$BUILD_CFLAGS -Wall $PLATFORM_CFLAGS -D_GNU_SOURCE"} CXXFLAGS=${CXXFLAGS:="$CFLAGS"} CPPFLAGS="" LIBS="$gringotts_LIBS $libarchive_LIBS" AC_CONFIG_FILES([ Makefile src/Makefile po/Makefile data/Makefile data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/icons/scalable/Makefile data/pixmaps/Makefile data/sounds/Makefile ]) AC_OUTPUT # WIN32 build AM_CONDITIONAL([WIN32], test "$WIN32" = "yes") # libsqlite3: $libsqlite3 echo " Configuration: Prefix: $prefix Debug enabled: $debug Reproducible build: $reproducible Backup support: $backup (libgringotts and libarchive are required) Printing support: $printing HTML renderer: $htmlrender Enabled modules: Calendar: yes (always) Tasks: $tasks Contacts: $contacts (HTML renderer is required) Notes: $notes Optional features: gspell: $gspell libical: $libical libnotify: $libnotify libarchive: $libarchive libgringotts: $libgringotts " osmo-0.4.2/data/0000775000175000017500000000000013204323475010411 500000000000000osmo-0.4.2/data/Makefile.in0000664000175000017500000005424413204317526012407 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-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 \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(applicationsdir)" NROFF = nroff MANS = $(man_MANS) DATA = $(applications_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons pixmaps sounds applicationsdir = $(datadir)/applications applications_DATA = osmo.desktop man_MANS = osmo.1 EXTRA_DIST = $(applications_DATA) $(man_MANS) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/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 $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-applicationsDATA: $(applications_DATA) @$(NORMAL_INSTALL) @list='$(applications_DATA)'; test -n "$(applicationsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(applicationsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(applicationsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(applicationsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(applicationsdir)" || exit $$?; \ done uninstall-applicationsDATA: @$(NORMAL_UNINSTALL) @list='$(applications_DATA)'; test -n "$(applicationsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(applicationsdir)'; $(am__uninstall_files_from_dir) # 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. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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)'; \ 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(applicationsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-applicationsDATA install-man @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: 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: uninstall-applicationsDATA uninstall-man @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook uninstall-man: uninstall-man1 .MAKE: $(am__recursive_targets) install-am install-data-am \ install-strip uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am \ install-applicationsDATA install-data install-data-am \ install-data-hook install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 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-am uninstall \ uninstall-am uninstall-applicationsDATA uninstall-hook \ uninstall-man uninstall-man1 .PRECIOUS: Makefile install-data-hook: uninstall-hook: # 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: osmo-0.4.2/data/osmo.10000664000175000017500000000436213177616315011404 00000000000000.TH "Osmo" "1" "0.4.2" "Tomasz Maka " "" .SH "NAME" .LP Osmo \- a handy personal organizer .SH "SYNTAX" .LP osmo [\fIoption\fP] .SH "DESCRIPTION" .LP Osmo is a handy personal organizer, which includes calendar, tasks manager, address book and notes modules. It was designed to be a small, easy to use and good looking PIM tool to help to manage personal information. .SH "OPTIONS" .LP .TP \fB\-c, \-\-calendar\fR Show small calendar window .TP \fB\-e, \-\-check\fR Check for events since last run .TP \fB\-d, \-\-days\fR Number of days to check forward for events (default: 0) .TP \fB\-q, \-\-mutt-query=STRING\fR Match contacts with given string .TP \fB\-\-html-stylesheet=FILE\fR Use the specified stylesheet(CSS) file for the HTML renderer. Suitable for matching the content in the HTML renderer with the GTK theme. .TP \fB\-?, \-\-help\fR Output help information and exit. .SH "FILES" .LP The files are stored in locations indicated by \fBXDG_CONFIG_HOME\fR and \fBXDG_DATA_HOME\fR environmental variables. .LP The default locations: .LP \fI$HOME/.config/osmo/config.xml\fP \- configuration .br \fI$HOME/.local/share/osmo/calendar_notes.xml\fP \- calendar groups and notes .br \fI$HOME/.local/share/osmo/contacts_records.xml\fP \- contacts data .br \fI$HOME/.local/share/osmo/ical_files.xml\fP \- active iCalendar files .br \fI$HOME/.local/share/osmo/notes_entries.xml\fP \- notes list .br \fI$HOME/.local/share/osmo/notes/*.osm\fP \- notes data files .br \fI$HOME/.local/share/osmo/tasks_entries.xml\fP \- tasks data .SH "EXAMPLES" .LP To run this program the standard way type: .LP osmo .LP To run small calendar type: .LP osmo \-c .LP To check events for two days since today type: .LP osmo \-e \-d 2 .SH "HOMEPAGE" .LP \fIhttp://clayo.org/osmo\fP .SH "AUTHORS" .LP Tomasz Maka (programming) .br Piotr Maka (programming) .br Maja Kocon (http://pinky-babble.org) (graphics) .SH "CONTRIBUTORS" .LP Markus Dahms (LibSyncML support) .br Nacho Alonso González (Windows port) .br Maarten Faddegon (Mutt query command) .br Maxim Gordienko (GUI fixes and updates) osmo-0.4.2/data/pixmaps/0000775000175000017500000000000013204323475012072 500000000000000osmo-0.4.2/data/pixmaps/Makefile.in0000664000175000017500000003337213204317526014067 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pixmapdir)" DATA = $(pixmap_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ pixmapdir = $(datadir)/pixmaps pixmap_DATA = osmo.png EXTRA_DIST = $(pixmap_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/pixmaps/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 $(am__aclocal_m4_deps): install-pixmapDATA: $(pixmap_DATA) @$(NORMAL_INSTALL) @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pixmapdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pixmapdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapdir)" || exit $$?; \ done uninstall-pixmapDATA: @$(NORMAL_UNINSTALL) @list='$(pixmap_DATA)'; test -n "$(pixmapdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pixmapdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(pixmapdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pixmapDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pixmapDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-pixmapDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-pixmapDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/pixmaps/Makefile.am0000664000175000017500000000012713066543472014055 00000000000000 pixmapdir = $(datadir)/pixmaps pixmap_DATA = osmo.png EXTRA_DIST = $(pixmap_DATA) osmo-0.4.2/data/pixmaps/osmo.png0000664000175000017500000000642013066543472013506 00000000000000PNG  IHDR00WbKGD IDAThZytT7lF a_")Kj+G{܏ZsZ,TʩX (Ȧ@BL2[{7M&d,M˹{{wބuC94])+4]_Hq '@Ir_ݻC>n3m<=j7K]tU*DF حҶOrWu# HH #8Datw"ˊq-p c]GC ^rz(` jl! ph0744:rӱ6ylMMMhnjPex1 L].̠ɊP<-WJ)φ9!_–zGJy ES1kiiA"!^*~$:!c.l.̘gDD,!'pI@/v}g|paQ!tMB "mCBd; KƔe UHqI(<"x[HNDC̙*`t?I@5|(M衺t\>12&AF(%JDlNbB"ߞ[,_>4E\/Q<1m'qcVhVk/,at yf)ꚦx:BRP6H*b)T)ydkW-5Dw]MԺY2,u-f ²,0,α aʫI- Ims8b1t}DܝT@Vhfc9L'ʆ`hIkءB7[/$+[ͧ$aZY]2mZ_ k )Io(6o z?B@W (J"-)RRLi'ٌ$ZG5; ^j?HwV\>♔7BJ ƉF{y/gT}eޏVd 'ѰJSjJ@q2ӪIXYgltn尯Q]rneF뵾d r2#)iTbJUSU^wIy->yM.!4nYx^KDF~N㪩ϱU1ydG\ǘ 5-lsN>ohdB-#ƶ̂;pL: _ E*g# h E3mwd>g v ȣA8X1~&]i|߹e\D2l|; c뎍8WwwAD|#Bxtuq G>q]"Yffb)7O9tLʴ 9uln@E?&_XQUU[& '7gP;lشz=bԬ@&jj50Fp +çOO2`Aѓb<⮀75`B\{k؊wy3i E?W!D[ڟ]Qm}CϽXv .(-1zzeVQ+Eg?y&mxz68 襷#&<(:?:;; Y3j 8WoXO7buuqf;<(y ةu:DTto:u%:횦9E{ǥxbQvLd}'O)pB#ZW=Mt:2[ Jݮ "YR%xЧEzJ4Rc'#vEyCQݑ@˾3t[tHg_ Yv}舳4ڔ:`冢.kL/?Ol[oŰŢ],'Y[NUio4RCJD;hMWxR5_H)60OCt%):s4IH)5SlRھ%u=E#INNl4̛siqe \EtŐTR{4irvҀid4VB\tgyBK=ʏ5 ZbZbʗ|IENDB`osmo-0.4.2/data/Makefile.am0000664000175000017500000000032313066543472012372 00000000000000SUBDIRS = icons pixmaps sounds applicationsdir = $(datadir)/applications applications_DATA = osmo.desktop man_MANS = osmo.1 EXTRA_DIST = $(applications_DATA) $(man_MANS) install-data-hook: uninstall-hook: osmo-0.4.2/data/sounds/0000775000175000017500000000000013204323475011724 500000000000000osmo-0.4.2/data/sounds/Makefile.in0000664000175000017500000003337413204317526013723 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/sounds ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(soundsdir)" DATA = $(sounds_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ soundsdir = $(datadir)/sounds/osmo sounds_DATA = alarm.wav EXTRA_DIST = $(sounds_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/sounds/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/sounds/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 $(am__aclocal_m4_deps): install-soundsDATA: $(sounds_DATA) @$(NORMAL_INSTALL) @list='$(sounds_DATA)'; test -n "$(soundsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(soundsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(soundsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(soundsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(soundsdir)" || exit $$?; \ done uninstall-soundsDATA: @$(NORMAL_UNINSTALL) @list='$(sounds_DATA)'; test -n "$(soundsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(soundsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(soundsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-soundsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-soundsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-soundsDATA install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-soundsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/sounds/alarm.wav0000664000175000017500000007474213066543472013504 00000000000000RIFFyWAVEfmt "VDdatay$KC3|l_C0(=\;6prm   Ru )^oC9G"D3 ,Xw8*Q  )GNQ{!>='W  n`9Ba 0   i '7wlQN@WYDgg8  S<u % <] UM|sM&mI R IIa  >  1g+Gkd{#q&x .f_y jz: ! E @^f|JW X 3W _ {  Rbx%qdji- Yt%]3Qy  N pmG^vLK55I` * q s  y e:dD[~*`L4 Jkju`(!  tSg poJs  \$mu_E`t 873L-4[lghU4KyeO Pq }  7N+^79 b uT 6G oAm8<TEJC9P S2D5T x  4QWAfj9H#ho6!G}vv8^   isX9/atT$b g@xWM]A[ .jHIL={V OW/{kwK_D  , hyVNwl\`jEmg^ M}M )F R?S{[S|l=wJI@ d ~ELLk O(: v>` UHuQ#x?3  Z MibM 2[=L tVGJa0eU p 0d[2SBBg+ Udxw^u+8/ /g%H}FZ/i&8-C0L*  } 6@ [[O>.LkvVT5z J:Beq p\'[GC -k/:M3%ArF-IZ-cD YeM l G2KXt64*m<>8 &sLI Z6ozD><>sY;- @:N1VK~-MO]Iztr[hdeGl.c  Ek>%"Lm!~- !|'(k et)E1*,gyd M)lyn?[{[+Zk'kFZ3| k?[0k) o N;jmOz'voWthlDHq!yi_L`EjT: A;76@ +) ]V4j.9I`;LYV. L%m8otj7PMyp9AY`~ ?$jR"ZW].h= P+E 36RT,s:,fE3y !jiZKG[t\z",,l$a~5q)fV v!?n?PX9  !E0ZH5s`(%tB9lav,q=Brt/RhdLFpX1j9s ;8;`L  "7vbz))s>d x-+zc4v9!S$V|r@/F&P&}5tg""{n+jFv89^sXO-JptJm(j=^q]{6 ^r0]cZ9hb}',nrx(#"&}RO PGxogl VEcE3i H^( $w1Vy6%/_^ +<Nusa&CG kqI1 K=wB*>2VK~eM^e9'Ch*N r 6roJKaT,Rn x?D0;e}_mU hw#rC  >K`^j/i) $3nMU!{2aTlN'WSPe{9g\p XxC4;S+JD5  O&\j:a +*3g# '  6 *  W:iA Fq*'N+&)e}_7 S?%uP@`5./Bd|xcaY[WQ5"ls5[K\%FXn\ < R    8SoV(DO v= " \PJ  s $ }z.z4 q  hseH: (pK h<.J?[=2 &nCe l GOK ^c (  |r%A(c_G< 9{F jFCzv ?CAZmi9 ,#i8CO  P:  T uz|>]jN`E.BnC < 2j  F 3{ >|{=ZiG A!cs * s BlIwPt] \  4 y;  Z pH'$eGl<9#9 O !5P p8I ^-9+' x6- > V C} t /iMA`7r +JS Z Y,Q Z&&v8ERn5lN?  9 g c,F$Z ua0>['z ,V]59#N"JX8  b U ` < " }JuETJ*?UY5s,E#Q<% , % D |W~y%<~A* l2Zy|JV"BY %o:QXR(PkZHOX* D& e 0 B S ;Q,`PJr2l M5 a Z +%W?8n  h8;OsDm / 0mvb>[vIM[Ax6GDk- Z  g4E~AsaiDOb 6[24N*S2|Lro{Wcpv4 JY"[q_TeizJ#fRs:[N}^ YVw0c w!V^=~ ^8f*i Z"'R0[t{v*Y>UeIufupV [gXIV{kfTg@p\tHn |ovv=nyM6k xjps`d & PhuE\wRds{r3[0SA <{L=7_oj& oD @KQ}K ytB9q95k ,Gk "emg%&D II=gY X+KM l {+L\2h=TzU/3c%"k(b6# guG>KB) j>j sZoG/IZJm^i5od s.K=Gj7mfg&a=^=OSg5C]<Xcd nyK]8L ?eQPfXKRF~.HeTBJtOk9z]_Wo>uw{}(>pLWK ]Ben:V_ K-&PVC"F8qVh~afGUu)VUXDQ;d FyS$6{'#+Osb4>y#u3 a-jY6FQq p }cD.%&HiYwivWnYZh7Tu*YrsF!.-n{`)E`=uIC T.cm&[@ i y AVn0w2PB%Ya[i/J/#h= UTy)C/+vj7(q*V#s(y*'Sh% #1<{r%kC1Zs=#D7cN ZY% x .'cn^ r8UO'Wg/)U0MfN SVPeGyc8. c$CF0.bud|;&aP_XMB _f^~xy##I<`^ /B 8R ;$|([5K AD9b+"YwL <^Tck Hi9m3AieF tO$iTCnD.) &%EU1M!CfksM+M =b:p{'k@ .5kyaGg`KTGcrH[X&WgAnPy& h  ^R[ o K  ^ 4 # L CH9r{ceF!!`EU$ Wulv7NT\cir@_BzJMI^<%)P]1  ?l "N S f c  vP l@J-VOANymoY O  0 2 3 X.M0p#nHfBE i  9 t AIqq"+EOH : R f V QDl^y4?$jg",Wq M F  Z $ 3 S^~ (Kb2pz8FR"q Y  :`*v-\k4ML*vo{U c z } B";ul^j;KO a\z&Yz |  n j _Du#\sY"6rY B 7 ? P 0;}I1$KXue9g>Hs - L 9C(e;yum 6.y) ;a  b h cWjv x6kTL'=:nqNB I B 7 Z_1]^upa[ wK Y }4^k+l++~ JB qmy*J i  1 oWyfs]@$Z7Mjh0$n < = q;LX\n<]G $"B0 ,1G"NMCaV:b:E. a.Z42fj\H!31F8%PN5V c R d=$T@j~aA9\EYAHa`7<5' 4 Pjz6UJ8bFogkSC{ n 3 I/> y8V?c%;!bmH~H #:VJ#HaqC Mh CuTp&e F X=scW|(5q I ]g6 % ;NwHP0m-eGEKu2H"w- ^zqQ)!jM7& c. rn2A A VE{/;%_B\+QN6:] BV _+w#.uDzEdFKhK X]c Y)Wm1!q\18c~G\?$Q`|6:b 1R-%r4JC, T\Sg&!3B{69tuP-[sV=6 gC-wYwjZ84$K=.y4AIAp1yAWxFE rI/y h1nO?[a4p^+?V7L*\uYQ` *U<q2St;:6t`^@qq5zm8nn( <(_,%*bq@4[tRMo:@f*$(Ohf2=)2D ])"6XMFdLf 9P,:yl_`w'`^#')S;B%^x<qN0`%2UT_J`IUu \9~x6*AJr%*e|/Mh  s$HDzOSD+3RD|/X! dk{(]NxDG7r :%_QkJ 9:DA;Qz%}C$F x/; Q;N<`(tCB|'kA,*OFuS! .}EcJ _rP6Oqkh6G }e<(uc -1co@U[M:i}$MFs >0pV[H8?8"=$AQq )[qxh@K.M{%4=Wr~4yjZGcn;Z&Yxb6K p>R w y  f=:"?[p/{hQ3v4vO N}szX{n29 t N   / !  n\V~Q0LxZpK8;TK?$ :AB,FW[hczukly*e )~}{~go8osmo-0.4.2/data/sounds/Makefile.am0000664000175000017500000000013413066543472013705 00000000000000 soundsdir = $(datadir)/sounds/osmo sounds_DATA = alarm.wav EXTRA_DIST = $(sounds_DATA) osmo-0.4.2/data/osmo.desktop0000664000175000017500000000062413066543472012712 00000000000000[Desktop Entry] Version=1.0 Type=Application Name=Osmo Name[tr]=Osmo Comment=Personal Organizer Comment[fr]=Agenda Personnel Comment[pl]=Organizer osobisty Comment[tr]=Kişisel Düzenleyici Comment[de]=Persönlicher Zeitplaner GenericName=Osmo Exec=osmo Icon=osmo Categories=GTK;Office;Calendar;ContactManagement; Terminal=false Keywords=calendar;office;pim;contacts;management;schedule;notes;organizer; osmo-0.4.2/data/icons/0000775000175000017500000000000013204323475011524 500000000000000osmo-0.4.2/data/icons/Makefile.in0000664000175000017500000004453013204317526013517 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-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 \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/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 $(am__aclocal_m4_deps): # 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. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ 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; \ ($(am__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" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ 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 || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files 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)'; \ 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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: 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: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) install-am install-data-am \ install-strip uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-data-hook 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-am uninstall \ uninstall-am uninstall-hook .PRECIOUS: Makefile install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # 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: osmo-0.4.2/data/icons/48x48/0000775000175000017500000000000013204323475012323 500000000000000osmo-0.4.2/data/icons/48x48/Makefile.in0000664000175000017500000003347313204317526014322 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/48x48 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 48x48 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/48x48/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/48x48/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/48x48/Makefile.am0000664000175000017500000000023613066543472014307 00000000000000themedir = $(datadir)/icons/hicolor size = 48x48 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/48x48/osmo.png0000664000175000017500000000642013066543472013737 00000000000000PNG  IHDR00WbKGD IDAThZytT7lF a_")Kj+G{܏ZsZ,TʩX (Ȧ@BL2[{7M&d,M˹{{wބuC94])+4]_Hq '@Ir_ݻC>n3m<=j7K]tU*DF حҶOrWu# HH #8Datw"ˊq-p c]GC ^rz(` jl! ph0744:rӱ6ylMMMhnjPex1 L].̠ɊP<-WJ)φ9!_–zGJy ES1kiiA"!^*~$:!c.l.̘gDD,!'pI@/v}g|paQ!tMB "mCBd; KƔe UHqI(<"x[HNDC̙*`t?I@5|(M衺t\>12&AF(%JDlNbB"ߞ[,_>4E\/Q<1m'qcVhVk/,at yf)ꚦx:BRP6H*b)T)ydkW-5Dw]MԺY2,u-f ²,0,α aʫI- Ims8b1t}DܝT@Vhfc9L'ʆ`hIkءB7[/$+[ͧ$aZY]2mZ_ k )Io(6o z?B@W (J"-)RRLi'ٌ$ZG5; ^j?HwV\>♔7BJ ƉF{y/gT}eޏVd 'ѰJSjJ@q2ӪIXYgltn尯Q]rneF뵾d r2#)iTbJUSU^wIy->yM.!4nYx^KDF~N㪩ϱU1ydG\ǘ 5-lsN>ohdB-#ƶ̂;pL: _ E*g# h E3mwd>g v ȣA8X1~&]i|߹e\D2l|; c뎍8WwwAD|#Bxtuq G>q]"Yffb)7O9tLʴ 9uln@E?&_XQUU[& '7gP;lشz=bԬ@&jj50Fp +çOO2`Aѓb<⮀75`B\{k؊wy3i E?W!D[ڟ]Qm}CϽXv .(-1zzeVQ+Eg?y&mxz68 襷#&<(:?:;; Y3j 8WoXO7buuqf;<(y ةu:DTto:u%:횦9E{ǥxbQvLd}'O)pB#ZW=Mt:2[ Jݮ "YR%xЧEzJ4Rc'#vEyCQݑ@˾3t[tHg_ Yv}舳4ڔ:`冢.kL/?Ol[oŰŢ],'Y[NUio4RCJD;hMWxR5_H)60OCt%):s4IH)5SlRھ%u=E#INNl4̛siqe \EtŐTR{4irvҀid4VB\tgyBK=ʏ5 ZbZbʗ|IENDB`osmo-0.4.2/data/icons/16x16/0000775000175000017500000000000013204323475012311 500000000000000osmo-0.4.2/data/icons/16x16/Makefile.in0000664000175000017500000003347313204317526014310 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/16x16 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 16x16 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/16x16/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/16x16/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/16x16/Makefile.am0000664000175000017500000000023613066543472014275 00000000000000themedir = $(datadir)/icons/hicolor size = 16x16 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/16x16/osmo.png0000664000175000017500000000152313066543472013724 00000000000000PNG  IHDRasBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDAT8moTe{;s)#LKkɌbkkM5FJr `AP7. dcĮ)E 0@?8tNC{;u#srR'gj<5\/ht/(_}47۫OLz3t&faZl`%_^#O~ c"\ٕޤT0:6!'o?t^!,-.@)(JX Rbyp W f!T߉d2i %6*sؖ#q^/rvWIgk Ed.vBE:R#GxԪE~)B[6"vkBè&6Y][Jz!>Ϫ\)Gc4mQƱ y77_=ݗ<$7kSkk,斸֤ZY?>=4xdw7~{op,:]J'ޞ1r八ӻ |]:v._i{4DvI US<lv<Bj3W %L+)?FJE( ;y{GkhOD UYIENDB`osmo-0.4.2/data/icons/32x32/0000775000175000017500000000000013204323475012305 500000000000000osmo-0.4.2/data/icons/32x32/Makefile.in0000664000175000017500000003347313204317526014304 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/32x32 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 32x32 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/32x32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/32x32/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/32x32/Makefile.am0000664000175000017500000000023613066543472014271 00000000000000themedir = $(datadir)/icons/hicolor size = 32x32 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/32x32/osmo.png0000664000175000017500000000374613066543472013731 00000000000000PNG  IHDR szzsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<cIDATXõWil\W2˛}$v:T (HJP!U$ h*4ix>f歜7^h;^yss9u;i=8H;N)X4ը]߼l@wW}db ׸gTWFY aqq64я93WG<5nA尴A,(( \n7|/09qK+?_~Agnjm<|^Ri#>$ & mmmp[~q쩭gSҩTUO$ ҆h,cddS}˞u;&bued8Nn 3DF Mڃe :^,+vjk(vjjkQQYI!7{ݝ y5f} ,0n嘥nj/( 'jR$4>>NQ\LLL>>mZ\vܹsnT *nMFqoPVV=XD`,loèB!W:wt 5ku>fqY/}xµYw- eY-K EL hime}' tW?`B2-Ba9QgI.#/%?+#a:+nFxgSu6N_|Gx\BIiLf,0]S!rIsi"fB)ڨ,j3Lԛס}{h]b C# P<30x4M) ,2"ڦKx OϿc(\($iMYhEp[ DRh**idhouxF(;U‹WGn(6U [!A-br>""$XxP;"ph<?sujI ,ޯf`!l(E`u)4U.=YJʪ>-oYZy-e(PԵu>@\:ZB4i< WPWY !_R,@8Eǡ[7Cǐ)v?èJ{(/!#Gw5640SNWP17c13}!g2NTJ KD|,bNQ@Jxzrh[wC"cq*֌`YҤvts%&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/22x22 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 22x22 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/22x22/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/22x22/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/22x22/Makefile.am0000664000175000017500000000023613066543472014267 00000000000000themedir = $(datadir)/icons/hicolor size = 22x22 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/22x22/osmo.png0000664000175000017500000000231113066543472013712 00000000000000PNG  IHDRĴl;sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<FIDAT8˕yLgpn1q8WJEQ PrRZ"P 0`LDŽEΨ ̍1;B•tY25%[dlJ{%,}|{O'N.,Pnz{1VyUmI =/kw߇e[T J4T] cA!!ͰK_ ףTC*B&"$8$5232 =)>I/9p)K R( G0\N&yHK7pY"_> FL^*Co~HPFC Z@@]f&8,i;|G'xx;0=h± Rmܩ<,np*pw>qXiܵL]*w`G@Pw뒶|qJoZ1{ 0Ԁu4A'M×J4X8U[e?au6hr)/c\ QνB}uϦ.HFJC7ܾZGpm߿hv'ɱ6uA\#929\ӲCY7bt6;8l_U*Sv+=2ɋ_NoPc=y "vb}S"4 twW$cC[}Pz [`{F|k?]Ofg!&#ܜN@sW<%}LFm|[wN pNa:up~<}75mt[ʔ6o?4u6ԚWAX[kҒ^XamҶ*K~oXk~`k3kvU ?Tc^~S;09տb*?ma}u܂ꇘ#C{jE 7(e90f%,ݶ'f053O?( I DFZ,2I I K~ K!]12XGtN )k'IwXrIENDB`osmo-0.4.2/data/icons/scalable/0000775000175000017500000000000013204323475013272 500000000000000osmo-0.4.2/data/icons/scalable/Makefile.in0000664000175000017500000003350713204317526015267 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/scalable ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = scalable context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.svg EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/scalable/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/scalable/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/scalable/osmo.svg0000664000175000017500000007442713066543472014735 00000000000000 image/svg+xml osmo icon 01.09.2007 Maja Kocon http://ironya.ll.pl icon for osmo osmo-0.4.2/data/icons/scalable/Makefile.am0000664000175000017500000000024213066543472015253 00000000000000themedir = $(datadir)/icons/hicolor size = scalable context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.svg EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/Makefile.am0000664000175000017500000000067513066543472013517 00000000000000SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi osmo-0.4.2/data/icons/24x24/0000775000175000017500000000000013204323475012307 500000000000000osmo-0.4.2/data/icons/24x24/Makefile.in0000664000175000017500000003347313204317526014306 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = data/icons/24x24 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac 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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 24x24 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/24x24/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/24x24/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 $(am__aclocal_m4_deps): install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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 $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; 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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic 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-iconsDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-iconsDATA .PRECIOUS: Makefile # 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: osmo-0.4.2/data/icons/24x24/Makefile.am0000664000175000017500000000023613066543472014273 00000000000000themedir = $(datadir)/icons/hicolor size = 24x24 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = osmo.png EXTRA_DIST = $(icons_DATA) osmo-0.4.2/data/icons/24x24/osmo.png0000664000175000017500000000262113066543472013722 00000000000000PNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATHǝUkh[e~-If6iKqs@enDT1 ^D φÉ7FVYYAe+adIӴ99'Zt|{m*ŊOK2enz)={rp; N /xzz{#5Jer9Lgp^ f.Ÿ my)j[@)(H$fͤzAXz9 6I.7 2LbQi(Q& \8LKհVGܾCKK+QSS`YւnB6>~.־c[+dɋ ##J!T8pj 醿ƿ.a^!LMrou Ti/() [kbSy| %چws y$hb0ID38t TKFi ~0(* KNu(ћ/.fIXE~6{$qvr`nčOE2l~C '̒D'S0uJ;l[ELdr+aEȋ{A=e(摘 ڰL-:vrp\9CЋ)i$ʂ 0J* Iմ/6$4x۟3ݞMKPH&ٖs׮ZInXE6˞Ł|4h UeRhl YœD 墪wn6&3 >d?]l`K&%Bb:X2 >xFeN_Xf(V0""uMˣ4b46d&)uaCbwO>$p|\UX%A=gSChdSHߌbXgh];o][;2G>оy3|՘tn^ͦ_ /~]dsvْ*j. # # 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi 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 "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; 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. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: osmo-0.4.2/aclocal.m40000664000175000017500000014252413204317526011270 00000000000000# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 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. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_3_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN([AM_PATH_GTK_3_0], [m4_warn([obsolete], [AM_PATH_GTK_3_0 is deprecated, use PKG_CHECK_MODULES([GTK], [gtk+-3.0]) instead]) dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) min_gtk_version=ifelse([$1], [], [3.0.0], [$1]) pkg_config_args="gtk+-3.0 >= $min_gtk_version" for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { unsigned int major, minor, micro; fclose (fopen ("conf.gtktest", "w")); if (sscanf("$min_gtk_version", "%u.%u.%u", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%u.%u.%u) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %u.%u.%u. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Tests for BACKEND-NAME in the GTK targets list dnl AC_DEFUN([GTK_CHECK_BACKEND], [m4_warn([obsolete], [GTK_CHECK_BACKEND is deprecated, use PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-3.0]) or similar instead]) pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0) min_gtk_version=ifelse([$2],,3.0.0,$2) pkg_config_args="$pkg_config_args >= $min_gtk_version" AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])]) if $PKG_CONFIG $pkg_config_args ; then target_found=yes else target_found=no fi if test "x$target_found" = "xno"; then ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4]) else ifelse([$3],,[:],[$3]) fi ]) # Copyright (C) 2002-2014 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. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2014 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], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2014 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_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl 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-2014 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. # 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", "OBJC", "OBJCXX", "UPC", or "GJC". # 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$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". rm -rf conftest.dir 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 am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) 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 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # 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. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2014 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_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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"` # 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'`; 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"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2014 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 macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # 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.65])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 if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi 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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])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]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # 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_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2014 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 if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2014 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. # 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-2014 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_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .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 # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac 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-2014 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_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 is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2014 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_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], [m4_foreach_w([_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])]) # Copyright (C) 1999-2014 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_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2014 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_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2014 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2014 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_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2014 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="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2014 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_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2014 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_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. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} 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 /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([m4/libxml2.m4]) m4_include([m4/pkg.m4]) osmo-0.4.2/README0000664000175000017500000000703213204320315010270 00000000000000 =============================================================================== ===== O S M O (handy personal organizer) ===== ===== ===== ===== version 0.4.2 ===== =============================================================================== Osmo is a handy personal organizer, which includes calendar, tasks manager, address book and notes modules. It was designed to be a small, easy to use and good looking PIM tool to help to manage personal information. In its current state the organizer is quite convenient to use - for example, the user can perform nearly all operations using the keyboard. Also, a lot of parameters are configurable to meet the user's preferences. On the technical side, Osmo is GTK+ based tool which uses a plain XML database to store all personal data. Currently, Osmo has the following features: * General: o compact interface o configurable GUI layout (horizontal/vertical) o encrypted private data backup * Calendar: o day notes with text attributes (italic, bold, underline, etc.) o date calculator o built-in full year calendar o compact mode o auxiliary calendars for next and previous month o basic iCalendar support (import/export) o integration with Tasks and Contacts modules * Tasks: o advanced reminder o alarm actions per task (commands, sounds, etc.) o tasks list printing o category filter o due date modification on the fly o basic iCalendar support (export) o date dependent task coloring * Contacts: o robust search functionality o birthdays browser o addresses location on the map o basic import/export filters (csv, xhtml) * Notes: o handy notes selector o category filter o optional encryption using user-defined password o text attributes (italic, bold, underline, etc.) ------------------------------------------------------------------------------- # HOMEPAGE http://clayo.org/osmo ------------------------------------------------------------------------------- # AUTHORS Programming: Tomasz Maka Piotr Maka Graphics: Maja Kocon (http://pinky-babble.org) Contributors: Markus Dahms Nacho Alonso González Maxim Gordienko ------------------------------------------------------------------------------- # DEPENDENCIES Required packages: * GTK+ - The GIMP Toolkit library, version >= 3.10.0 * LibXML 2 library Optional packages: * notify library, version >= 0.7.0 * webkit2gtk library, version >= 2.4.0 * ical library, version >= 1.0 * archive library, version >= 3.0.0 * gringotts library, version >= 1.2.1 * gspell-1 library, version >= 1.2.0 ------------------------------------------------------------------------------- # FEEDBACK Please subscribe to our osmo-pim-friends mailing list here: http://sourceforge.net/p/osmo-pim/mailman Also, please use following trackers to help us to improve the Osmo: Bugs - http://sourceforge.net/p/osmo-pim/bugs Feature requests - http://sourceforge.net/p/osmo-pim/feature-requests Any suggestions, patches, criticism are kindly welcome. osmo-0.4.2/config.h.in0000664000175000017500000001010413204320360011425 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Defined if backup support is enabled */ #undef BACKUP_SUPPORT /* Contacts module enabled */ #undef CONTACTS_ENABLED /* Defined if doing a debug build */ #undef DEBUG_BUILD /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Definded to 1 if compile with gspell support */ #undef HAVE_GSPELL /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Defined to 1 if compile with libarchive support */ #undef HAVE_LIBARCHIVE /* Defined to 1 if compile with libgringotts support */ #undef HAVE_LIBGRINGOTTS /* Definded to 1 if compile with libical support */ #undef HAVE_LIBICAL /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Definded to 1 if compile with libnotify support */ #undef HAVE_LIBNOTIFY /* Definded to 1 if compile with libnotify >= 0.7.0 support */ #undef HAVE_LIBNOTIFY7 /* Definded to 1 if compile with libwebkit support */ #undef HAVE_LIBWEBKIT /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have Pango-1.20 */ #undef HAVE_PANGO_1_20 /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* HTML render type */ #undef HTMLRENDER /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Notes module enabled */ #undef NOTES_ENABLED /* 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 home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Defined if printing support is enabled */ #undef PRINTING_SUPPORT /* Defined if doing a reproducible build */ #undef REPRODUCIBLE_BUILD /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Tasks module enabled */ #undef TASKS_ENABLED /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `unsigned int' if does not define. */ #undef size_t osmo-0.4.2/TRANSLATORS0000664000175000017500000000465313066543472011176 00000000000000[bg] Borislav Totev [ca] Roger Adell [cs] Jaroslav Lichtblau [da] Joakim Seeberg Joe Hansen [de] Markus Dahms Mario Blättermann Roland Siegbert Claudius Henrichs [el] Konstantinos Tsakaloglou [en_GB] Steve Cook (Yorvyk) [es] Nacho Alonso González [fi] Toivo Miettinen [fr] Jean-Jacques Moulinier Rémi Roupsard Lylliann Essandre Baggieri Gerald [gl] Miguel Anxo Bouzada xesusmosquera [gl_ES] Miguel Anxo Bouzada xesusmosquera [he] Hebrew [hu] Peter Polonkai [it] Bautz Calogero Bonasia spawned76 [ja] Norihiro Yoneda [lt] Vaidotas Kazla Moo [nl] Tiger!P fonske777 [pl] Piotr Mąka [pt] Bruno Miguel Bruno Castro Alves [pt_BR] Átila Camurça Alexandro Casanova [ro] Alexandru Gavriș [ru] Vyacheslav A. Trishkin Alexander Vozhennikov Sergey Panasenko Dmitry Korzhevin [sr] Саша Петровић [sv] Niklas Grahn [te] Praveen Illa [tr] Hasan Yılmaz [uk] Sergey Panasenko Dmitry Korzhevin Yury Bulka [ur] Muhammad Ali Makki [ur_PK] Muhammad Ali Makki [zh_CN] Sasaqqdan Darcsis osmo-0.4.2/depcomp0000755000175000017500000005601613075245513011005 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2014 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, see . # 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 . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} 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 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc 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. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## 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). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - 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 -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # 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. ## 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. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then 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 ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # 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 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, 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. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 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. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # 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 ;; #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 preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | 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) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | 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 preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" 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 preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # 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 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: osmo-0.4.2/COPYING0000664000175000017500000004307613066543472010474 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy 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., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. osmo-0.4.2/Makefile.am0000664000175000017500000000015613074512172011455 00000000000000SUBDIRS = src data po ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = README AUTHORS TRANSLATORS COPYING ChangeLog FAQ osmo-0.4.2/po/0000775000175000017500000000000013204323475010116 500000000000000osmo-0.4.2/po/uk.mo0000664000175000017500000012604613204320602011010 00000000000000$Y,(5 555 5 5.566676G6O6X6 \6 j6x6 66 6 6 6 686 6 77 "707G7(X7 77 77777&7$7 8818Q8`8f8k8 t88 888888 8 88*89(9 ?9M9\9c9y999"99 99 :: : ": /: <:I: f: ::::::: ::; ;-;>;O;U;.k;!; ;;;;; <<+< 4< ><K<S< [< f< r< ~< < <<< < < < <= = =%%=K= [= e=q== == == ==== = = >>>'>+.> Z> f> q>}>>>>>>>>>>??#?,?5? >?!L? n? |? ? ? ???????!@(@;@ K@U@ m@x@|@@@@@@ @@@@@@ AA$A)A-A >AIAZA_AhAoAtA }AA A AAAA A A AABBB+B0B9B?BFBKBSB[B`BuBB BB B B B B B B B B B C CC$C)C/C 6CCC JCTC[CdClC&uCCCCC CCC DDD%DBDSDcDlDuD|DD D D DD DD D DD DE EEEE$E)E/E 3E>E GEUE ZEfEmEtE |EEEEE EE EEE EEEF FF&F/F 8F CFMFVFYFnF*vFF"F!FFGGG G +G 5G ?GIG OG]GpGG7GGGoGgH xHH HHH(HH II1I4IPDP JPWP]PtPPPPP PP PPPP Q QQ!Q &Q"3QVQeQ kQ vQQ3Q3Q0Q6$R[RqRwR1|RRRR R RRS SSS.SDSYSbS fSrS wSSSS#SSSSSS#T'T6T:T@TFTLTaTuT}TTT T TT TTTTUU U 'U 1U >U IU VU cU pU ~U U UU UUU UUUU V VV#V#,VPV_V vV VV VVV VV WW 2W>WNW`W&qW WW WWW WW XX!X2XCXSX eXrX zXX XX XXX X X X X)XY+Y[1]4M]]]]x]>^\^"z^'^ ^^^,^_*_B_S_Z_l_|___ ` (`6` H`'V`)~`1``` a a)a8aGai^aIab)bHGb<bbbb c&)cPc*lcc c c c!c/c +d56dld#}dd#dd;d,&e-Se5eEe/e-f*(ogo8xo*oo oo p p *p47plp!p!p!p.pU!q'wq#qq%q%r-r >rIr6\r7r4rWs+Xs#ss8ss ttt8tGtat etpt%t0t t t)t%u Cu duqu)zuuuuu u u v v(vHvPv jv wvvvvv vww<$w awlw {w w wwww2w*x2xAxXx_x{xxxxxxyy/y8yUy ^y kyxy yy yyyyymy7,z*dz z'zz(z{{ -{N{4_{%{{{{{ |&|A|!^||||||| |}} .}:}A}J} [} f}q}}}!} }}}~~ ~)~&8~ _~ j~w~ ~~~~~$~~ $>Xr *8$P7uI*" &3!Df)ā(%=sY,͂7ڃ $5;Dql(#L8j% ' 3DUj 00;Ї ߇%9%_!}'=!?]q !ɉ'" 6%A2gJL2/R! ċCы:Pj,>!!!Ce vƍՍ %#= a&8׎69G'6ŏ85 KVkk,א,,1^ z,!ȑJ!5(WcK!0#RGv!!.;1wm 0,%]% ɕ֕A ^k~ÖԖA74l}) ×@ЗML_\) 3 BYO9 :Zp&3)  '4KRk2|NUTgxQ $3DU*fJܝ ?A@%;$ .; J Ub|ԟ0CV"]*/Ӡ* .;WuE*ڡ.4L&h(@΢5/0e?֣*0<F#H%8 OZ"r' ʥߥ-JYs!v&Ҧ!.;!jM$ڧ,,7D0|b35S1)" '2)C mcz:ު 09=w "ǫ J+GI |SxE r5iY#o Hg)uJ0R2hO:*Q\T3ugpL_AU?lG -j;t,lA3ia!!+Z"DR\ksdNxmAFM)E,h9=I|D$/F&dln>Xoj my :NVFK(/]ws&%p ' rt|Z6BM@~TKv^z=^ vOV6RsU[-S [x5c!0C: f>][<7b?B X9p$DPr]t^48JCWG0-,+qdea8Kh_yyX~1)kb=*fH>(c2'Q{P *Ck e/7Tj59P1B@n$ 7#OHqz}{8b`}Qo~\wc1n3IEm qLSLMN'W_<VY(#`Y%&U.4i";"g%<@.f6zwv?u{;.`aeZ}W420 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled ondate calculatorday notes browserday of the monthday of the month without leading zerosedit contactedit note name and categoryedit taskencryption support is disabledexitfind textfull month namefull weekday namehoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminutesno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornyear infoyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.6 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2015-10-01 14:42+0200 Last-Translator: Yury Bulka Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Poedit 1.7.5 0 для вимкненняЛегкий особистий органайзерПроДодати контактДодати заголовокДодавати нове завдання при подвійному клацанні на список завданьДодати приміткуДодати завданняДодати/відняти часДодаткова інформаціяАдресаДодатковоВікКоманда для нагадуванняНагадатиНагадування!АлгоритмУсіУсі файлиВсі поляВсіУсі приміткиВсі ваші особисті дані будуть замінені на вміст файлу резервної копії.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteУ інших одиницях часуАльтернативний виглядІнша копія OSMO уже запущена.Зовнішний виглядВодолійВи впевнені?ОвенСтрілкаСтрілкиСтрілки Up/DownСортування в порядку зростання у навігаторі приміток дняХоча б один модуль повинен бути видимий.АвторизаціяДоступні модуліРезервне копіювання успішно завершено!Підтримка резервного копіюванняОсновнеНайкращеДень народженняДень народженняКолір дня народженняДні народженняСписок днів народженняБлоґЖирнийЗнизуПерегляд подій iCalПерегляд примітокВідслідковування помилокБайтифайли CSV (дані-через-сому) (*.csv)КалендарФайл календаря (*.ics)Шрифт календаряПримітки календаряРакНе можу створити резервну копію!Неможливо створити файлНеможливо відкрити файл.Неможливо відкрити примітку.Не вдається виконати обрану операцію.Неможливо прочитати файл.КозерігЗ урахуванням регіструКатегоріїКатегоріяМоб. телефонМоб. телефон 2Моб. телефон 3Моб. телефон 4Зміна терміну на наступну датуЗміна терміну на попередню датуСимволиПеревірка подій, які сталися з моменту останнього запускуЗа китайським календаремКругМістоОчиститиСтерти атрибутиСтерти текстЗакрити панель контактівЗакрити панель описуЗакрити редакторЗакрити поле пошукуЗакрити панель примітокКолірКолір тегів контактуКолір елементів, які мають відбутися протягом наступних 7 днівКолір елементів, які мають відбутися сьогодніКолір протермінованих подійКолір посиланьКольориСтовпецьВключені функції (під час компіляції)СтисканняПідробиці контактуКонтактиПродовжити?ВкладКраїнаСтвореноCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownПоточна датаПозначка поточного дняКолір поточного дняПоточний місяцьПоточний часПоточний рікКолір курсоруШирина курсоруДД-ММ-РРРРДатаПочаткові дата та часКалькулятор датШрифт датиФормат датиФормат датиФормат дати заголовкаПеріод датиДеньОбрати деньКатегорії дняКатегорії дняНазва дняПримітка дняПозначка примітки на деньПримітки дняНомер дняЗавдання дняДніДні народженняВидалитиЗнищувати завершені завдання без перепитуванняВидалити приміткуПідрозділОписВимкнути підкреслювання посиланьВимкненоВи справді бажаєте продовжити?Ви бажаете зберегти її?ДокументСобакаЗробленоЗроблено!ДраконТермінТривалість між двома датамиЕлектронна поштаЕлектронна пошта 2Електронна пошта 3Електронна пошта 4Клієнт електронної поштиПОМИЛКА: Неможливо створити файл конфігураціїРедагувати категоріюРедагувати контактРедагувати полеРедагувати приміткуРедагувати завданняРедакторЕліпсВвімкнутиВключити додаткові календаріКурсор у вигляді прямокутникаВключити звукове сповіщенняВвімкнути перевірку орфографії у примітках дняВвімкнути іконку у треїВвімкнути підказкиШифрованаПідтримка шифрованих примітокШифруванняКінецьEnterВведіть парольПомилкаПомилка друкуEscПодіяПозначка подіїКолір днів з подіямиМаксимальна довжина подіїПодіїЕкпортЕкспортувати контактиЕкспорт завданьЕкспорт у файл iCal ШвидкоФаксЗапити на нові функціїТип поляПоля до експортуФайлІм'я файлуФільтрЗнайтиЗакінчилосяІм'яПерші дата та часІм'яРозмір шрифтуШрифтиПівеньКруг (від руки)Від (години)Повний місяцьПовна датаПоказати весь рікБлизнюкиОсновніГлобальна команда сповідомленняДобреГрафікаГрупаГрупиЗаєцьГеш-функціяПомічникиСховатиСховати завершені завданняСховати стовпець групиВисокийПідсвіченийДімДомашня адресаДом. МістоДом. КраїнаДом. телефонДом. телефон 2Дом. телефон 3Дом. телефон 4Дом. ІндексДом. РегіонHome/EndГоризонтальнийКіньГодинаГодиниIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooІгнорувати нагадування для завдань, які вже протермінованяІгнорувати події приміток дняІгнорувати вихідні дніІмпортІмпортувати контактиТип імпортуНеприпустимий пароль!ІнформаціяІнформаціяВведіть імя файлуВставитиВставити поточні дату та часВставити розділювачДодати графікІнтернетІнтервалІнвертуватиКурсивРозмір шрифту пунктуПерейти до датиКомбінації клавішЛандшафтВеликийПрізвищеОстання чвертьОстанні зміниПрізвищеМакетВисокосний рікЛіворучLeft, RightЛевВагиЛіцензіяЛініяРядкиНизькийММ-ДД-РРРРММ/ДД/РРРРСписки розсиланняМіткаВідзначені дніСереднійХвилинаХвилиниРізнеЗміненоЗмінити параметри ICALМавпаМісяцьНазва місяцяМісяціФаза місяцяІм'яІмениниІмениниРозмір шрифту іменіІмениниНовий місяцьНовий контактНова приміткаНове завданняНаступний деньНаступний місяцьНаступний рікПсевдоНіЖодного дня народженняНема датиВідновити дані буде неможливо.Не змінювати місяцьНема записів у обраному файлі.Немає завдань зі визначеними термінами.Календарі не визначено№НічогоПриміткаРедактор примітокШрифт приміткиІм'я приміткиТип приміткиПриміткиНалаштування примітокНема чого імпортуватиЧисло полів у записіКількість днівПеревіряти події на таке число днів вперед (за замовчуванням: 0)Кількість вихідних днівКількість тижнівOSMO було розроблено для зручності користувачів, тому він має багато комбінацій клавіш. Ось повний список:Відкрити файл резервної копіїДіяОпціїОрганізаціяФайли резервних копій osmo (*.bck)Osmo необхідно перезавантажити зараз...Для застосування змін необхідно перезавантажити програму.Назва вихідного файлуВихідний форматПерекрити налаштування локаліБикВідступиОрієнтація сторінкиPageUp/PageDnЗахист паролемПаролі не збігаються!ОсобистіТелефониФотографіяРозмір фотоСвиняРибиБез шифруванняБудь ласка, введіть парольБудь ласка, оберіть адресуБудь ласка, оберіть принаймні один день, коли увімкнена періодичність.Будь ласка, спершу виберіть файлПортретІндексЧас відтермінуванняПараметриПопередній та наступний місяціПопередній деньПопередній місяцьПопередній рікНадрукувати календарДрукувати видимий список завданьПараметри друкуПідтримка друкуПріоритет ПрограмуванняПерша чвертьПитанняВихідПацюкЯкість стистканняВведіть пароль ще разТільки для читанняЗаписПеріодичне завданняЗапамятати позицію курсораЗапам'ятовувати останню обрану сторінкуЗапам'ятовувати останню обрану категоріюНагадати пізнішеНалаштування нагадуванняВилучити контактВилучити завданняПовторПовторювати протягом наступних днівПовторювати звукове оповіщенняОчистити поляСкинути часРезультатПраворучСтрілецьЗберегти резервну копіюЗберігати дані після кожної зміниЗберегти приміткуЗберегти завданняСкорпіонПошукСекундаДругі дата та часПо-батьковіСекундиОбрати CSV-файлОбрати ICS-файлОбрати шрифт...Обрати колірОберіть дату та часВибрати колір дняОбрані поляОбрати вихідний файлОберіть фотоОбраний контакт буде вилучено.Обрана примітка буде знищена.Такий файл існує! Перезаписати?Обраний місяцьОбраний місяць та рікОбрана примітка буде знищена.Обране завдання буде вилучено.Обраний рікВибірПереглядачВстановити абсолютний шлях до файлів налаштувань та данихВстановити поточну датуВстановити поточний часТиповий вихідний форматВстановити часВівцяПоказати OsmoПоказати дні народженняПоказати календарПоказати розташування контакту на картіПоказати контактиПоказувати назви днівВиділяти жирним шрифтом завдання високого пріоритетуПоказувати на панелі інформації про деньПоказати приміткиПоказати параметриПоказати вікно маленького календарикаПоказати завданняПоказати завданняПоказувати номери тижнівПростий вигляд у календарі року Паралельна робота кількох копій Osmo може спричинити втрату даних.МаленькийЗмійПрогравач звукуПробілМова перевірки орфографіїПідтримка словниківПочатокЗапускати згорнутимПочалосяРегіонСтатистикаКрок (хвилини)ЗакресленийЗакреслювати примітки минулих днівСтислоСинтаксисСистемний лотокПозиція вкладокТеґиЗавданняДеталі завданняЗавдання було змінено або вилучено.Шрифт інформації про завданняЗавданняСписок завданьНалаштування завданняТелецьШаблон %s буде змінено на e-mail адресуШаблон %s буде змінено на назву аудіо файлуШаблон %s буде змінено на адресу посиланняСписок буде очищений і всі записи будуть втрачені.Примітка була змінена.ТовстийТонкийЦей калькулятор підтримує лише дати після 1 року.Це — не файл резервної копії OsmoТигрЧасФормат часуПеріод часуЧас для додавання чи відніманняГрафік часуДо (години)СьогодніВідстань до сьогодніПанель приміток на сьогодніПеревірити орфографіюЗавтраЗверхуПерекладачіТипПідкресленийНевідомоВикористовувати період датВикористовувати перший запис як заголовокВикористовувати системний формат дати та часуПрийнятийЗначенняВертикальнийДіваВидимі стовпчикиВидимі стовпці у навігаторі днів народженняВидимі подіїВебсайтВебсайт 2Вебсайт 3Вебсайт 4Переходить в півмісяцьМіж повним місяцем та останньою чвертью ПопередженняХвиляМіж новим місяцем та першою чвертюМіж першою чвертю та повним місяцемНавігатор інтернетуНомер тижняТиждень починаеться з понеділкаВихідніКолір вихідних днівНеділіПробілиСловаРоботаРобоча адресаРоб. МістоРоб. КраїнаРоб. телефонРоб. телефон 2Роб. телефон 3Роб. телефон 4Роб. ІндексРоб. РегіонРРРР-ДД-ММРРРР-ММ-ДДРікІнформація про рікРокиТакЗнак Зодіакускорочена назва місяцяскорочена назва дня тижняактивувати поле пошукудодатидодати контактдодати приміткудодати завдання призначити колір тла для приміток днячутливість до регіструзмінити фільтр категоріізмінити деньзмінити місяцьзмінити режим пошукузмінити рікприбрати усі атрибутизакрити панель з деталями контактузакрити редакторзакрити календар всього рокузакрити редактор примітокзакрити панель інформації завданьзібранокалькулятор датинавігатор приміток днядень місяцядень місяця без попередніх нулівредагувати контактредагувати назву та категорію приміткиредагувати завданняпідтримку шифрування вимкненовихідзнайти текстповна назва місяцяповна назва дня тижнягодиниПодії iCalendarЕкспорт у iCalendarФайли iCalendarПідтримка iCalendarперейти до датихвилининемає записівзвідкрити приміткучивідкладеновилучити контактзнищити примітки днязнищити приміткувилучити завданнязаокруглено до зменшеннязберегти приміткусмужка прокрутки на панелі інформації дняобрати поточну датуВстановити поточний рікпро програмупоказати календар всього рокупоказати вікно параметріввіднятиперемкнути сторінку у вікні параметрів і вікні про osmoперейти на наступну вкладкуперейти на попередню вкладкуперейти на обрану сторінкузавдання експортованоостанній день рокучас не врахованоразівсьогодніальтернативний вигляджирнийпоказати календарі попереднього та наступного місяцявідобразити приховані завданняпідсвіченийкурсивзробити особисті дані наявнимизакресленийпідкресленийверсіянародивсяінформація про рікрік з століттямрік без століттяosmo-0.4.2/po/tr.po0000664000175000017500000010554513204320601011021 00000000000000# Turkish translation of Osmo # This file is distributed under the same license as the Osmo package. # Hasan Yılmaz , 2009. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2009-08-16 10:55+0200\n" "Last-Translator: Hasan Yılmaz \n" "Language-Team: Hedef Türkçe \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" msgid "Colors" msgstr "Renkler" msgid "Color of contact tags" msgstr "Kişi etiketlerinin rengi" msgid "Color of links" msgstr "Linklerin rengi" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Fotoğraf boyutu" msgid "Small" msgstr "Küçük" msgid "Medium" msgstr "Orta" msgid "Large" msgstr "Büyük" msgid "Hide group column" msgstr "Grup sütununu gizle" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Yaş" msgid "Birthday date" msgstr "Doğum günü tarihi" msgid "Zodiac sign" msgstr "Burçlar" msgid "Contacts" msgstr "Kişiler" msgid "Appearance" msgstr "Görünüm" msgid "Miscellaneous" msgstr "Çeşitli" msgid "Groups" msgstr "Gruplar" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Algoritma" msgid "Hashing" msgstr "Adresleme" msgid "Compression" msgstr "Sıkıştırma" msgid "Ratio" msgstr "Oran" msgid "Fast" msgstr "Hızlı" msgid "Good" msgstr "İyi" msgid "Best" msgstr "En iyi" msgid "Type" msgstr "Tür" msgid "Category" msgstr "Kategori" msgid "Last changes" msgstr "Son değişiklikler" msgid "Created" msgstr "Oluşturuldu" msgid "Remember the last selected category" msgstr "Seçili son kategoriyi hatırla" msgid "Use system format for date and time" msgstr "Tarih ve saat için sistem biçimini kullan" msgid "Notes" msgstr "Notlar" msgid "Encryption" msgstr "Şifreleme" msgid "Visible columns" msgstr "Görünür sütunlar" msgid "Categories" msgstr "Kategoriler" msgid "Notes options" msgstr "Not seçenekleri" msgid "Jump to date" msgstr "Tarihe atla" msgid "Day" msgstr "Gün" msgid "Month" msgstr "Ay" msgid "Year" msgstr "Yıl" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Bir yazıyüzü seçin..." msgid "None" msgstr "Hiçbiri" msgid "All items" msgstr "Tüm öğeler" msgid "Question" msgstr "Soru" msgid "Information" msgstr "Bilgi" msgid "Error" msgstr "Hata" msgid "Warning" msgstr "Uyarı" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Seçili dosya zaten var! Üzerine yazılsın mı?" msgid "Selected contact will be removed." msgstr "Seçili kişi kaldırılacak." msgid "Are you sure?" msgstr "Emin misiniz?" msgid "No date" msgstr "Tarih yok" msgid "Select photo" msgstr "Fotoğraf seç" msgid "Address" msgstr "Adres" msgid "Postcode" msgstr "Posta kodu" msgid "City" msgstr "Şehir" msgid "State" msgstr "Bölge" msgid "Country" msgstr "Ülke" msgid "Edit contact" msgstr "Kişiyi düzenle" msgid "Add contact" msgstr "Kişi ekle" msgid "Personal" msgstr "Kişisel" msgid "Group" msgstr "Grup" msgid "Home" msgstr "Ev" msgid "Work" msgstr "İş" msgid "Phones" msgstr "Telefonlar" msgid "Internet" msgstr "İnternet" msgid "Additional info" msgstr "Ek bilgi" msgid "_OK" msgstr "" msgid "no entries" msgstr "giriş olmadı" msgid "entry" msgid_plural "entries" msgstr[0] "giriş" msgid "Calendar notes" msgstr "Takvim notları" msgid "Search" msgstr "Ara" msgid "Filter" msgstr "Süzgeç" msgid "Current month" msgstr "Şimdiki ay" msgid "Selected month" msgstr "Seçili ay" msgid "Current year" msgstr "Şimdiki yıl" msgid "Selected year" msgstr "Seçili yıl" msgid "Selected month and year" msgstr "Seçili ay ve yıl" msgid "All notes" msgstr "Tüm notlar" msgid "Case sensitive" msgstr "Büyük-küçük harfe duyarlı" msgid "Strikethrough past day notes" msgstr "Üstü çizgili geçmiş günlük notlar" msgid "Date" msgstr "Tarih" msgid "Note" msgstr "Not" msgid "_Close" msgstr "" msgid "Rat" msgstr "Fare" msgid "Ox" msgstr "Öküz" msgid "Tiger" msgstr "Kaplan" msgid "Hare" msgstr "Tavşan" msgid "Dragon" msgstr "Ejderha" msgid "Snake" msgstr "Yılan" msgid "Horse" msgstr "At" msgid "Sheep" msgstr "Koyun" msgid "Monkey" msgstr "Maymun" msgid "Fowl" msgstr "Tavuk" msgid "Dog" msgstr "Köpek" msgid "Pig" msgstr "Domuz" msgid "Unknown" msgstr "Bilinmeyen" msgid "Aquarius" msgstr "Kova" msgid "Pisces" msgstr "Balık" msgid "Aries" msgstr "Koç" msgid "Taurus" msgstr "Boğa" msgid "Gemini" msgstr "İkizler" msgid "Cancer" msgstr "Yengeç" msgid "Leo" msgstr "Aslan" msgid "Virgo" msgstr "Başak" msgid "Libra" msgstr "Terazi" msgid "Scorpio" msgstr "Akrep" msgid "Sagittarius" msgstr "Yay" msgid "Capricorn" msgstr "Oğlak" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Sekme konumu" msgid "Left" msgstr "Sol" msgid "Right" msgstr "Sağ" msgid "Top" msgstr "Üst" msgid "Bottom" msgstr "Alt" msgid "Disable underline in links" msgstr "Linklerde altı çizgili kullanımı etkisizleştir" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "En az bir bir birim görünür olmalı." msgid "Calendar" msgstr "Takvim" msgid "Tasks" msgstr "Görevler" msgid "Override locale settings" msgstr "Yerel ayarları geçersiz kıl" msgid "Date format" msgstr "Tarih biçimi" msgid "DD-MM-YYYY" msgstr "GG-AA-YYYY" msgid "MM-DD-YYYY" msgstr "AA-GG-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-AA-GG" msgid "YYYY-DD-MM" msgstr "YYYY-GG-AA" msgid "Time format" msgstr "Zaman biçimi" msgid "hours" msgstr "saat" msgid "Spell checker language" msgstr "İmla denetimi dili" msgid "Enable tooltips" msgstr "Araç ipuçlarını etkinleştir" msgid "Remember last selected page" msgstr "Seçili son sayfayı hatırla" msgid "Save data after every modification" msgstr "Her değişiklikten sonra veriyi kaydet" msgid "Web browser" msgstr "Ağ tarayıcı" msgid "E-mail client" msgstr "E-posta istemci" msgid "Sound player" msgstr "Ses oynatıcı" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s örüntüsü, site adresi ile değiştirilecek" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s örüntüsü, e-posta adresi ile değiştirilecek" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s örüntüsü, ses dosyasının adı ile değiştirilecek" msgid "Enable system tray" msgstr "Sistem tepsisini etkinleştir" msgid "Start minimised" msgstr "Küçültülmüş başlat" msgid "Ignore day note events" msgstr "Günlük not olaylarını yoksay" msgid "General" msgstr "Genel" msgid "Hide" msgstr "Gizle" msgid "Helpers" msgstr "Yardımcılar" msgid "System tray" msgstr "Sistem tepsisi" msgid "Preferences" msgstr "Yeğlenenler" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "ay" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "Günlük not imleci" msgid "Event marker" msgstr "Olay imleci" msgid "Circle" msgstr "Çember" msgid "Ellipse" msgstr "Elips" msgid "Wave" msgstr "Dalga" msgid "Current day marker" msgstr "Geçerli gün imleci" msgid "Arrow" msgstr "Ok" msgid "Free-hand circle" msgstr "Elle çizilmiş çember" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Hafta sonu günleri rengi" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "İmleç rengi" msgid "Event marker color" msgstr "Olay imleci rengi" msgid "Current day marker color" msgstr "Mevcut gün imleci rengi" msgid "Birthday marker color" msgstr "Doğum günü işaretleyici rengi" msgid "Date font" msgstr "Tarih yazıyüzü" msgid "Calendar font" msgstr "Takvim yazıyüzü" msgid "Note font" msgstr "Not yazıyüzü" msgid "Enable block cursor" msgstr "Dikdörtgen imleci etkinleştir" msgid "Cursor thickness" msgstr "İmleç kalınlığı" msgid "Thin" msgstr "İnce" msgid "Thick" msgstr "Kalın" msgid "Edit category" msgstr "" msgid "Color" msgstr "Renk" msgid "Name" msgstr "Ad" msgid "Select ICS file" msgstr "ICS dosyası seçin" msgid "All Files" msgstr "Tüm dosyalar" msgid "Calendar files (*.ics)" msgstr "Takvim dosyaları (*.ics)" msgid "Modify ICAL parameters" msgstr "ICAL değiştirgelerini belirle" msgid "Filename" msgstr "Dosya adı" msgid "Options" msgstr "Seçenekler" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Geçerli" msgid "Description" msgstr "Açıklama" msgid "Full date" msgstr "Tam tarih" msgid "Mark" msgstr "İşaretle" msgid "Week start on Monday" msgstr "Hafta Pazartesi ile başlasın" msgid "Show day names" msgstr "Gün adlarını göster" msgid "No month change" msgstr "Ay değişikliği yok" msgid "Show week numbers" msgstr "Hafta sayısını göster" msgid "Simple view in full-year calendar" msgstr "Tüm-yıl takviminde basit görünüm" msgid "Enable auxilary calendars" msgstr "Yardımcı takvimleri etkinleştir" msgid "Ascending sorting in day notes browser" msgstr "Günlük not tarayıcısında artan sıralama" msgid "Enable spell checker in day notes" msgstr "Günlük notlarda imla denetimini etkinleştir" msgid "Current time" msgstr "Şimdiki saat" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Gün sayısı" msgid "Today distance" msgstr "Bugüne uzaklık" msgid "Marked days" msgstr "İşaretli günler" msgid "Week number" msgstr "Hafta sayısı" msgid "Weekend days" msgstr "Haftasonu günleri" msgid "Day category" msgstr "Gün kategorisi" msgid "Moon phase" msgstr "Ayın evresi" msgid "Day notes" msgstr "Günlük notlar" msgid "Day categories" msgstr "Gün kategorileri" msgid "iCalendar files" msgstr "iCalendar dosyaları" msgid "Show in day info panel" msgstr "Günlük bilgi panelinde göster" msgid "Tasks list" msgstr "Görev listesi" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Num." msgid "Summary" msgstr "Özet" msgid "Due date" msgstr "Son tarih" msgid "Priority" msgstr "Öncelik" msgid "Error printing" msgstr "Yazdırmada hata" msgid "No birthdays defined" msgstr "Doğum günü tanımlanmadı" msgid "Birthdays list" msgstr "Doğum günü listesi" msgid "Days to birthday" msgstr "Doğum gününe kalan gün" msgid "today" msgstr "bugün" msgid "Select CSV file" msgstr "CSV dosyasını seç" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (virgül-ayrımlı değerler) dosyalar (*.csv)" msgid "Please select file first." msgstr "Lütfen önce dosyayı seçin." msgid "Import contacts" msgstr "Kişileri içe aktar" msgid "Import type" msgstr "İçe aktarma türü" msgid "File" msgstr "Dosya" msgid "Input filename" msgstr "Girdi dosyası adı" msgid "Import" msgstr "İçe aktar" msgid "Nothing to import." msgstr "İçe aktarılacak yok." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kişi eklendi" msgid "of" msgstr "'ın" msgid "Record" msgstr "Kayıt" msgid "Number fields per record" msgstr "Kayıt başına düşen alan sayısı" msgid "Use first record as header" msgstr "İlk kaydı başlık olarak kullan" msgid "Field type" msgstr "Alan türü" msgid "Value" msgstr "Değer" msgid "No records found in selected file." msgstr "Seçili dosyada hiçbir kayıt bulunamadı." msgid "Cannot read file." msgstr "Dosya okunamıyor." msgid "Cannot open file." msgstr "Dosya açılamıyor." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Takvimi göster" msgid "Show tasks" msgstr "Görevleri göster" msgid "Show contacts" msgstr "Kişileri göster" msgid "Show notes" msgstr "Notları göster" msgid "Show options" msgstr "Seçenekleri göster" msgid "Quit" msgstr "Çık" msgid "Show small calendar window" msgstr "Küçük takvim penceresini göster" msgid "Check for events since last run" msgstr "Son çalıştırmadan sonraki olayları denetle" msgid "Number of days to check forward for events (default: 0)" msgstr "İlerideki olayların kontrol edileceği gün sayısı (varsayılan: 0)" msgid "Set absolute path for settings and data files" msgstr "Veri dosyaları ve ayarlar için salt yolu ayarla" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "HATA: Yapılandırma dosyaları yaratılamıyor" msgid "Another copy of OSMO is already running." msgstr "OSMO'nun başka bir kopyası çalışır durumda." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Aynı anda iki veya daha çok çalışan OSMO kopyası veri kayıplarına sebep " "olabilir." msgid "Do you really want to continue?" msgstr "Gerçekten devam etmek istiyor musunuz?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Düşük" msgid "High" msgstr "Yüksek" msgid "Done!" msgstr "Yapıldı!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kişi dışa aktarıldı" msgid "Cannot create file." msgstr "Dosya yaratılamadı." msgid "Select output file" msgstr "Çıktı dosyasını seç" msgid "Export contacts" msgstr "Kişileri dışa aktar" msgid "Output format" msgstr "Çıktı biçimi" msgid "Add header" msgstr "Başlık ekle" msgid "Fields to export" msgstr "Dışa aktarılacak alanlar" msgid "All" msgstr "Tümü" msgid "Invert" msgstr "Ters çevir" msgid "Select fields" msgstr "Alanları seç" msgid "Output filename" msgstr "Çıktı dosyası adı" msgid "Export" msgstr "Dışa aktar" msgid "Color of items that are due today" msgstr "Bugün yapılması gereken öğelerin rengi" msgid "Color of items that are due in the next 7 days" msgstr "Önümüzdeki 7 günde yapılması gereken öğelerin rengi" msgid "Color of items that are past due" msgstr "Yapılmış olması gereken öğelerin rengi" msgid "Task info font" msgstr "Görev bilgisi yazıyüzü" msgid "Show in bold tasks with high priority" msgstr "Yüksek öncelikte olan görevleri koyu göster" msgid "Hide completed tasks" msgstr "Tamamlanan görevleri gizle" msgid "Delete completed tasks without confirmation" msgstr "Tamamlanan görevleri doğrulama olmadan sil" msgid "Add new task when double clicked on tasks list" msgstr "Görevler listesine çift tıklandığında yeni görev ekle" msgid "Postpone time" msgstr "Ertelenecek zaman" msgid "minutes" msgstr "dakika" msgid "0 for disable" msgstr "etkisizleştirmek için 0" msgid "Repeat sound alarm" msgstr "Ses uyarısını yinele" msgid "times" msgstr "kere" msgid "Global notification command" msgstr "Genel bildirim komutu" msgid "Tasks options" msgstr "Görev seçenekleri" msgid "Reminder options" msgstr "Hatırlatıcı seçenekleri" msgid "Insert timeline" msgstr "Zaman çizelgesi ekle" msgid "Timeline" msgstr "Zaman çizelgesi" msgid "From (hour)" msgstr "İlk (saat)" msgid "Step (minutes)" msgstr "Tekrar (dakika)" msgid "To (hour)" msgstr "Son (saat)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Tekrarlama etkinleştirildiğinde lütfen en az bir gün seçin." msgid "Set time" msgstr "Saati ayarla" msgid "Hour" msgstr "Saat" msgid "Minute" msgstr "Dakika" msgid "Today" msgstr "Bugün" msgid "Tomorrow" msgstr "Yarın" msgid "Selected task will be removed." msgstr "Seçili görev kaldırılacak." msgid "Select date and time" msgstr "Tarih ve saat seç" msgid "Enable sound notification" msgstr "Sesli bildirimi etkinleştir" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarm uyarısı" msgid "Days" msgstr "Gün" msgid "Hours" msgstr "Saat" msgid "Minutes" msgstr "Dakika" msgid "Alarm command" msgstr "Alarm komutu" msgid "Date period" msgstr "Tarih dönemi" msgid "Months" msgstr "Ay" msgid "Repeat" msgstr "Yinele" msgid "Repeat in the following days" msgstr "Sonraki günlerde yinele" msgid "Time period" msgstr "Zaman dönemi" msgid "Start" msgstr "Başlangıç" msgid "End" msgstr "Bitiş" msgid "Interval" msgstr "Aralık" msgid "Ignore alarm when task expired offline" msgstr "Çevrimdışıyken görev biterse alarmı yoksay" msgid "Recurrent task" msgstr "Yinelenen görev" msgid "Enable" msgstr "Etkinleştir" msgid "Edit task" msgstr "Görevi düzenle" msgid "Add task" msgstr "Görev ekle" msgid "Basic" msgstr "Temel" msgid "Advanced" msgstr "Gelişmiş" msgid "New Moon" msgstr "Yeni Ay" msgid "Waxing Crescent Moon" msgstr "Büyüyen Hilâl" msgid "Quarter Moon" msgstr "İlk Dördün" msgid "Waxing Gibbous Moon" msgstr "Büyüyen Şişkin Evre" msgid "Full Moon" msgstr "Dolunay" msgid "Waning Gibbous Moon" msgstr "Küçülen Şişkin Evre" msgid "Last Quarter Moon" msgstr "Son Dördün" msgid "Waning Crescent Moon" msgstr "Küçülen Hilâl" msgid "Cannot create backup!" msgstr "Yedek oluşturulamadı!" msgid "Save backup" msgstr "Yedek kaydet" msgid "Password protection" msgstr "Parola koruma" msgid "Enter password" msgstr "Parola gir" msgid "Re-enter password" msgstr "Parolayı yeniden gir" msgid "Please enter the password" msgstr "Lütfen parolayı girin" msgid "Passwords do not match!" msgstr "Parolalar eşleşmiyor!" msgid "Backup file saved successfully!" msgstr "Yedek başarıyla kaydedildi!" msgid "Open backup file" msgstr "Yedekleme dosyasını aç" msgid "Osmo backup files (*.bck)" msgstr "Osmo yedekleme dosyaları (*.bck)" msgid "This is not Osmo backup file" msgstr "Bu bir Osmo yedekleme dosyası değil" msgid "Incorrect password!" msgstr "Geçersiz parola!" msgid "All your data will be replaced with backup file content." msgstr "Bütün veriniz yedekleme dosyası içeriği ile değiştirilecek." msgid "Osmo has to be restarted now..." msgstr "Osmo şimdi yeniden başlatılmak zorunda..." msgid "Please select address" msgstr "Lütfen adres seçin." msgid "First name" msgstr "İlk ad" msgid "Last name" msgstr "Soyadı" msgid "Second name" msgstr "İkinci ad" msgid "Nickname" msgstr "Takma ad" msgid "Tags" msgstr "Etiketler" msgid "Name day date" msgstr "Ad günü tarihi" msgid "Home address" msgstr "Ev adresi" msgid "Home postcode" msgstr "Posta kodu (ev)" msgid "Home city" msgstr "Şehir (ev)" msgid "Home state" msgstr "Bölge (ev)" msgid "Home country" msgstr "Ülke (ev)" msgid "Organization" msgstr "Organizasyon" msgid "Department" msgstr "Bölüm" msgid "Work address" msgstr "İş adresi" msgid "Work postcode" msgstr "Posta kodu (iş)" msgid "Work city" msgstr "Şehir (iş)" msgid "Work state" msgstr "Bölge (iş)" msgid "Work country" msgstr "Ülke (iş)" msgid "Fax" msgstr "Faks" msgid "Home phone" msgstr "Ev telefonu" msgid "Home phone 2" msgstr "Ev telefonu 2" msgid "Home phone 3" msgstr "Ev telefonu 3" msgid "Home phone 4" msgstr "Ev telefonu 4" msgid "Work phone" msgstr "İş telefonu" msgid "Work phone 2" msgstr "İş telefonu 2" msgid "Work phone 3" msgstr "İş telefonu 3" msgid "Work phone 4" msgstr "İş telefonu 4" msgid "Cell phone" msgstr "Cep telefonu" msgid "Cell phone 2" msgstr "Cep telefonu 2" msgid "Cell phone 3" msgstr "Cep telefonu 3" msgid "Cell phone 4" msgstr "Cep telefonu 4" msgid "E-Mail" msgstr "E-posta" msgid "E-Mail 2" msgstr "E-posta 2" msgid "E-Mail 3" msgstr "E-posta 3" msgid "E-Mail 4" msgstr "E-posta 4" msgid "WWW" msgstr "Site" msgid "WWW 2" msgstr "Site 2" msgid "WWW 3" msgstr "Site 3" msgid "WWW 4" msgstr "Site 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotoğraf" msgid "New contact" msgstr "Yeni kişi" msgid "Remove contact" msgstr "Kişiyi kaldır" msgid "Show birthdays" msgstr "Doğum günlerini göster" msgid "Show contact location on the map" msgstr "Kişinin yerini harita üzerinde göster" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Hakkında" msgid "Clear" msgstr "Temizle" msgid "First Name" msgstr "İlk ad" msgid "Last Name" msgstr "Soyadı" msgid "All fields" msgstr "Tüm alanlar" msgid "Contact details" msgstr "Kişi ayrıntıları" msgid "Close contact panel" msgstr "Kişi panelini kapat" msgid "The note has changed." msgstr "Not değiştirildi." msgid "Do you want to save it?" msgstr "Kaydetmek istiyor musunuz?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Kelime" msgid "Lines" msgstr "Satır" msgid "Characters" msgstr "Karakter" msgid "White characters" msgstr "Beyaz karakterler" msgid "Bytes" msgstr "Sekiz ikil" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "Değiştirildi" msgid "New note" msgstr "Yeni not" msgid "Edit note" msgstr "Notu düzenle" msgid "Delete note" msgstr "Notu sil" msgid "Save note" msgstr "Notu kaydet" msgid "Find" msgstr "Bul" msgid "Toggle spell checker" msgstr "İmla denetimi geçişi" msgid "Bold" msgstr "Koyu" msgid "Italic" msgstr "İtalik" msgid "Underline" msgstr "Altı çizgili" msgid "Strikethrough" msgstr "Üstü çizgili" msgid "Highlight" msgstr "Vurgulu" msgid "Clear attributes" msgstr "Öznitelikleri temizle" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Şimdiki tarihi ve saati ekle" msgid "Insert separator" msgstr "Ayırıcı ekle" msgid "Statistics" msgstr "İstatistikler" msgid "Close editor" msgstr "Düzenleyiciyi kapat" msgid "Note name" msgstr "Not adı" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "büyük-küçük harf duyarlı" msgid "Close find entry" msgstr "Giriş bulmayı kapat" msgid "Edit entry" msgstr "Girişi düzenle" msgid "Remember cursor position" msgstr "İşaretçi konumunu hatırla" msgid "Selected note will be removed." msgstr "Seçili not kaldırılacak." msgid "No further data recovery will be possible." msgstr "İlave veri kurtarma mümkün değil." msgid "Add note" msgstr "Not ekle" msgid "Plain" msgstr "Düz" msgid "Encrypted" msgstr "Şifrelenmiş" msgid "Note type" msgstr "Not türü" msgid "Cannot open the note." msgstr "Not açılamıyor." msgid "encryption support is disabled" msgstr "Şifreleme desteği etkin değil" msgid "Authorization" msgstr "Yetki" msgid "year" msgid_plural "years" msgstr[0] "yıl" msgid "day" msgid_plural "days" msgstr[0] "gün" msgid "hour" msgid_plural "hours" msgstr[0] "saat" msgid "minute" msgid_plural "minutes" msgstr[0] "dakika" msgid "second" msgid_plural "seconds" msgstr[0] "saniye" msgid "or" msgstr "veya" msgid "rounded down" msgstr "aşağı yuvarlandı" msgid "week" msgid_plural "weeks" msgstr[0] "hafta" msgid "working day" msgid_plural "working days" msgstr[0] "iş günü" msgid "time is ignored" msgstr "zaman yok sayıldı" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "Hafta sonu günü" msgid "This calculator only supports dates after year 1." msgstr "Hesaplayıcı sadece 1 yıldan sonraki tarihleri destekliyor." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "Hafta sonu günü yok sayıldı" msgid "Date calculator" msgstr "Tarih hesaplayıcı" msgid "Current date" msgstr "Şimdiki tarih" msgid "Set current date" msgstr "Şimdiki tarihi ayarla" msgid "Second" msgstr "Saniye" msgid "Set current time" msgstr "Şimdiki saati ayarla" msgid "Reset time" msgstr "Saati sıfırla" msgid "First date and time" msgstr "Birinci tarih ve saat" msgid "Second date and time" msgstr "İkinci tarih ve saat" msgid "Alternative time units" msgstr "Alternatif zaman birimleri" msgid "Result" msgstr "Sonuç" msgid "Duration between two dates" msgstr "İki tarih arasındaki süre" msgid "Operation" msgstr "İşlem" msgid "add" msgstr "ekle" msgid "subtract" msgstr "çıkar" msgid "Date and time to add or subtract from" msgstr "Tarih ya da saat eklenecek veya çıkarılacak" msgid "Years" msgstr "Yıl" msgid "Weeks" msgstr "Hafta" msgid "Seconds" msgstr "Saniye" msgid "Ignore weekend days" msgstr "Hafta sonu günlerini yok say" msgid "Reset fields" msgstr "Alanları sıfırla" msgid "Time to add or subtract" msgstr "Eklenecek ya da çıkarılacak zaman" msgid "Add to or subtract from a date" msgstr "Tarihe ekle veya tarihten çıkar" msgid "Cannot perform selected operation." msgstr "Seçilen işlem gerçekleştirilemiyor." msgid "Task has been modified or removed." msgstr "Görev değiştirilmiş ya da kaldırılmış." msgid "Remind me later" msgstr "Daha sonra hatırlat" msgid "Done" msgstr "Yapıldı" msgid "Show task" msgstr "Görevi göster" msgid "Alarm warning!" msgstr "Alarm uyarısı!" msgid "postponed" msgstr "ertelendi" msgid "Day note" msgstr "Günlük not" msgid "Events" msgstr "Olaylar" msgid "Event" msgstr "Olay" msgid "Task" msgstr "Görev" msgid "Birthday" msgstr "Doğum günü" msgid "Show Osmo" msgstr "Osmo'yu göster" msgid "event" msgid_plural "events" msgstr[0] "olay" msgid "No valid calendars defined" msgstr "Geçerli tanımlanmış takvim yok" msgid "iCalendar events" msgstr "iCalendar olayları" msgid "Time" msgstr "Zaman" msgid "The list will be cleared and all entries will be lost." msgstr "Bu liste temizlenecek ve tüm girişler kaybedilecek." msgid "event exported" msgid_plural "events exported" msgstr[0] "olay dışa aktarıldı" msgid "iCalendar export" msgstr "iCalendar dışa aktarımı" msgid "Day Selector" msgstr "Gün Seçici" msgid "Use date period" msgstr "Kullanılan tarih dönemi" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Tanımlanmış tarihte görev bulunamadı." msgid "Save tasks" msgstr "Görevleri kaydet" msgid "tasks exported" msgstr "görev dışa aktarıldı" msgid "was born" msgstr "doğumlu" msgid "year old" msgid_plural "years old" msgstr[0] "yaşında" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "gün kaldı, yıl sonuna kadar " msgid "the last day of the year" msgstr "yılın son günü" msgid "Day tasks" msgstr "Günlük görevler" msgid "Selected day note will be removed." msgstr "Seçili günlük not kaldırılacak." msgid "Continue?" msgstr "Devam?" msgid "Previous year" msgstr "Önceki yıl" msgid "Previous month" msgstr "Önceki ay" msgid "Previous day" msgstr "Önceki gün" msgid "Next day" msgstr "Sonraki gün" msgid "Next month" msgstr "Sonraki ay" msgid "Next year" msgstr "Sonraki yıl" msgid "Full-year calendar" msgstr "Tüm-yıl takvimi" msgid "Print calendar" msgstr "Takvimi yazdır" msgid "Toggle day note panel" msgstr "Günlük not panelini aç-kapa" msgid "Select day color" msgstr "Gün rengini seçin" msgid "Browse notes" msgstr "Notlara göz at" msgid "Browse iCal events" msgstr "iCal olaylarına göz at" msgid "Export to iCal file" msgstr "iCal dosyasına aktar" msgid "Previous and next month" msgstr "Önceki ve sonraki ay" msgid "Close note panel" msgstr "Not panelini kapat" msgid "Clear text" msgstr "Metni temizle" msgid "Info" msgstr "Bilgi" msgid "Select color" msgstr "Renk seç" msgid "Name day" msgstr "Ad günü" msgid "Printing properties" msgstr "Yazıcı özellikleri" msgid "Month name" msgstr "Ay adı" msgid "Day name" msgstr "Gün adı" msgid "Fonts" msgstr "Yazıyüzleri" msgid "Birthdays" msgstr "Doğum günleri" msgid "Namedays" msgstr "Adgünleri" msgid "Visible events" msgstr "Görünür olaylar" msgid "Padding" msgstr "Dolgu" msgid "Event maximum length" msgstr "Olayın azami uzunluğu" msgid "Page orientation:" msgstr "Sayfa yönü:" msgid "Portrait" msgstr "Düşey" msgid "Landscape" msgstr "Yatay" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Artık yıl" msgid "Yes" msgstr "Evet" msgid "No" msgstr "Hayır" msgid "Chinese year animal" msgstr "Çin hayvan yılı" msgid "Number of days" msgstr "Gün sayısı" msgid "Number of weeks" msgstr "Hafta sayısı" msgid "Number of weekend days" msgstr "Haftasonu günleri sayısı" msgid "Year info" msgstr "Yıl bilgisi" msgid "Alternative view" msgstr "Alternatif görünüm" msgid "Started" msgstr "Başlamış" msgid "Finished" msgstr "Bitti" msgid "New task" msgstr "Yeni görev" msgid "Remove task" msgstr "Görevi kaldır" msgid "Change due date to previous date" msgstr "Yapılması gereken tarihi önceki tarihe değiştir" msgid "Change due date to next date" msgstr "Yapılması gereken tarihi sonraki tarihe değiştir" msgid "Export tasks" msgstr "Görevleri dışa aktar" msgid "Print visible tasks list" msgstr "Görülür görevler listesini yazdır" msgid "Task details" msgstr "Görev ayrıntıları" msgid "Close description panel" msgstr "Tanım panelini kapat" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "önceki sekmeye geç" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "sonraki sekmeye geç" msgid "switch to selected page" msgstr "seçili sayfaya geç" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "seçenekler ve hakkında sekmesinde sayfayı değiştir" msgid "exit" msgstr "çık" msgid "Space" msgstr "" msgid "select current date" msgstr "şimdiki tarihi seç" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "kişisel veri görünürlüğünü değiştir" msgid "Arrows" msgstr "" msgid "change day" msgstr "günü değiştir" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "günlük bilgi panelinde içeriği kaydırır" msgid "change month" msgstr "ayı değiştir" msgid "Home/End" msgstr "" msgid "change year" msgstr "yılı değiştir" msgid "toggle calendars for the previous and next month" msgstr "takvimlerde önceki ve sonraki ay bilgisini açıp kapar" msgid "day notes browser" msgstr "günlük not gezgini" msgid "assign background color to day note" msgstr "günlük nota artalan rengi ata" msgid "date calculator" msgstr "tarih hesaplayıcı" msgid "show full-year calendar" msgstr "tüm-yıl takvimini göster" msgid "jump to date" msgstr "tarihe zıpla" msgid "Delete" msgstr "" msgid "remove day note" msgstr "günlük notu kaldır" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "düzenleyiciyi kapat" msgid "toggle bold" msgstr "koyulaştır" msgid "toggle italic" msgstr "italik" msgid "toggle underline" msgstr "altını çiz" msgid "toggle strikethrough" msgstr "üstünü çiz" msgid "toggle highlight" msgstr "vurgula" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "öteki görünüm" msgid "year info" msgstr "yıl bilgisi" msgid "set current year" msgstr "şimdiki yılı ayarla" msgid "close full-year calendar" msgstr "tüm-yıl takvimini kapat" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "görev ekle" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "görevi düzenle" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "görevi kaldır" msgid "toggle hidden tasks" msgstr "gizli görevleri açıp kapatır" msgid "activate search field" msgstr "arama alanını etkinleştir" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "kategori süzgecini değiştir" msgid "close task info panel" msgstr "görev bilgi panelini kapar" msgid "Insert" msgstr "Dahil et" msgid "add contact" msgstr "kişi ekle" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "kişi düzenle" msgid "remove contact" msgstr "kişiyi kaldır" msgid "change search mode" msgstr "arama kipini değiştir" msgid "close contact details panel" msgstr "kişi ayrıntıları panelini kapat" msgid "Enter" msgstr "" msgid "open note" msgstr "notu aç" msgid "add note" msgstr "not ekle" msgid "remove note" msgstr "notu kaldır" msgid "edit note name and category" msgstr "not adını ve kategorisini düzenle" msgid "close note editor" msgstr "not düzenleyiciyi kapat" msgid "save note" msgstr "notu kaydet" msgid "find text" msgstr "metni bul" msgid "clear selection attributes" msgstr "seçimin özniteliklerini temizle" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "Not düzenleyici" msgid "Selector" msgstr "Seçici" msgid "Editor" msgstr "Düzenleyici" msgid "A handy personal organizer" msgstr "Kullanışlı bir kişisel bilgi yöneticisi" msgid "compiled on" msgstr "derlendiği tarih" msgid "Programming" msgstr "Programlama" msgid "Graphics" msgstr "Çizgeleme" msgid "Contributors" msgstr "Katkıda bulunanlar" msgid "Translators" msgstr "Çevirmenler" msgid "Mailing lists" msgstr "Posta listeleri" msgid "Bug tracker" msgstr "Yanlış izleyici" msgid "Feature requests" msgstr "Özellik istekleri" msgid "Available modules" msgstr "Kullanılır birimler" msgid "Compiled-in features" msgstr "Derleme özellikleri" msgid "iCalendar support" msgstr "iCalendar desteği" msgid "Encrypted notes support" msgstr "Şifrelenmiş not desteği" msgid "Backup support" msgstr "Yedekleme desteği" msgid "Printing support" msgstr "Yazdırma desteği" msgid "Spell checker support" msgstr "İmla denetimi desteği" msgid "version" msgstr "sürüm" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Kısayollar" msgid "License" msgstr "Lisans" #~ msgid "handy personal organizer" #~ msgstr "kullanışlı kişisel bilgi yöneticisi" osmo-0.4.2/po/da.po0000664000175000017500000011111013204320601010741 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Joe Hansen , 2014-2017 # pasp , 2011 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2017-09-19 09:44+0000\n" "Last-Translator: pasp \n" "Language-Team: Danish (http://www.transifex.com/pasp/osmo/language/da/)\n" "Language: da\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" msgid "Colors" msgstr "Farver" msgid "Color of contact tags" msgstr "Farve på kontaktmærker" msgid "Color of links" msgstr "Farve på henvisninger" msgid "Font size" msgstr "Skriftstørrelse" msgid "Name font size" msgstr "Skriftstørrelse på navn" msgid "Item font size" msgstr "Skriftstørrelse på punkt" msgid "Photo size" msgstr "Billedstørrelse" msgid "Small" msgstr "Lille" msgid "Medium" msgstr "Mellem" msgid "Large" msgstr "Stor" msgid "Hide group column" msgstr "Gem gruppekolonne" msgid "Maps provider" msgstr "Kortleverandør" msgid "Age" msgstr "Alder" msgid "Birthday date" msgstr "Fødselsdags dato" msgid "Zodiac sign" msgstr "Stjernetegn" msgid "Contacts" msgstr "Kontakter" msgid "Appearance" msgstr "Udseende" msgid "Miscellaneous" msgstr "Diverse" msgid "Groups" msgstr "Grupper" msgid "Visible columns in birthday browser" msgstr "Synlige kolonner i fødseldagsfremviser" msgid "Algorithm" msgstr "Algoritme" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Komprimering" msgid "Ratio" msgstr "Forhold" msgid "Fast" msgstr "Hurtig" msgid "Good" msgstr "God" msgid "Best" msgstr "Bedre" msgid "Type" msgstr "Type" msgid "Category" msgstr "Kategori" msgid "Last changes" msgstr "Seneste ændringer" msgid "Created" msgstr "Oprettet" msgid "Remember the last selected category" msgstr "Husk den sidst valgte kategori" msgid "Use system format for date and time" msgstr "Anvend systemformat for dato og tid" msgid "Notes" msgstr "Noter" msgid "Encryption" msgstr "Kryptering" msgid "Visible columns" msgstr "Synlige kolonner" msgid "Categories" msgstr "Kategorier" msgid "Notes options" msgstr "Noteindstillinger" msgid "Jump to date" msgstr "Gå til dato" msgid "Day" msgstr "Dag" msgid "Month" msgstr "Måned" msgid "Year" msgstr "År" msgid "_Cancel" msgstr "_Afbryd" msgid "_Jump to" msgstr "_Gå til" msgid "Select a font..." msgstr "Vælg en skrifttype" msgid "None" msgstr "Ingen" msgid "All items" msgstr "Alle elementer" msgid "Question" msgstr "Spørgsmål" msgid "Information" msgstr "Information" msgid "Error" msgstr "Fejl" msgid "Warning" msgstr "Advarsel" msgid "Show hidden files" msgstr "Vis skjulte filer" msgid "_Save" msgstr "_Gem" msgid "_Open" msgstr "_Åbn" msgid "Selected file exist! Overwrite?" msgstr "Den valgte fil findes! Overskriv?" msgid "Selected contact will be removed." msgstr "Valgt kontakt vil blive fjernet" msgid "Are you sure?" msgstr "Er du sikker!" msgid "No date" msgstr "Ingen dato" msgid "Select photo" msgstr "Vælg billede" msgid "Address" msgstr "Adresse" msgid "Postcode" msgstr "Postnummer" msgid "City" msgstr "By" msgid "State" msgstr "Stat" msgid "Country" msgstr "Land" msgid "Edit contact" msgstr "Rediger kontakt" msgid "Add contact" msgstr "Tilføj kontakt" msgid "Personal" msgstr "Personlig" msgid "Group" msgstr "Gruppe" msgid "Home" msgstr "Hjem" msgid "Work" msgstr "Arbejde" msgid "Phones" msgstr "Telefoner" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Yderligere info" msgid "_OK" msgstr "_O.k." msgid "no entries" msgstr "Ingen poster" msgid "entry" msgid_plural "entries" msgstr[0] "post" msgstr[1] "poster" msgid "Calendar notes" msgstr "Kalendernoter" msgid "Search" msgstr "Søg" msgid "Filter" msgstr "Filter" msgid "Current month" msgstr "Nuværende måned" msgid "Selected month" msgstr "Valgt måned" msgid "Current year" msgstr "Nuværende år" msgid "Selected year" msgstr "Valgt år" msgid "Selected month and year" msgstr "Valgt måned og år" msgid "All notes" msgstr "Alle noter" msgid "Case sensitive" msgstr "Skeln mellem store/små bogstaver" msgid "Strikethrough past day notes" msgstr "Gennemstreg forrige dags noter" msgid "Date" msgstr "Dato" msgid "Note" msgstr "Note" msgid "_Close" msgstr "_Luk" msgid "Rat" msgstr "Rotte" msgid "Ox" msgstr "Okse" msgid "Tiger" msgstr "Tiger" msgid "Hare" msgstr "Hare" msgid "Dragon" msgstr "Drage" msgid "Snake" msgstr "Slange" msgid "Horse" msgstr "Hest" msgid "Sheep" msgstr "Får" msgid "Monkey" msgstr "Abe" msgid "Fowl" msgstr "Høne" msgid "Dog" msgstr "Hund" msgid "Pig" msgstr "Gris" msgid "Unknown" msgstr "Ukendt" msgid "Aquarius" msgstr "Vandmand" msgid "Pisces" msgstr "Fisk" msgid "Aries" msgstr "Vædder" msgid "Taurus" msgstr "Tyr" msgid "Gemini" msgstr "Tvilling" msgid "Cancer" msgstr "Krebs" msgid "Leo" msgstr "Løve" msgid "Virgo" msgstr "Jomfru" msgid "Libra" msgstr "Vægt" msgid "Scorpio" msgstr "Skorpion" msgid "Sagittarius" msgstr "Skytte" msgid "Capricorn" msgstr "Stenbuk" msgid "Osmo has to be restarted to take effect." msgstr "Osmo skal genstarte for at træde i kraft." msgid "Layout" msgstr "Layout" msgid "Vertical" msgstr "Lodret" msgid "Horizontal" msgstr "Vandret" msgid "Tabs position" msgstr "Fanebladsposition" msgid "Left" msgstr "Venstre" msgid "Right" msgstr "Højre" msgid "Top" msgstr "Top" msgid "Bottom" msgstr "Bund" msgid "Disable underline in links" msgstr "Deaktiver understregning i henvisninger" msgid "Show exit button in toolbar" msgstr "Vis afslutningsknap i værktøjslinjen" msgid "At least one module must be visible." msgstr "Mindst et modul skal være synlig" msgid "Calendar" msgstr "Kalender" msgid "Tasks" msgstr "Begivenheder" msgid "Override locale settings" msgstr "Overskriv lokale indstillinger" msgid "Date format" msgstr "Datoformat" msgid "DD-MM-YYYY" msgstr "DD-MM-ÅÅÅÅ" msgid "MM-DD-YYYY" msgstr "MM-DD-ÅÅÅÅ" msgid "YYYY-MM-DD" msgstr "ÅÅÅÅ-MM-DD" msgid "YYYY-DD-MM" msgstr "ÅÅÅÅ-DD-MM" msgid "Time format" msgstr "Tidsformat" msgid "hours" msgstr "timer" msgid "Spell checker language" msgstr "Sprog for stavekontrol " msgid "Enable tooltips" msgstr "Aktiver værktøjsfif" msgid "Remember last selected page" msgstr "Husk sidst valgte side" msgid "Save data after every modification" msgstr "Gem data efter hver eneste ændring" msgid "Web browser" msgstr "Internetbrowser" msgid "E-mail client" msgstr "E-postprogram" msgid "Sound player" msgstr "Lydafspiller" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s mønstret vil bliver erstattet med internetadresse" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s mønstret vil blive erstattet med e-postadresse" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s mønstret vil blive erstattet med lydfilnavnet" msgid "Enable system tray" msgstr "Aktiver statusfelt" msgid "Start minimised" msgstr "Start minimeret" msgid "Ignore day note events" msgstr "Ignorer dagnotebegivenheder" msgid "General" msgstr "Generelt" msgid "Hide" msgstr "Gem" msgid "Helpers" msgstr "Hjælpere" msgid "System tray" msgstr "Statusfelt" msgid "Preferences" msgstr "Præferencer" msgid "Syntax" msgstr "Syntaks" msgid "abbreviated weekday name" msgstr "forkortet ugedagsnavn" msgid "full weekday name" msgstr "fuld ugedagsnavn" msgid "abbreviated month name" msgstr "forkortet månedsnavn" msgid "full month name" msgstr "fuld månedsnavn" msgid "day of the month" msgstr "dag i måneden" msgid "MM/DD/YY" msgstr "MM/DD/ÅÅ" msgid "day of the month without leading zeros" msgstr "dag i måneden uden foranstillede nuller" msgid "month" msgid_plural "months" msgstr[0] "måned" msgstr[1] "måneder" msgid "year without century" msgstr "år uden århundrede" msgid "year with century" msgstr "år med århundrede" msgid "Date header format" msgstr "Teksthovedformat for hoved" msgid "Set default format" msgstr "Angiv standardformat" msgid "Date format syntax" msgstr "Formatsyntaks for dato" msgid "Day note marker" msgstr "Markør af dagnote" msgid "Event marker" msgstr "Begivenhedsmarkør" msgid "Circle" msgstr "Cirkel" msgid "Ellipse" msgstr "Ellipse" msgid "Wave" msgstr "Bølge" msgid "Current day marker" msgstr "Nuværende dagmarkør" msgid "Arrow" msgstr "Pil" msgid "Free-hand circle" msgstr "Frihåndscirkel" msgid "Background color" msgstr "Baggrundsfarve" msgid "Header background color" msgstr "Baggrundsfarve for teksthoveder" msgid "Header foreground color" msgstr "Forgrundsfarve for teksthoveder" msgid "Weekend days color" msgstr "Farve for weekenddage" msgid "Day color" msgstr "Dag-farve" msgid "Previous/Next month's day color" msgstr "Forrige/næste måneds dag-farve" msgid "Cursor color" msgstr "Markørfarve" msgid "Event marker color" msgstr "Farve på begivenhedsmarkør " msgid "Current day marker color" msgstr "Farve på markør for nuværende dag" msgid "Birthday marker color" msgstr "Farve på fødselsdagsmarkør" msgid "Date font" msgstr "Datoskrifttype" msgid "Calendar font" msgstr "Kalenderskrifttype" msgid "Note font" msgstr "Noteskrifttype" msgid "Enable block cursor" msgstr "Aktiver blokmarkør" msgid "Cursor thickness" msgstr "Tykkelse på markør" msgid "Thin" msgstr "Tynd" msgid "Thick" msgstr "Tyk" msgid "Edit category" msgstr "Rediger kategori" msgid "Color" msgstr "Farve" msgid "Name" msgstr "Navn" msgid "Select ICS file" msgstr "Vælg ICS-fil" msgid "All Files" msgstr "Alle filer" msgid "Calendar files (*.ics)" msgstr "Kalenderfiler (*.ics)" msgid "Modify ICAL parameters" msgstr "Ændr ICAL-parametre" msgid "Filename" msgstr "Filnavn" msgid "Options" msgstr "Indstillinger" msgid "Disabled" msgstr "Deaktiveret" msgid "Valid" msgstr "Gyldig" msgid "Description" msgstr "Beskrivelse" msgid "Full date" msgstr "Fuld dato" msgid "Mark" msgstr "Marker" msgid "Week start on Monday" msgstr "Ugen starter om mandagen" msgid "Show day names" msgstr "Vis navne på dagene" msgid "No month change" msgstr "Skift ikke måned" msgid "Show week numbers" msgstr "Vis ugenumre" msgid "Simple view in full-year calendar" msgstr "Simpel visning i kalender for hele året" msgid "Enable auxilary calendars" msgstr "Aktiver ekstra kalendere" msgid "Ascending sorting in day notes browser" msgstr "Stigende sortering i fremviseren for i dag-noter" msgid "Enable spell checker in day notes" msgstr "Aktiver stavekontrol i dagsnoter" msgid "Current time" msgstr "Klokken er nu" msgid "Show seconds" msgstr "Vis sekunder" msgid "Day number" msgstr "Dagens nummer" msgid "Today distance" msgstr "Dagens afstand" msgid "Marked days" msgstr "Markerede dage" msgid "Week number" msgstr "Ugenummer" msgid "Weekend days" msgstr "Weekenddage" msgid "Day category" msgstr "Dagens kategori" msgid "Moon phase" msgstr "Månefase" msgid "Day notes" msgstr "Dagens noter" msgid "Day categories" msgstr "Dagkategorier" msgid "iCalendar files" msgstr "iCalender-filer" msgid "Show in day info panel" msgstr "Vis i infopanel for dag" msgid "Tasks list" msgstr "Liste over begivenheder" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nej." msgid "Summary" msgstr "Opsummering" msgid "Due date" msgstr "Forfaldsdato" msgid "Priority" msgstr "Prioritet" msgid "Error printing" msgstr "Udskrivningsfejl" msgid "No birthdays defined" msgstr "Ingen fødselsdage defineret" msgid "Birthdays list" msgstr "Fødselsdags liste" msgid "Days to birthday" msgstr "Dage til fødselsdag" msgid "today" msgstr "i dag" msgid "Select CSV file" msgstr "Vælg CSV-fil" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV-filer (kommasepareret) (*.csv)" msgid "Please select file first." msgstr "Vælg venligst en fil først" msgid "Import contacts" msgstr "Importer kontakter" msgid "Import type" msgstr "Importtype" msgid "File" msgstr "Fil" msgid "Input filename" msgstr "Inddatafilnavn" msgid "Import" msgstr "Importer" msgid "Nothing to import." msgstr "Intet at importere." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kontakt tilføjet" msgstr[1] "kontakter tilføjet" msgid "of" msgstr "af" msgid "Record" msgstr "Fortegnelse" msgid "Number fields per record" msgstr "Antal felter per fortegnelse" msgid "Use first record as header" msgstr "Anvend første fortegnelse som hoved" msgid "Field type" msgstr "Felttype" msgid "Value" msgstr "Værdi" msgid "No records found in selected file." msgstr "Ingen fortegnelser fundet i valgt fil." msgid "Cannot read file." msgstr "Kan ikke læse fil" msgid "Cannot open file." msgstr "Kan ikke åbne fil" msgid "Counter" msgstr "Tæller" msgid "Show calendar" msgstr "Vis kalender" msgid "Show tasks" msgstr "Vis begivenheder" msgid "Show contacts" msgstr "Vis kontakter" msgid "Show notes" msgstr "Vis noter" msgid "Show options" msgstr "Vis indstillinger" msgid "Quit" msgstr "Afslut" msgid "Show small calendar window" msgstr "Vis lille kalendervindue" msgid "Check for events since last run" msgstr "Kontroller for begivenheder siden sidste kørsel" msgid "Number of days to check forward for events (default: 0)" msgstr "Antal dage til kontrol for begivenheder (standard: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "Match kontakter med angiven streng" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" "Brugerindstillingen for konfigurationsstien er forældet. Brug XDG-" "miljøvariabler i stedet for." msgid "ERROR: Cannot create config files" msgstr "FEJL: Kan ikke oprette konfigurationsfiler" msgid "Another copy of OSMO is already running." msgstr "En anden kopi af OSMO kører allerede" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Anvendelse af to eller flere versioner af OSMO på samme tid kan medføre " "datatab" msgid "Do you really want to continue?" msgstr "Vil du virkelig fortsætte" #, fuzzy, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" "Den gamle konfigurationsmappe til Osmo %s blev fundet. Konfigurationsfilerne " "og dataene vil blive kopieret til XDG-kompatible mapper. Slet den gamle " "konfigurationsmappe efter en succesfuld migrering." #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Lav" msgid "High" msgstr "Høj" msgid "Done!" msgstr "Færdig!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kontakt eksporteret" msgstr[1] "kontakter eksporteret" msgid "Cannot create file." msgstr "Kan ikke oprette filer" msgid "Select output file" msgstr "Vælg uddatafil" msgid "Export contacts" msgstr "Eksporter kontakter" msgid "Output format" msgstr "Uddataformat" msgid "Add header" msgstr "Tilføj hoved" msgid "Fields to export" msgstr "Felter der skal eksporteres" msgid "All" msgstr "Alle" msgid "Invert" msgstr "Inverter" msgid "Select fields" msgstr "Vælg felter" msgid "Output filename" msgstr "Filnavn for uddata" msgid "Export" msgstr "Eksporter" msgid "Color of items that are due today" msgstr "Farve på element der er forfalden i dag" msgid "Color of items that are due in the next 7 days" msgstr "Farve på element der forfalder i de kommende 7 dage" msgid "Color of items that are past due" msgstr "Farve på elementer der er gået over tid" msgid "Task info font" msgstr "Skrifttype for info om begivenheder" msgid "Show in bold tasks with high priority" msgstr "Vis med fed skrift begivenheder med høj prioritet" msgid "Hide completed tasks" msgstr "Gem afsluttede begivenheder" msgid "Delete completed tasks without confirmation" msgstr "Slet afsluttede begivenheder uden bekræftelse" msgid "Add new task when double clicked on tasks list" msgstr "Tilføj ny begivenhed når der dobbeltklikkes på begivenhedslisten" msgid "Postpone time" msgstr "Udsæt tid" msgid "minutes" msgstr "minutter" msgid "0 for disable" msgstr "0 for at deaktivere" msgid "Repeat sound alarm" msgstr "Gentag lydalarm" msgid "times" msgstr "tider" msgid "Global notification command" msgstr "Global påmindelseskommando" msgid "Tasks options" msgstr "Indstillinger for begivenheder" msgid "Reminder options" msgstr "Indstillinger for påmindelse" msgid "Insert timeline" msgstr "Indsæt tidslinje" msgid "Timeline" msgstr "Tidslinje" msgid "From (hour)" msgstr "Fra (time)" msgid "Step (minutes)" msgstr "Skridt (minutter)" msgid "To (hour)" msgstr "Til (time)" msgid "_Paste" msgstr "_Indsæt" msgid "Please select at least one day when recurrency is enabled." msgstr "Vælg venligst mindst en dag når tilbagevendende er aktiveret" msgid "Set time" msgstr "Vælg tidspunkt" msgid "Hour" msgstr "Time" msgid "Minute" msgstr "Minut" msgid "Today" msgstr "I dag" msgid "Tomorrow" msgstr "i morgen" msgid "Selected task will be removed." msgstr "Valgt begivenhed vil blive fjernet" msgid "Select date and time" msgstr "Vælg dato og tid" msgid "Enable sound notification" msgstr "Aktiver lydpåmindelse" msgid "Enable notification dialog" msgstr "Aktiver påmindelsesdialog" msgid "Alarm warning" msgstr "Alarmadvarsel" msgid "Days" msgstr "Dage" msgid "Hours" msgstr "Timer" msgid "Minutes" msgstr "Minutter" msgid "Alarm command" msgstr "Alarmkommando" msgid "Date period" msgstr "Datoperiode" msgid "Months" msgstr "Måneder" msgid "Repeat" msgstr "Gentag" msgid "Repeat in the following days" msgstr "Gentag i de følgende dage" msgid "Time period" msgstr "Tidsperiode" msgid "Start" msgstr "Start" msgid "End" msgstr "Slut" msgid "Interval" msgstr "Interval" msgid "Ignore alarm when task expired offline" msgstr "Ignorer alarm hvis begivenheden udløb frakoblet" msgid "Recurrent task" msgstr "Tilbagevendende begivenhed" msgid "Enable" msgstr "Aktiver" msgid "Edit task" msgstr "Rediger begivenhed" msgid "Add task" msgstr "Tilføj begivenhed" msgid "Basic" msgstr "Grundlæggende" msgid "Advanced" msgstr "Avanceret" msgid "New Moon" msgstr "Nymåne" msgid "Waxing Crescent Moon" msgstr "Tiltagende halvmåne" msgid "Quarter Moon" msgstr "1. kvarter" msgid "Waxing Gibbous Moon" msgstr "Tiltagende gibbousmåne" msgid "Full Moon" msgstr "Fuldmåne" msgid "Waning Gibbous Moon" msgstr "Aftagende gibbousmåne" msgid "Last Quarter Moon" msgstr "3. kvarter" msgid "Waning Crescent Moon" msgstr "Aftagende halvmåne" msgid "Cannot create backup!" msgstr "Kan ikke oprette kopi!" msgid "Save backup" msgstr "Gem en kopi" msgid "Password protection" msgstr "Beskyttelse med adgangskode" msgid "Enter password" msgstr "Indtast adgangskode" msgid "Re-enter password" msgstr "Indtast adgangskoden igen" msgid "Please enter the password" msgstr "Indtast venligst adgangskoden" msgid "Passwords do not match!" msgstr "Adgangskoderne er ikke ens!" msgid "Backup file saved successfully!" msgstr "Kopifilen er gemt korrekt" msgid "Open backup file" msgstr "Åbn kopifil" msgid "Osmo backup files (*.bck)" msgstr "Osmo-kopifiler (*.bck)" msgid "This is not Osmo backup file" msgstr "Dette er ikke en Osmo-kopifil" msgid "Incorrect password!" msgstr "Forkert adgangskode!" msgid "All your data will be replaced with backup file content." msgstr "Alle dine data vil blive erstattet af kopifilens indhold" msgid "Osmo has to be restarted now..." msgstr "Osmo skal nu genstartes" msgid "Please select address" msgstr "Vælg venligst adresse" msgid "First name" msgstr "Fornavn" msgid "Last name" msgstr "Efternavn" msgid "Second name" msgstr "Efternavn" msgid "Nickname" msgstr "Kælenavn" msgid "Tags" msgstr "Mærkater" msgid "Name day date" msgstr "Navnedagsdato" msgid "Home address" msgstr "Hjemadresse" msgid "Home postcode" msgstr "Hjem-postnummer" msgid "Home city" msgstr "Hjemby" msgid "Home state" msgstr "Hjemstat" msgid "Home country" msgstr "Hjemland" msgid "Organization" msgstr "Organisation" msgid "Department" msgstr "Avdeling" msgid "Work address" msgstr "Arbejdsadresse" msgid "Work postcode" msgstr "Arbejdspostnummer" msgid "Work city" msgstr "Arbejdsby" msgid "Work state" msgstr "Arbejdsstat" msgid "Work country" msgstr "Arbejdsland" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Hjemmetelefon" msgid "Home phone 2" msgstr "Hjemmetelefon 2" msgid "Home phone 3" msgstr "Hjemmetelefon 3" msgid "Home phone 4" msgstr "Hjemmetelefon 4" msgid "Work phone" msgstr "Arbejdstelefon" msgid "Work phone 2" msgstr "Arbejdstelefon 2" msgid "Work phone 3" msgstr "Arbejdstelefon 3" msgid "Work phone 4" msgstr "Arbejdstelefon 4" msgid "Cell phone" msgstr "Mobiltelefon" msgid "Cell phone 2" msgstr "Mobiltelefon 2" msgid "Cell phone 3" msgstr "Mobiltelefon 3" msgid "Cell phone 4" msgstr "Mobiltelefon 4" msgid "E-Mail" msgstr "E-post" msgid "E-Mail 2" msgstr "E-post 2" msgid "E-Mail 3" msgstr "E-post 3" msgid "E-Mail 4" msgstr "E-post 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Billede" msgid "New contact" msgstr "Ny kontakt" msgid "Remove contact" msgstr "Fjern kontakt" msgid "Show birthdays" msgstr "Vis fødselsdage" msgid "Show contact location on the map" msgstr "Vis kontaktlokation på kortet" msgid "Backup data" msgstr "Lav sikkerhedskopi af data" msgid "Restore data" msgstr "Gendan data" msgid "About" msgstr "Om" msgid "Clear" msgstr "Ryd" msgid "First Name" msgstr "Fornavn" msgid "Last Name" msgstr "Efternavn" msgid "All fields" msgstr "Alle felter" msgid "Contact details" msgstr "Kontaktdetaljer" msgid "Close contact panel" msgstr "Luk kontaktpanel" msgid "The note has changed." msgstr "Noten er blevet ændret." msgid "Do you want to save it?" msgstr "Ønsker du at gemme den" msgid "No URLs found in the selection..." msgstr "Ingen adresser fundet i markeringen ..." msgid "URLs will be opened in the default browser." msgstr "Adresser vil blive åbnet i standardbrowseren." msgid "Do you want to continue?" msgstr "Ønsker du at fortsætte?" msgid "Too many links selected!" msgstr "For mange valgte henvisninger!" msgid "links opened" msgstr "henvisninger blev åbnet" msgid "Words" msgstr "Ord" msgid "Lines" msgstr "Linjer" msgid "Characters" msgstr "Bogstaver" msgid "White characters" msgstr "Hvide bogstaver" msgid "Bytes" msgstr "Byte" msgid "Document" msgstr "Dokument" msgid "Selection" msgstr "Markering" msgid "Modified" msgstr "Ændret" msgid "New note" msgstr "Ny note" msgid "Edit note" msgstr "Rediger note" msgid "Delete note" msgstr "Slet note" msgid "Save note" msgstr "Gem note" msgid "Find" msgstr "Find" msgid "Toggle spell checker" msgstr "Slå stavekontrol til/fra" msgid "Bold" msgstr "Fed" msgid "Italic" msgstr "Kursiv" msgid "Underline" msgstr "Understreg" msgid "Strikethrough" msgstr "Gennemstreg" msgid "Highlight" msgstr "Fremhæv" msgid "Clear attributes" msgstr "Fjern attributter" msgid "Open URL links" msgstr "Åbn adressehenvisninger" msgid "Insert current date and time" msgstr "Indsæt nuværende dato og tid " msgid "Insert separator" msgstr "Indsæt seperator" msgid "Statistics" msgstr "Statistik" msgid "Close editor" msgstr "Luk redigeringsprogram" msgid "Note name" msgstr "Notenavn" msgid "Read-only" msgstr "Skrivebeskyttet" msgid "Line" msgstr "Linje" msgid "Column" msgstr "Kolonne" msgid "case sensitive" msgstr "Forskel på store og små bogstaver" msgid "Close find entry" msgstr "Luk find-indgang" msgid "Edit entry" msgstr "Rediger indgang" msgid "Remember cursor position" msgstr "Husk markørposition" msgid "Selected note will be removed." msgstr "Valgt note vil blive fjernet" msgid "No further data recovery will be possible." msgstr "Det vil ikke være muligt at genoprette yderligere data" msgid "Add note" msgstr "Tilføj note" msgid "Plain" msgstr "Almindelig" msgid "Encrypted" msgstr "Krypteret" msgid "Note type" msgstr "Notetype" msgid "Cannot open the note." msgstr "Kan ikke åbne noten" msgid "encryption support is disabled" msgstr "Understøttelse for kryptering er deaktiveret" msgid "Authorization" msgstr "Godkendelse" msgid "year" msgid_plural "years" msgstr[0] "år" msgstr[1] "år" msgid "day" msgid_plural "days" msgstr[0] "dag" msgstr[1] "dage" msgid "hour" msgid_plural "hours" msgstr[0] "time" msgstr[1] "timer" msgid "minute" msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minutter" msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekunder" msgid "or" msgstr "eller" msgid "rounded down" msgstr "afrundet nedad" msgid "week" msgid_plural "weeks" msgstr[0] "uge" msgstr[1] "uger" msgid "working day" msgid_plural "working days" msgstr[0] "arbejdsdag" msgstr[1] "arbejdsdage" msgid "time is ignored" msgstr "tiden ignoreres" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "weekenddag" msgstr[1] "weekenddage" msgid "This calculator only supports dates after year 1." msgstr "Denne lommeregner fungerer kun med datoer efter år 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "weekenddag ignoreret" msgstr[1] "weekenddage ignoreret" msgid "Date calculator" msgstr "Dato-udregner" msgid "Current date" msgstr "Nuværende dato" msgid "Set current date" msgstr "Vælg nuværende dato" msgid "Second" msgstr "Sekund" msgid "Set current time" msgstr "Vælg nuværende klokkeslæt" msgid "Reset time" msgstr "Nulstil tiden" msgid "First date and time" msgstr "Første dato og tid" msgid "Second date and time" msgstr "Anden dato og tid" msgid "Alternative time units" msgstr "Alternative tidsenheder" msgid "Result" msgstr "Resultat" msgid "Duration between two dates" msgstr "Varighed mellem to datoer" msgid "Operation" msgstr "Handling" msgid "add" msgstr "læg til" msgid "subtract" msgstr "træk fra" msgid "Date and time to add or subtract from" msgstr "Dato og tid hvorfra der skal lægges til eller trækkes fra" msgid "Years" msgstr "År" msgid "Weeks" msgstr "Uger" msgid "Seconds" msgstr "Sekunder" msgid "Ignore weekend days" msgstr "Ignorer weekenddage" msgid "Reset fields" msgstr "Ryd felter" msgid "Time to add or subtract" msgstr "Tid der skal lægges til eller trækkes fra" msgid "Add to or subtract from a date" msgstr "Læg til eller træk fra en dato" msgid "Cannot perform selected operation." msgstr "Kan ikke udføre valgt handling" msgid "Task has been modified or removed." msgstr "Begivenheden er blevet ændret eller fjernet" msgid "Remind me later" msgstr "Påmind mig senere" msgid "Done" msgstr "Færdig" msgid "Show task" msgstr "Vis begivenhed" msgid "Alarm warning!" msgstr "Alarmadvarsel!" msgid "postponed" msgstr "udsat" msgid "Day note" msgstr "Dag note" msgid "Events" msgstr "Begivenheder" msgid "Event" msgstr "Hændelse" msgid "Task" msgstr "Begivenhed" msgid "Birthday" msgstr "Fødselsdag" msgid "Show Osmo" msgstr "Fra Osmo" msgid "event" msgid_plural "events" msgstr[0] "begivenhed" msgstr[1] "begivenheder" msgid "No valid calendars defined" msgstr "Ingen gyldig kalender defineret" msgid "iCalendar events" msgstr "iCalendar-begivenheder" msgid "Time" msgstr "Tid" msgid "The list will be cleared and all entries will be lost." msgstr "Denne liste vil blive ryddet og alt indhold vil være tabt." msgid "event exported" msgid_plural "events exported" msgstr[0] "begivenhed eksporteret" msgstr[1] "begivenheder eksporteret" msgid "iCalendar export" msgstr "iCalendar-eksport" msgid "Day Selector" msgstr "Dagvælger" msgid "Use date period" msgstr "Brug datoperiode" msgid "_Add" msgstr "_Tilføj" msgid "_Clear" msgstr "_Ryd" msgid "_Remove" msgstr "_Fjern" msgid "No tasks with defined date found." msgstr "Ingen begivenheder fundet med den definerede dato" msgid "Save tasks" msgstr "Gem begivenheder" msgid "tasks exported" msgstr "begivenhed eksporteret" msgid "was born" msgstr "blev født" msgid "year old" msgid_plural "years old" msgstr[0] "år gammel" msgstr[1] "år gammel" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dag til årets udløb" msgstr[1] "dage til årets udløb" msgid "the last day of the year" msgstr "årets sidste dag" msgid "Day tasks" msgstr "Dagens begivenheder" msgid "Selected day note will be removed." msgstr "Valgte dagnote vil blive fjernet" msgid "Continue?" msgstr "Fortsæt?" msgid "Previous year" msgstr "Foregående år" msgid "Previous month" msgstr "Foregående måned" msgid "Previous day" msgstr "Forrige dag" msgid "Next day" msgstr "Næste dag" msgid "Next month" msgstr "Næste måned" msgid "Next year" msgstr "Næste år" msgid "Full-year calendar" msgstr "Kalender for hele året" msgid "Print calendar" msgstr "Udskriv kalender" msgid "Toggle day note panel" msgstr "Slå dagens notepanel til/fra" msgid "Select day color" msgstr "Vælg dagens farve" msgid "Browse notes" msgstr "Gennemse noter" msgid "Browse iCal events" msgstr "Gennemse iCal-begivenheder" msgid "Export to iCal file" msgstr "Eksporter til iCal-fil" msgid "Previous and next month" msgstr "Foregående og næste måned" msgid "Close note panel" msgstr "Luk notepanel" msgid "Clear text" msgstr "Ryd tekst" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Vælg farve" msgid "Name day" msgstr "Dagens navn" msgid "Printing properties" msgstr "Udskrivningsegenskaber" msgid "Month name" msgstr "Månedens navn" msgid "Day name" msgstr "Dagens navn" msgid "Fonts" msgstr "Skrifttyper" msgid "Birthdays" msgstr "Fødselsdag" msgid "Namedays" msgstr "Navnedage" msgid "Visible events" msgstr "Synlige begivenheder" msgid "Padding" msgstr "Polstring" msgid "Event maximum length" msgstr "Maksimumlængde for begivenhed" msgid "Page orientation:" msgstr "Sideretning:" msgid "Portrait" msgstr "Portræt" msgid "Landscape" msgstr "Landskab" msgid "Disable background colors" msgstr "Deaktiver baggrundsfarver" msgid "Leap year" msgstr "Skudår" msgid "Yes" msgstr "Ja" msgid "No" msgstr "Nej" msgid "Chinese year animal" msgstr "Dyr for kinesisk år" msgid "Number of days" msgstr "Antal dage" msgid "Number of weeks" msgstr "Antal uger" msgid "Number of weekend days" msgstr "Antal weekenddage" msgid "Year info" msgstr "År-info" msgid "Alternative view" msgstr "Alternativ visning" msgid "Started" msgstr "Begyndt" msgid "Finished" msgstr "Færdig" msgid "New task" msgstr "Ny begivenhed" msgid "Remove task" msgstr "Fjern begivenhed" msgid "Change due date to previous date" msgstr "Ændr forfaldsdato til foregående dato" msgid "Change due date to next date" msgstr "Ændr forfaldsdato til næste dato" msgid "Export tasks" msgstr "Eksporter begivenheder" msgid "Print visible tasks list" msgstr "Udskriv den synlige liste over begivenheder" msgid "Task details" msgstr "Detaljer for begivenhed" msgid "Close description panel" msgstr "Luk beskrivelsespanel" msgid "Ctrl+PageUp" msgstr "Ctrl+SideOp" msgid "switch to previous tab" msgstr "skift til tidligere faneblad" msgid "Ctrl+PageDn" msgstr "Ctrl+SideNed" msgid "switch to next tab" msgstr "skift til næste faneblad" msgid "switch to selected page" msgstr "skift til den valgte side" msgid "show options window" msgstr "vis vinduet indstillinger" msgid "show about window" msgstr "vis vinduet om" msgid "toggle fullscreen mode" msgstr "skift fuldskærmstilstand" msgid "PageUp/PageDn" msgstr "SideOp/SideNed" msgid "switch page in options and about tab" msgstr "skift side i indstillinger og om fanebladet " msgid "exit" msgstr "luk" msgid "Space" msgstr "Mellemrum" msgid "select current date" msgstr "vælg nuværende dato" msgid "Ctrl+Space" msgstr "Ctrl+Mellemrum" msgid "toggle personal data visibility" msgstr "slå visning af personlig data fra/til" msgid "Arrows" msgstr "Pile" msgid "change day" msgstr "skift dag" msgid "Ctrl+Up/Down" msgstr "Ctrl+op/ned" msgid "scroll the contents in the day info panel" msgstr "Rul indholdet i infopanelet for dagen" msgid "change month" msgstr "skift måned" msgid "Home/End" msgstr "Hjem/slut" msgid "change year" msgstr "skift år" msgid "toggle calendars for the previous and next month" msgstr "skift mellem kalender for den tidligere og næste måned" msgid "day notes browser" msgstr "fremviser for dagnoter" msgid "assign background color to day note" msgstr "tilføj baggrundsfarve til daglig note" msgid "date calculator" msgstr "datoudregner" msgid "show full-year calendar" msgstr "Vis kalender for hele året" msgid "jump to date" msgstr "spring til dato" msgid "Delete" msgstr "Slet" msgid "remove day note" msgstr "fjern daglig note" msgid "Alt+Arrows" msgstr "Alt+pile" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "luk redigeringsprogram" msgid "toggle bold" msgstr "slå fed til/fra" msgid "toggle italic" msgstr "slå kursiv til/fra" msgid "toggle underline" msgstr "slå understregning til/fra" msgid "toggle strikethrough" msgstr "slå gennemstreget til/fra" msgid "toggle highlight" msgstr "slå fremhævet til/fra" msgid "Arrows Up/Down" msgstr "Pile op/ned" msgid "toggle alternative view" msgstr "slå alternativ visning til/fra" msgid "year info" msgstr "år-info" msgid "set current year" msgstr "bestem nuværende år" msgid "close full-year calendar" msgstr "luk kalender for hele året" msgid "Alt+a, Insert" msgstr "Alt+a, indsæt" msgid "add task" msgstr "tilføj begivenhed" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Retur" msgid "edit task" msgstr "rediger begivenhed" msgid "Alt+r, Delete" msgstr "Alt+r, Slet" msgid "remove task" msgstr "fjern begivenhed" msgid "toggle hidden tasks" msgstr "slå skjulte begivenheder til/fra" msgid "activate search field" msgstr "aktiver søgefelt" msgid "Left, Right" msgstr "Venstre, højre" msgid "change category filter" msgstr "skift kategorifilter" msgid "close task info panel" msgstr "luk informationspanel for begivenhed" msgid "Insert" msgstr "Indsæt" msgid "add contact" msgstr "tilføj kontakt" msgid "Ctrl+Enter" msgstr "Ctrl+Retur" msgid "edit contact" msgstr "rediger kontakt" msgid "remove contact" msgstr "fjern kontakt" msgid "change search mode" msgstr "skift søgetilstand" msgid "close contact details panel" msgstr "luk panel for kontaktdetaljer" msgid "Enter" msgstr "Retur" msgid "open note" msgstr "åbn note" msgid "add note" msgstr "tilføj note" msgid "remove note" msgstr "fjern note" msgid "edit note name and category" msgstr "rediger notenavn og -kategori" msgid "close note editor" msgstr "luk noteredigeringsprogram" msgid "save note" msgstr "gem note" msgid "find text" msgstr "find tekst" msgid "clear selection attributes" msgstr "fjern valgte attributter" msgid "open URLs" msgstr "åbn adresser" msgid "show document statistics" msgstr "vis dokumentstatistik" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO blev designet med henblik på brugeranvendelighed, derfor er der mange " "genvejstaster. Her er hele listen:" msgid "Note editor" msgstr "Noteredigeringsprogram" msgid "Selector" msgstr "Vælger" msgid "Editor" msgstr "Redigeringsprogram" msgid "A handy personal organizer" msgstr "En nem personlig planlægger" msgid "compiled on" msgstr "kompileret den" msgid "Programming" msgstr "Programmering" msgid "Graphics" msgstr "Grafik" msgid "Contributors" msgstr "Bidragydere" msgid "Translators" msgstr "Oversættere" msgid "Mailing lists" msgstr "Postliste" msgid "Bug tracker" msgstr "Fejlregistrering" msgid "Feature requests" msgstr "Funktionsønsker" msgid "Available modules" msgstr "Tilgængelige moduler" msgid "Compiled-in features" msgstr "Kompilerede funktioner" msgid "iCalendar support" msgstr "Understøttelse af iCalendar" msgid "Encrypted notes support" msgstr "Understøttelse af krypterede noter" msgid "Backup support" msgstr "Understøttelse af sikkerhedskopiering" msgid "Printing support" msgstr "Understøttelse af udskrivning" msgid "Spell checker support" msgstr "Understøttelse af stavekontrol" msgid "version" msgstr "version" msgid "GIT version" msgstr "GIT-version" msgid "Key shortcuts" msgstr "Genvejstast" msgid "License" msgstr "Licens" #~ msgid "handy personal organizer" #~ msgstr "nem personlig planlægger" osmo-0.4.2/po/he.mo0000664000175000017500000010365613204320601010766 00000000000000c45L& 3 !3/3J3 P3 \3g3p3y33333 3 3 33 3 3 3 4 4 4)4 ;4I4`4(q4 44 44444 44 4 5*595?5D5 M5 [5e5t5y5~55 5 5555 55556%676M6 _6i6 x66 6 6 6 6 66667 77 7+7?7 W7d7u7777777 777 7 888 8 +8 78 C8 N8 [8 h8 v8 8 888%88 8 889%9 )969 E9R9[9 d9 n9 y9999 9 9 9999: ::::#:,:G:N:W:`: i:!w: : : : : :::::!;%;8; H;R; j;u;y;;;;;; ;;;;; ;; <<< &<1<B<G<P<W<\< e<p< < <<<< < < <<<<<<= ===='=,=>= C=M= R= _= i= v= = = = = == ===== == > >>>#>,>C>W>^> n>z>> >>>>>>>>? ?? "? /? =?G? M?W? i? v?? ?? ??????? ? ?? ? ?@@@ '@5@>@U@\@ b@m@ t@@@@@ @@@@ @ @@@@@*A"/ARAVA[A `A lA vA AA AAA7AABoBB BB BBB(B"C 2C@CYC\C nC|CCCCC CCCCCC D$D-D 6D DDPD hDuD DDDDD D DDDDDE EE#E2EKE#gEEEE EEE E E FFF F )F"5F XF bFmFuF|FF FFFFF FFF GG 1G!>G"`GGGGGG H H H-)HWHhHyHHH HH H H HHI I "I /IWIWPWfW|WWWWWWW WW X"X=X1UXXXXXXXX XXY*$YOYeY nYyYYYYYY YYZ!Z@ZIZ!ZZ|ZZZ&Z$Z$Z)$[$N[s[z[[[[[[[ \=\O\ h\s\z\\\\\\\]*]$1]V] l]w]~] ]]] ]] ]] ] ^ ^!^2^J^`^t^^ ^^ ^;^^_+_ A_ b_____ _ ___``!!`C` J` X` c` n`-{`(``` ` ` `a*a ?a Ja Wa daqa:aaaabb %b 1b>bGb.dbbb b$b bc cc %c0cHc LcWcicc cccccccdd/d 8dFdOdVd ed"sd dd ddd d dde 'e 4e@eGe ^e ie ve ee ee eeeee f%f9fOfef{fff fffff fffffff)f(g GgRgigggggg+ggh h $h1h:hCh^hwh hhhhhhhii#iy Yygy}yy5y;y1zDzWz^z/cz zzzz%z z z {{4{F{ M{X{ j{u{ {?{{{{ {{ | %| 0| =| J|W|r| ||||||#|}1} J}W} m} x}}}}}}} ~'~=~Q~X~h~q~v~~~~~~&$-K y&+=[!t910@[5p9%-/]x Ăނ#6Qjz Ճ ';[v ΄Iׄ!;Wt  ƅх څ "$GP#Y } #ƆG#2Vfv|LU]|a,ptZi ^Fm9ThYJ_x#.;*X$n'V?0O]J Q.-/2z@*k;Sf HN{v9  !Q]^ N8K+au/yci !hy[+C  3X\9H}PI) *qUwW4 =@@NF5)JRUM K"6<uI.W5pgbjA;K#$Wrc7n>B0O`\S^)I<r1Q4C3l&'ADD-!s8G,1o [b6(\<PM:w2?ecv/%E'_1z G4D6E5+ o$(PelH`RT7bZdL:CVx>~g7O(=dL% EFG"%jMtR-23"~:T8&,Y0m{f#sX=qVZ&a>kY_A B[`SB ?}0 for disableA handy personal organizerAboutAdd contactAdd headerAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlgorithmAllAll FilesAll fieldsAll itemsAll notesAlt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAuthorizationAvailable modulesBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDayDay SelectorDay categoriesDay categoryDay nameDay noteDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete noteDepartmentDescriptionDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGoodGraphicsGroupGroupsHareHashingHelpersHideHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No records found in selected file.No.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe note has changed.ThickThinThis is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesopen noteorremove contactremove day noteremove noteremove taskrounded downsave notesecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2015-07-30 08:37+0000 Last-Translator: http://www.transifex.com Language-Team: Hebrew (http://www.transifex.com/projects/p/osmo/language/he/) Language: he MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 לנטרולמארגן אישי שימושי אודותהוסף איש קשרהוסף תקורההוסף פתקהוסף מטלההוסף או הסר מתוך תאריךמידע נוסףכתובתמתקדםגילפקודת אזעקהאזעקת אזהרהאלגוריתםהכלכל הקבציםכל השדותכל הפריטיםכל הפתקיםAlt+חצים‎Alt+a, InsertAlt+e, Ctrl+EnterAlt+r, Deleteיחידות זמן חלופיותתצוגה חלופיתעותק אחר של OSMO כבר מורץ כעת.מראהדליהאם דעתך גמורה?טלהחץ‎חצים‎‎חצים מעלה/מטה‎הרשאהמודולים זמיניםגבה מידעקובץ גיבוי נשמר בהצלחה!תמיכת גיבויבסיסמיטבייום הולדתתאריך לידהימי הולדתרשימת יום הולדתבלוגבולטתחתוןעיין באירועי iCalעיין בפתקיםBug tracker (מעקב בעיות)בתים‎לוח שנהקבצי לוח שנה (‎*.ics)גופן לוח שנהפתקי לוח שנהסרטןלא מסוגל ליצור גיבוי!לא מסוגל ליצור קובץ.לא מסוגל לפתוח קובץ.לא מסוגל לפתוח את הפתק.לא מסוגל לקרוא קובץ.גדיתלוי רישיותקטגוריותקטגוריהטלפון ניידטלפון נייד 2טלפון נייד 3טלפון נייד 4תוויםהנורחא הצרה זאמ םיעוריא רובע קודבשנת חיה סיניתעיגולעירטהרטהר אפיוניםטהר תמלילסגור לוח איש קשרסגור לוח תיאורסגור עורךסגור רשומת מציאהסגור לוח פתקצבעצבע תגיות של איש קשרצבע קישוריםצבעיםטורתכונות Compiled-inדחיסהפרטי איש קשר‎אנשי קשרלהמשיך?‎תורמיםמדינהנוצרCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+רווח‎Ctrl+מעלה/מטה‎תאריך נוכחיחודש נוכחיזמן נוכחישנה נוכחיתצבע סמןעובי סמןתאריךתאריך וזמן להפחית או להוסיף מתוךמחשבון תאריךגופן תאריךפורמט תאריךתחביר פורמט תאריךפורמט תקורת תאריךיוםבורר יוםקטגוריות יוםקטגוריית יוםשם יוםפתק יוםפתקי יוםיום מספרמטלות היוםימיםימים עד ליום הולדתDeleteמחק פתקמחלקהתיאורמנוטרלהאם אתה באמת רוצה להמשיך?האם ברצונך לשמור אותו?מסמךכלבהושלמהסוים!דרקוןמועד יעדפרק זמן בין שני תאריכיםדוא״לדוא״ל 2דוא״ל 3דוא״ל 4לקוח דוא״לשגיאה: לא מסוגל ליצור קבצי תצורהערוך קטגוריהערוך איש קשרערוך רשומהערוך פתקערוך מטלה‎עורךאליפסהאפשראפשר התראות קולאפשר בדיקת איות בפתקי יוםאפשר מגש מערכתאפשר תיבות צצותמוצפןתמיכת פתקים מוצפניםהצפנהסוףEnterהזן סיסמהשגיאהשגיאה בהדפסהEscאירועסמן אירועצבע סמן אירועאירועיםייצואיצא אנשי קשריצא מטלותיצוא לקובץ iCalמהירפקס‎בקשת תכונותטיפוס שדהשדות לייצואקובץשם קובץמסנןמצאהסתיימהשם פרטיתאריך ושעה ראשוניםשם פרטיגודל גופןגופניםעוףעיגול כתב-ידמן (שעה)ירח מלאתאריך מלא‎לוח שנה מלאתאומים‎כלליטוב‎מתאר ציוריקבוצהקבוצותארנבתערבוביישומי עזרהסתרההסתר טור קבוצהגבוהההדגשביתכתובת מגוריםעיר מגוריםמדינת מגוריםטלפון בביתטלפון בבית 2טלפון בבית 3טלפון בבית 4מיקוד מגוריםמחוז מגוריםHome/EndאופקיסוסשעהשעותAIMGadu-GaduICQJIDMSNSkypeTlenYIM!התעלם מאירועי פתקי יוםהתעלם מימי סופ״שייבואיבא אנשי קשרטיפוס ייבואסיסמה שגויה!מידעמידעקלט שם קובץInsertהכנס תאריך וזמן נוכחייםהכנס חוצץהכנס ציר זמןמרשתתתדירותהפוךנטויגודל גופן פריטקפוץ אל תאריך מקשי קיצורלרוחבגדולשם משפחהרבעון ירחי אחרוןשינויים אחרוניםשם משפחהמערךשנה מעוברתשמאל‎שמאל, ימין‎אריהמאוזניים רשיוןשורהשורותנמוכה‎רשימות תפוצהספק מפותסימןימים מסומניםהנותנ תזורחמ תרזעב רשק ישנא םאתהבינונידקהדקותשונותשונההתאמת פרמטרי ICALקוףחודששם חודשחודשיםפאזה ירחיתשםשם יוםשמות ימיםמופע ירחאיש קשר חדשפתק חדשמטלה חדשהיום הבאחודש הבאשנה הבאהכינוילאאין תאריך לידה מוגדראין תאריךשום שחזור מידע לא יהיה אפשרי.לא נמצאו רשומות בקובץ נוכחי.מס׳ללאפתק‎עורך פתקיםגופן פתקשם פתקטיפוס פתק‎פתקיםאפשרויות פתקיםאין מה לייבא.מספר ימים(0: לדחמ תרירב) םיעוריא רובע האלה הקידבל םימי רפסממספר ימי סופ״שמספר שבועות‏OSMO תוכנן בשים לב לנוחיות המשתמש, כך שיש קיצורי דרך מקש רבים. הרי הרשימה המלאה:פתיחת קובץ גיבויפעולהאפשרויותארגוןקבצי גיבוי Osmo ‏(‎*.bck)על Osmo להתאתחל כעת...עליך לאתחל את Osmo על מנת שהשינויים ייכנסו לתוקף.שם קובץ פלטפורמט פלטהחלף הגדרות של מקומיותשורכיוון עמוד:PageUp/PageDnהגנת סיסמהסיסמאות לא תואמות!אישיטלפוניםתצלוםגודל תצלוםחזירדגיםגלוינא להזין את הסיסמהנא לבחור כתובתנא לבחור קובץ ראשון.לאורךמיקודזמן שהייההעדפותחודש קודם ובאיום קודםחודש קודםשנה קודמתהדפס לוח שנהמאפייני הדפסהתמיכת הדפסהעדיפות‎תכנותרבעון ירחישאלהיציאהעכברושיחסהזן סיסמה שובקריאה-בלבדרישוםמטלה חוזרתזכור מיקום סמןזכור עמוד נבחר אחרוןזכור את הקטגוריה האחרונה שנבחרההזכר לי מאוחר יותראפשרויות תזכורתהסר איש קשרהסר מטלהחזרהחזור בימים הבאיםאפס שדותאפס זמןשחזר מידעתוצאהימיןקשתשמירת גיבוישמור נתונים לאחר כל שינוישמור פתקשמור מטלותעקרבחיפוששניהתאריך ושעה אחרוניםשם אמצעישניהבחר קובץ CSVבחר קובץ ICSבחר גופן...בחר צבעבחר זמן ותאריךבחר צבע יוםבחר שדותבחר קובץ פלטבחר תצלוםאיש קשר נבחר יוסר.פתק יום נבחר יוסר.קובץ נבחר קיים! להחליף?חודש נבחרחודש ושנה נבחריםפתק נבחר יוסר.מטלות נבחרות יימחקו.שנה נבחרתבחירה‎בוררעדימו תורדגה יצבק רובע טלחומ ביתנ עבקקבע תאריך נוכחיקבע זמן נוכחיאפס אל פורמט משתמטקבע זמןכבשההצג את Osmoהצג ימי הולדתהצג לוח שנההצג מיקום איש קשר על המפההצג אנשי קשרהצג שמות יוםהצג בלוח מידע יוםהצג פתקיםהצג אפשרויותהצג שניותןטק הנש חול ןולח גצההצג מטלההצג מטלותהצג מספרי שבועתצוגה פשוטה בלוח שנה מלאשימוש סימולטני בשני עותקים או יותר של OSMO עלול לגרום לאיבוד מידע.קטןנחשנגן קול‎רווחשפת בודק איותתמיכת בודק איותתחילההתחל ממוזערהתחילהמחוזסטטיסטיקותצעד (דקות)קו חוצהסמן בקו חוצה פתקי ימי עברתמציתתחבירמגש מערכתמיקום כרטיסיותתוויותמטלהפירטי מטלהגופן מידע מטלה‎מטלותרשימת מטלותאפשרויות מטלותשורהתבנית %s תוחלף עם כתובת דוא״להתבנית %s תוחלף עם שם קובץ של צלילהתבנית %s תוחלף עם כתובת רשתהפתק שונה.עבהדקקובץ זה אינו קובץ גיבוי OSMOטיגריסזמןפורמט זמןתקופת זמןזמן להוספה או להחסרהציר זמןעד (שעה)היוםהחלף לוח פתק יוםבודק איותמחרעליון‎מתרגמיםטיפוסקו תחתוןלא ידועהשתמש בפורמט מערכת עבור תאריך וזמןתקףערךאנכיבתולהטורים נראיםאירועים נראיםמרשתתמרשתת 2מרשתת 3מרשתת 4ירח מתמעט קשתיירח מתמעט מקומראזהרהגלירח מתמלא קשתיירח מתמלא מקומרדפדפן רשתשבוע מספרשבוע מתחיל ביום שניימי סופ״שצבע ימי סופ״ששבועותתווים לבניםמיליםעבודהכתובת עבודהעיר עבודהמדינת עבודהטלפון בעבודהטלפון בעבודה 2טלפון בעבודה 3טלפון בעבודה 4מיקוד עבודהמחוז עבודהשנהמידע שנהשניםכןמזל אסטרולוגישם חודש מקוצרשם יום חול מקוצרהפעל שדה חיפושהוסףהוסף איש קשרהוסף פתקהוסף מטלההקצה צבע רקע לפתק יוםהתאם אותיות גדולות/קטנותהחלף מסנן קטגוריההחלף יוםהחלף חודשהחלף מצב חיפושהחלף שנהטהר עיצוב בחירהסגור לוח פרטי איש קשרסגור עורךסגור לוח שנה מלאסגור עורך פתקסגור לוח מידע מטלההודר בתאריךהתווסף איש קשרהתווספו אנשי קשראיש קשר יוצאאנשי קשר יוצאומחשבון תאריךיוםימיםדפדפן פתקי יוםיום של חודשיום של חודש ללא אפסים מוביליםיום עד סוף השנהימים עד סוף השנהערוך איש קשרערוך שם פתק וקטגוריהערוך מטלהתמיכת הצפנה הינה מנוטרלת‪רשומהרשומותאירועאירועיםיציאהמצא תמלילשם חודש מלאשם יום חול מלאשעהשעותשעותאירועי iCalendarייצוא iCalendarקבצי iCalendarתמיכת iCalendar‭‏קפוץ אל תאריךדקהדקותדקותחודשחודשיםאין רשומותפתח פתקאוהסר איש קשרהסר פתק יוםהסר פתקהסר מטלהמתעגלותשמור פתקשניהשניות‎בחר תאריך נוכחיקבע שנה נוכחיתהצג חלון אודותהצג לוח שנה מלאהצג חלון אפשרויותהפחתהחלף עמוד בתוך כרטיסיית אפשרויות ואודותכרטיסייה הבאהכרטיסייה קודמתהחלף לעמוד נבחרמטלות יוצאוהיום האחרון שבשנהזמן אינו מוחשבפעמיםהיוםהחלף תצוגה חלופיתמודגשהחלף מצב מסך מלאהחלף משימות נסתרותהדגשנטויהחלף ראות מידע אישיקו חוצהקו תחתוןגרסאנולד/השבועשבועותיום סופ״שימי סופ״שיום סופ״ש לא מוחשבימי סופ״ש לא מוחשביםיום עבודהימי עבודהשנהשניםמידע שנהשנהשניםשנה עם מאהשנה בלי מאהosmo-0.4.2/po/bg.po0000664000175000017500000013207613204320601010763 00000000000000# Bulgarian translation of Osmo # This file is distributed under the same license as the Osmo package. # Borislav Totev , 2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-02-23 19:11+0100\n" "Last-Translator: Borislav Totev \n" "Language-Team: Bulgarian\n" "Language: bg\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" msgid "Colors" msgstr "Цветове" msgid "Color of contact tags" msgstr "Цвят за тагове на контакти" msgid "Color of links" msgstr "Цвят за връзки" msgid "Font size" msgstr "Размер на шрифта" msgid "Name font size" msgstr "Размер на шрифта име" msgid "Item font size" msgstr "Позиция размера на шрифта" msgid "Photo size" msgstr "Размер на изображението" msgid "Small" msgstr "Малък" msgid "Medium" msgstr "Среден" msgid "Large" msgstr "Голям" msgid "Hide group column" msgstr "Скриване колоната за група" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Възраст" msgid "Birthday date" msgstr "Роженна дата" msgid "Zodiac sign" msgstr "Зодия" msgid "Contacts" msgstr "Контакти" msgid "Appearance" msgstr "Външен вид" msgid "Miscellaneous" msgstr "Разни" msgid "Groups" msgstr "Групи" msgid "Visible columns in birthday browser" msgstr "Показване колони в браузъра за рожден ден" msgid "Algorithm" msgstr "Алгоритъм" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Свиване" msgid "Ratio" msgstr "Пропорция" msgid "Fast" msgstr "Бързо" msgid "Good" msgstr "Добро" msgid "Best" msgstr "Най-добро" msgid "Type" msgstr "Тип" msgid "Category" msgstr "Категория" msgid "Last changes" msgstr "Последни промени" msgid "Created" msgstr "Създаване" msgid "Remember the last selected category" msgstr "Запомняне на последната избрана категория" msgid "Use system format for date and time" msgstr "Използване на системният формат за дата и време" msgid "Notes" msgstr "Бележки" msgid "Encryption" msgstr "Шифроване" msgid "Visible columns" msgstr "Видими колони" msgid "Categories" msgstr "Категорий" msgid "Notes options" msgstr "Опций за бележки" msgid "Jump to date" msgstr "Скочи до дата" msgid "Day" msgstr "Ден" msgid "Month" msgstr "Месец" msgid "Year" msgstr "Година" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Избиране на шрифт..." msgid "None" msgstr "Нищо" msgid "All items" msgstr "Всички елементи" msgid "Question" msgstr "Въпрос" msgid "Information" msgstr "Информация" msgid "Error" msgstr "Грешка" msgid "Warning" msgstr "Внимание" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Избраният файл съществува.Замяна?" msgid "Selected contact will be removed." msgstr "Избор на контакт който ще бъде премахнат" msgid "Are you sure?" msgstr "Сигурен/а ли сте?" msgid "No date" msgstr "Без дата" msgid "Select photo" msgstr "Избор на снимка" msgid "Address" msgstr "Адреси" msgid "Postcode" msgstr "Пощенски код" msgid "City" msgstr "Град" msgid "State" msgstr "Област" msgid "Country" msgstr "Държава" msgid "Edit contact" msgstr "Редактиране на контакт" msgid "Add contact" msgstr "Добавяне на контакт" msgid "Personal" msgstr "Личен" msgid "Group" msgstr "Група" msgid "Home" msgstr "Домашен" msgid "Work" msgstr "Месторабота" msgid "Phones" msgstr "Телефони" msgid "Internet" msgstr "Интернет" msgid "Additional info" msgstr "Допълнителна информация" msgid "_OK" msgstr "" msgid "no entries" msgstr "няма записи" msgid "entry" msgid_plural "entries" msgstr[0] "запис" msgstr[1] "записи" msgid "Calendar notes" msgstr "Календарни бележки " msgid "Search" msgstr "Търсене" msgid "Filter" msgstr "Филтър" msgid "Current month" msgstr "Текущ месец" msgid "Selected month" msgstr "Избран месец" msgid "Current year" msgstr "Текуща година" msgid "Selected year" msgstr "Избрана година" msgid "Selected month and year" msgstr "Избрани месец и година" msgid "All notes" msgstr "Всички бележки" msgid "Case sensitive" msgstr "Case sensitive" msgid "Strikethrough past day notes" msgstr "Зачерване последните бележки за деня" msgid "Date" msgstr "Дата" msgid "Note" msgstr "Бележка" msgid "_Close" msgstr "" msgid "Rat" msgstr "Плъх" msgid "Ox" msgstr "Бивол" msgid "Tiger" msgstr "Тигър" msgid "Hare" msgstr "Заек" msgid "Dragon" msgstr "Дракон" msgid "Snake" msgstr "Змия" msgid "Horse" msgstr "Кон" msgid "Sheep" msgstr "Овца" msgid "Monkey" msgstr "Маймуна" msgid "Fowl" msgstr "Петел" msgid "Dog" msgstr "Куче" msgid "Pig" msgstr "Свиня" msgid "Unknown" msgstr "Непознат" msgid "Aquarius" msgstr "Водолей" msgid "Pisces" msgstr "Риби" msgid "Aries" msgstr "Овен" msgid "Taurus" msgstr "Бик" msgid "Gemini" msgstr "Близнаци" msgid "Cancer" msgstr "Рак" msgid "Leo" msgstr "Лъв" msgid "Virgo" msgstr "Дева" msgid "Libra" msgstr "Везни" msgid "Scorpio" msgstr "Скорпион" msgid "Sagittarius" msgstr "Стрелец" msgid "Capricorn" msgstr "Козирог" msgid "Osmo has to be restarted to take effect." msgstr "OSMO трябва да се рестартира за да се приложат промените " msgid "Layout" msgstr "Разпределение" msgid "Vertical" msgstr "Вертикално" msgid "Horizontal" msgstr "Хоризонтално" msgid "Tabs position" msgstr "Позиция за табовете" msgid "Left" msgstr "Ляво" msgid "Right" msgstr "Дясно" msgid "Top" msgstr "Горе" msgid "Bottom" msgstr "Доло" msgid "Disable underline in links" msgstr "Изключване подчертаване във връзки" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Най-малко един модул трябва д асе вижда." msgid "Calendar" msgstr "Календар" msgid "Tasks" msgstr "Задачи" msgid "Override locale settings" msgstr "Замяна на локалните настройки" msgid "Date format" msgstr "Формат за дата" msgid "DD-MM-YYYY" msgstr "ДД-ММ-ГГГГ" msgid "MM-DD-YYYY" msgstr "ММ-ДД-ГГГГ" msgid "YYYY-MM-DD" msgstr "ГГГГ-ММ-ДД" msgid "YYYY-DD-MM" msgstr "ГГГГ-ДД-ММ" msgid "Time format" msgstr "Формат за време" msgid "hours" msgstr "часове" msgid "Spell checker language" msgstr "Проверка за правопис " msgid "Enable tooltips" msgstr "Разрешаване на съвети" msgid "Remember last selected page" msgstr "Запомняне на последната избрана страница" msgid "Save data after every modification" msgstr "Запазване на даните след всяка модификация" msgid "Web browser" msgstr "Web browser" msgid "E-mail client" msgstr "E-mail client" msgid "Sound player" msgstr "Sound player" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Схемите %s ще бъдат заменени с уеб адрес" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Схемите %s ще бъдат заменени със имейл адрес" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "The %s pattern will be replaced with sound filename" msgid "Enable system tray" msgstr "Разрешаване на системна област" msgid "Start minimised" msgstr "Стартиране минимализирано" msgid "Ignore day note events" msgstr "Игнориране на събитие от дневна бележка" msgid "General" msgstr "Главно" msgid "Hide" msgstr "Скриване" msgid "Helpers" msgstr "Помощници" msgid "System tray" msgstr "System tray" msgid "Preferences" msgstr "Предпочитания" msgid "Syntax" msgstr "Синтаксис" msgid "abbreviated weekday name" msgstr "съкратено име на седмичен ден" msgid "full weekday name" msgstr "Пълно име на седмичен ден" msgid "abbreviated month name" msgstr "съкратено име на месец" msgid "full month name" msgstr "пълно име на месеца" msgid "day of the month" msgstr "ден от месеца" msgid "MM/DD/YY" msgstr "ММ/ДД/ГГ" msgid "day of the month without leading zeros" msgstr "ден от месеца без нула отпред" msgid "month" msgid_plural "months" msgstr[0] "Месец" msgstr[1] "Месеци" msgid "year without century" msgstr "година без указване на век" msgid "year with century" msgstr "година със указване на век" msgid "Date header format" msgstr "Формат на дата" msgid "Set default format" msgstr "Задаване формат по подразбиране" msgid "Date format syntax" msgstr "Синтаксис на формата за дата" msgid "Day note marker" msgstr "Маркер дневна бележка" msgid "Event marker" msgstr "Маркер Събитие" msgid "Circle" msgstr "Кръг" msgid "Ellipse" msgstr "Елипса" msgid "Wave" msgstr "Вълна" msgid "Current day marker" msgstr "Маркер текущ ден" msgid "Arrow" msgstr "Стрелка" msgid "Free-hand circle" msgstr "Свободен кръг" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Цвят на седмичен ден" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Курсор цвят" msgid "Event marker color" msgstr "Цвят за маркер на събитие " msgid "Current day marker color" msgstr "Текущ цвят за маркер на деня" msgid "Birthday marker color" msgstr "цвят за маркер на рожден ден" msgid "Date font" msgstr "Шрифт за дата" msgid "Calendar font" msgstr "Шрифт за календар" msgid "Note font" msgstr "Шрифт за бележки" msgid "Enable block cursor" msgstr "Позволяване на блок курсор" msgid "Cursor thickness" msgstr "Дебелина на курсора" msgid "Thin" msgstr "Тънко" msgid "Thick" msgstr "Дебело" msgid "Edit category" msgstr "Редактиране на категория" msgid "Color" msgstr "Цвят" msgid "Name" msgstr "Име" msgid "Select ICS file" msgstr "Избиране на ICS файл" msgid "All Files" msgstr "Всички файлове" msgid "Calendar files (*.ics)" msgstr "Календарни файлове (*.ics)" msgid "Modify ICAL parameters" msgstr "Промяна на ICAL параметри" msgid "Filename" msgstr "Файлово име" msgid "Options" msgstr "Опций" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Валиден" msgid "Description" msgstr "Описание" msgid "Full date" msgstr "Full date" msgid "Mark" msgstr "Маркиране" msgid "Week start on Monday" msgstr "Седмицата започва от Понеделник" msgid "Show day names" msgstr "Покажи имената на дните" msgid "No month change" msgstr "Без промяна на месец" msgid "Show week numbers" msgstr "Покажи седмичните номера" msgid "Simple view in full-year calendar" msgstr "Обикновен изглед на целогодишният календар" msgid "Enable auxilary calendars" msgstr "Enable auxilary calendars" msgid "Ascending sorting in day notes browser" msgstr "Възходящо сортиране в браузъра на дневни бележки" msgid "Enable spell checker in day notes" msgstr "Разрешаване проврка на правописа в дневни бележки" msgid "Current time" msgstr "Текущо време" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Номер на деня" msgid "Today distance" msgstr "Today distance" msgid "Marked days" msgstr "Пазарни дни" msgid "Week number" msgstr "номер на седмицата" msgid "Weekend days" msgstr "Седмични дни" msgid "Day category" msgstr "Категория за деня" msgid "Moon phase" msgstr "Луна фаза" msgid "Day notes" msgstr "Дневна бележка" msgid "Day categories" msgstr "Дневна категория" msgid "iCalendar files" msgstr "iCalendar файлове" msgid "Show in day info panel" msgstr "Показване в инфо панела на деня" msgid "Tasks list" msgstr "Листа със задачи" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "No." msgid "Summary" msgstr "Резюме" msgid "Due date" msgstr "Краен срок" msgid "Priority" msgstr "Приоритет" msgid "Error printing" msgstr "Грешка при печатане" msgid "No birthdays defined" msgstr "Няма дефинирани рожденни дни" msgid "Birthdays list" msgstr "Листа с рождени дни" msgid "Days to birthday" msgstr "Days to birthday" msgid "today" msgstr "Днес" msgid "Select CSV file" msgstr "Избиране на CSV файл" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (comma-separated values) files (*.csv)" msgid "Please select file first." msgstr "Моля изберете файл първо." msgid "Import contacts" msgstr "Внеси цонтакти" msgid "Import type" msgstr "Входящ тип" msgid "File" msgstr "Файл" msgid "Input filename" msgstr "Входящо име на файл" msgid "Import" msgstr "Внасяне" msgid "Nothing to import." msgstr "Нищо за внасяне" msgid "contact added" msgid_plural "contacts added" msgstr[0] "добавен контакт" msgstr[1] "добавени контакти" msgid "of" msgstr "на" msgid "Record" msgstr "Запис" msgid "Number fields per record" msgstr "Брой полета за запис" msgid "Use first record as header" msgstr "Използвай първият запис за главен" msgid "Field type" msgstr "Тип поле" msgid "Value" msgstr "Стойност" msgid "No records found in selected file." msgstr "Няма намерен запис във избраният файл" msgid "Cannot read file." msgstr "файлът не може да се прочете" msgid "Cannot open file." msgstr "Файлът не може да се отвори" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Показване календар" msgid "Show tasks" msgstr "Показвана задачи" msgid "Show contacts" msgstr "Показване на контакти" msgid "Show notes" msgstr "Показване на бележки" msgid "Show options" msgstr "Показване на опций" msgid "Quit" msgstr "Изход" msgid "Show small calendar window" msgstr "Показване календара в малък прозорец" msgid "Check for events since last run" msgstr "Проверка за събития от последното изпълнение" msgid "Number of days to check forward for events (default: 0)" msgstr "Брой на дните за проверка на събития напред (default: 0)" msgid "Set absolute path for settings and data files" msgstr "Настройка на абсолютният път за настройки и файлове с данни" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ГРЕШКА:Не могат да се създадат конфигурациони файлове" msgid "Another copy of OSMO is already running." msgstr "Друга копие на OSMO във момента работи" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Едновременото използване на два или повече копия на OSMO може да бъде " "причина за загуба на данни." msgid "Do you really want to continue?" msgstr "Найстина ли искате да продължите" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Ниско" msgid "High" msgstr "Високо" msgid "Done!" msgstr "Направен !" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "изнесен контакт" msgstr[1] "изнесени контакти" msgid "Cannot create file." msgstr "Не може да се създаде файл." msgid "Select output file" msgstr "Избор изходящ файл" msgid "Export contacts" msgstr "Изнеси контакти" msgid "Output format" msgstr "Изходен формат" msgid "Add header" msgstr "Добави главно" msgid "Fields to export" msgstr "Полета за износ" msgid "All" msgstr "Всичко" msgid "Invert" msgstr "Обръщане" msgid "Select fields" msgstr "Избирани полета" msgid "Output filename" msgstr "Изходящо файлово име" msgid "Export" msgstr "Експорт" msgid "Color of items that are due today" msgstr "Цвят на артикулите за днес" msgid "Color of items that are due in the next 7 days" msgstr "Цвят на артикулите които предстоят в следващите 7 дена" msgid "Color of items that are past due" msgstr "Цвят на артикулите които са просрочени" msgid "Task info font" msgstr "Информация за шрифта на задачата" msgid "Show in bold tasks with high priority" msgstr "Покази във bold задачите с висок приоритет" msgid "Hide completed tasks" msgstr "Скриване на приключените задачи" msgid "Delete completed tasks without confirmation" msgstr "Изтриване на приключени задачи без предупреждение" msgid "Add new task when double clicked on tasks list" msgstr "Добавяне на нова задача при двойно кликане върху списъка със задачи" msgid "Postpone time" msgstr "Отлагане " msgid "minutes" msgstr "минути" msgid "0 for disable" msgstr "0 за забранените" msgid "Repeat sound alarm" msgstr "Повторение звуковата аларма" msgid "times" msgstr "времена" msgid "Global notification command" msgstr "Глобална уведомителна команда" msgid "Tasks options" msgstr "Опций задачи" msgid "Reminder options" msgstr "Опций за напомняне" msgid "Insert timeline" msgstr "Insert timeline" msgid "Timeline" msgstr "Хронология" msgid "From (hour)" msgstr "From (hour)" msgid "Step (minutes)" msgstr "Step (minutes)" msgid "To (hour)" msgstr "To (hour)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Изберете поне един ден когато recurrency е разрешено" msgid "Set time" msgstr "Настройка на време" msgid "Hour" msgstr "Час" msgid "Minute" msgstr "Минута" msgid "Today" msgstr "Днес" msgid "Tomorrow" msgstr "Утре" msgid "Selected task will be removed." msgstr "Избрани задачи който ще бъдат премахнати" msgid "Select date and time" msgstr "Избиране дата и време" msgid "Enable sound notification" msgstr "Разрешаване на звуково оповестяване" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Аларма предупреждение" msgid "Days" msgstr "Дни" msgid "Hours" msgstr "Часове" msgid "Minutes" msgstr "Минути" msgid "Alarm command" msgstr "Alarm command" msgid "Date period" msgstr "Период за дата" msgid "Months" msgstr "Месеци" msgid "Repeat" msgstr "Повторение" msgid "Repeat in the following days" msgstr "Повторение във следващите дни" msgid "Time period" msgstr "Времеви период" msgid "Start" msgstr "Старт" msgid "End" msgstr "Край" msgid "Interval" msgstr "Интервал" msgid "Ignore alarm when task expired offline" msgstr "Игнорирай алармата когато срока е изтекъл" msgid "Recurrent task" msgstr "Повтарящи се задачи" msgid "Enable" msgstr "Позволи" msgid "Edit task" msgstr "Редактиране на задача" msgid "Add task" msgstr "Добавяне на задача" msgid "Basic" msgstr "Основно" msgid "Advanced" msgstr "Разширено търсене" msgid "New Moon" msgstr "Новолуние" msgid "Waxing Crescent Moon" msgstr "Полумосец" msgid "Quarter Moon" msgstr "Първа четвърт" msgid "Waxing Gibbous Moon" msgstr "Полумесец" msgid "Full Moon" msgstr "Пълнолуние" msgid "Waning Gibbous Moon" msgstr "Полумесец" msgid "Last Quarter Moon" msgstr "Последна четвърт " msgid "Waning Crescent Moon" msgstr "Полумесец" msgid "Cannot create backup!" msgstr "Невъзможно създаване на бакъп!" msgid "Save backup" msgstr "Запазване на бакъп" msgid "Password protection" msgstr "Защита на парола" msgid "Enter password" msgstr "Въвеждане на парола" msgid "Re-enter password" msgstr "Повторете паролата" msgid "Please enter the password" msgstr "Моля въведете парола" msgid "Passwords do not match!" msgstr "Паролите не съвпадат" msgid "Backup file saved successfully!" msgstr "Бакъп файла е запазан успешно!" msgid "Open backup file" msgstr "Отваряне на бакъп файл" msgid "Osmo backup files (*.bck)" msgstr "Osmo бакъп файлове (*.bck)" msgid "This is not Osmo backup file" msgstr "Това не е бакъп файл на Osmo" msgid "Incorrect password!" msgstr "Неправилна парола" msgid "All your data will be replaced with backup file content." msgstr "Всичките ваши данни ще бъдат заменени със съдържанието на бакъп файла." msgid "Osmo has to be restarted now..." msgstr "OSMO ще се рестартира сега..." msgid "Please select address" msgstr "Моля изберете адрес" msgid "First name" msgstr "Име" msgid "Last name" msgstr "Фамилия" msgid "Second name" msgstr "Бащино" msgid "Nickname" msgstr "Прякор" msgid "Tags" msgstr "Етикети" msgid "Name day date" msgstr "Name day date" msgid "Home address" msgstr "Домашен адрес" msgid "Home postcode" msgstr "Пощенски код" msgid "Home city" msgstr "Град" msgid "Home state" msgstr "Област" msgid "Home country" msgstr "Държава" msgid "Organization" msgstr "Организация" msgid "Department" msgstr "Отдел" msgid "Work address" msgstr "Адрес по месторабота" msgid "Work postcode" msgstr "Пощенски код по месторабота" msgid "Work city" msgstr "Град по месторабота" msgid "Work state" msgstr "Област по месторабота" msgid "Work country" msgstr "Държава по месторабота" msgid "Fax" msgstr "Факс" msgid "Home phone" msgstr "Домашен телефон" msgid "Home phone 2" msgstr "Домашен телефон 2" msgid "Home phone 3" msgstr "Домашен телефон 3" msgid "Home phone 4" msgstr "Домашен телефон 4" msgid "Work phone" msgstr "Телефон по месторабота" msgid "Work phone 2" msgstr "Телефон по месторабота 2" msgid "Work phone 3" msgstr "Телефон по месторабота 3" msgid "Work phone 4" msgstr "Телефон по месторабота 4" msgid "Cell phone" msgstr "Мобилен телефон" msgid "Cell phone 2" msgstr "Мобилен телефон 2" msgid "Cell phone 3" msgstr "Мобилен телефон 3" msgid "Cell phone 4" msgstr "Мобилен телефон 4" msgid "E-Mail" msgstr "E-Mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Блог" msgid "Photo" msgstr "Снимка" msgid "New contact" msgstr "Нов контакт" msgid "Remove contact" msgstr "Премахване на контакт" msgid "Show birthdays" msgstr "Показване на рождени дни" msgid "Show contact location on the map" msgstr "Покажи локализацията на контакта на картата" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "За" msgid "Clear" msgstr "Изчистване" msgid "First Name" msgstr "Първо име" msgid "Last Name" msgstr "Фамилия" msgid "All fields" msgstr "Всички полета" msgid "Contact details" msgstr "Детайли за контакта" msgid "Close contact panel" msgstr "Затваряне панела за контакта" msgid "The note has changed." msgstr "Бележката бе променена" msgid "Do you want to save it?" msgstr "Искате ли да се запази?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Думи" msgid "Lines" msgstr "Линий" msgid "Characters" msgstr "" msgid "White characters" msgstr "White characters" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Документ" msgid "Selection" msgstr "Избор" msgid "Modified" msgstr "Модифициране" msgid "New note" msgstr "Нова бележка" msgid "Edit note" msgstr "Редактиране на бележка" msgid "Delete note" msgstr "Изтриване на бележка" msgid "Save note" msgstr "Запазване на бележка" msgid "Find" msgstr "Намиране" msgid "Toggle spell checker" msgstr "Превключване за правописна проверка" msgid "Bold" msgstr "Bold" msgid "Italic" msgstr "Italic" msgid "Underline" msgstr "Подчертаване" msgid "Strikethrough" msgstr "Зачеркване" msgid "Highlight" msgstr "Маркиране" msgid "Clear attributes" msgstr "Изчистване на атрибути" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Вмъкване на текуща дата и време" msgid "Insert separator" msgstr "Поставяне на разделител" msgid "Statistics" msgstr "Статистики" msgid "Close editor" msgstr "Затваряне на редактор" msgid "Note name" msgstr "Име на бележка" msgid "Read-only" msgstr "Само за четене" msgid "Line" msgstr "Линия" msgid "Column" msgstr "Колона" msgid "case sensitive" msgstr "case sensitive" msgid "Close find entry" msgstr "Close find entry" msgid "Edit entry" msgstr "Редактиране на запис" msgid "Remember cursor position" msgstr "Запомняне позицята на курсора" msgid "Selected note will be removed." msgstr "Избрана бележка за премахване" msgid "No further data recovery will be possible." msgstr "No further data recovery will be possible." msgid "Add note" msgstr "Добавяне на бележка" msgid "Plain" msgstr "Plain" msgid "Encrypted" msgstr "Криптирана" msgid "Note type" msgstr "Тип на бележка" msgid "Cannot open the note." msgstr "Не може да се отвори бележката" msgid "encryption support is disabled" msgstr "Подръжката за криптиране е забранена" msgid "Authorization" msgstr "Упълномощаване" msgid "year" msgid_plural "years" msgstr[0] "Година" msgstr[1] "Години" msgid "day" msgid_plural "days" msgstr[0] "Ден" msgstr[1] "Дни" msgid "hour" msgid_plural "hours" msgstr[0] "час" msgstr[1] "часове" msgid "minute" msgid_plural "minutes" msgstr[0] "минута" msgstr[1] "минути" msgid "second" msgid_plural "seconds" msgstr[0] "Секунда" msgstr[1] "Секунди" msgid "or" msgstr "или" msgid "rounded down" msgstr "закръгляване надолу" msgid "week" msgid_plural "weeks" msgstr[0] "Седмица" msgstr[1] "Седмици" msgid "working day" msgid_plural "working days" msgstr[0] "Работен ден" msgstr[1] "Работни дни" msgid "time is ignored" msgstr "времето е игнорирано" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "седмичен ден" msgstr[1] "седмични дни" msgid "This calculator only supports dates after year 1." msgstr "Калкулаторът подържа само дати след година 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "уйкенд ден игнориран " msgstr[1] "уйкенд дни игнорирани" msgid "Date calculator" msgstr "Премятане на период" msgid "Current date" msgstr "Текуща дата" msgid "Set current date" msgstr "Настройка на текуща дата" msgid "Second" msgstr "Секунда" msgid "Set current time" msgstr "Настройка на текущо време" msgid "Reset time" msgstr "Нулиране " msgid "First date and time" msgstr "Първи дата и време" msgid "Second date and time" msgstr "Втори дата и време" msgid "Alternative time units" msgstr "Алтернативни времеви единици" msgid "Result" msgstr "Резултат" msgid "Duration between two dates" msgstr "Период между две дати" msgid "Operation" msgstr "Операция" msgid "add" msgstr "добавяне" msgid "subtract" msgstr "изваждане" msgid "Date and time to add or subtract from" msgstr "Дата и време за добавяне или изваждане от" msgid "Years" msgstr "Години" msgid "Weeks" msgstr "Седмици" msgid "Seconds" msgstr "Секунди" msgid "Ignore weekend days" msgstr "Игнориране на уйкендите" msgid "Reset fields" msgstr "Нулиране на полета" msgid "Time to add or subtract" msgstr "Време за добавяне или изваждане" msgid "Add to or subtract from a date" msgstr "Добавяне към или изваждане от дата" msgid "Cannot perform selected operation." msgstr "Не може да се изпълне избраната операция." msgid "Task has been modified or removed." msgstr "Задачата е била променена или премахната" msgid "Remind me later" msgstr "Напомни ми по-късно" msgid "Done" msgstr "Направено" msgid "Show task" msgstr "Покажи задача" msgid "Alarm warning!" msgstr "Аларма предупреждение !" msgid "postponed" msgstr "отложено" msgid "Day note" msgstr "Дневна бележка" msgid "Events" msgstr "Събития" msgid "Event" msgstr "Събитие" msgid "Task" msgstr "Задача" msgid "Birthday" msgstr "Рожден ден" msgid "Show Osmo" msgstr "Покажи OSMO" msgid "event" msgid_plural "events" msgstr[0] "събитие" msgstr[1] "събития" msgid "No valid calendars defined" msgstr "Няма валидни определени календари" msgid "iCalendar events" msgstr "iCalendar събития" msgid "Time" msgstr "Време" msgid "The list will be cleared and all entries will be lost." msgstr "Списъкът ще бъде изчистен и всички записи ще бъдат загубени." msgid "event exported" msgid_plural "events exported" msgstr[0] "изнесено събитие" msgstr[1] "изнесени събития" msgid "iCalendar export" msgstr "iCalendar export" msgid "Day Selector" msgstr "Day Selector" msgid "Use date period" msgstr "Използване на период " msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Няма намерени задачи с определената дата." msgid "Save tasks" msgstr "Запазване на задачи" msgid "tasks exported" msgstr "изнесени задачи" msgid "was born" msgstr "е роден" msgid "year old" msgid_plural "years old" msgstr[0] "year old" msgstr[1] "years old" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "ден до края на годината" msgstr[1] "дни до края на годината" msgid "the last day of the year" msgstr "Последният ден от годината" msgid "Day tasks" msgstr "дневни задачи" msgid "Selected day note will be removed." msgstr "Избраната дневна бележка ще бъде премахната" msgid "Continue?" msgstr "Продължение?" msgid "Previous year" msgstr "Предходна година" msgid "Previous month" msgstr "Предходен месец" msgid "Previous day" msgstr "Предходен ден" msgid "Next day" msgstr "Следващ ден" msgid "Next month" msgstr "Следващ месец" msgid "Next year" msgstr "Следваща година" msgid "Full-year calendar" msgstr "Целогодишен календар" msgid "Print calendar" msgstr "Отпечатване на календар" msgid "Toggle day note panel" msgstr "Превключване панел Дневни бележки" msgid "Select day color" msgstr "Избиране цвят за деня" msgid "Browse notes" msgstr "Преглед на бележки" msgid "Browse iCal events" msgstr "Преглед на iCal събития" msgid "Export to iCal file" msgstr "Eкспортиране като iCal файл" msgid "Previous and next month" msgstr "Предходен и следващ месец" msgid "Close note panel" msgstr "Затваряне панела за бележки" msgid "Clear text" msgstr "Изчистване на текст" msgid "Info" msgstr "Информация" msgid "Select color" msgstr "Избор на цвят" msgid "Name day" msgstr "Имена деня" msgid "Printing properties" msgstr "Свойства за печат" msgid "Month name" msgstr "Име на месеца" msgid "Day name" msgstr "Име на деня" msgid "Fonts" msgstr "Шрифтове" msgid "Birthdays" msgstr "Рождени дни" msgid "Namedays" msgstr "Дневни имена" msgid "Visible events" msgstr "Видими събития" msgid "Padding" msgstr "Вложка" msgid "Event maximum length" msgstr "Максимална дължина на събитие" msgid "Page orientation:" msgstr "Орентация на страница:" msgid "Portrait" msgstr "Портрет" msgid "Landscape" msgstr "Пейзаж" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Високосна година" msgid "Yes" msgstr "Да" msgid "No" msgstr "Не" msgid "Chinese year animal" msgstr "Китайска година" msgid "Number of days" msgstr "Брой дни" msgid "Number of weeks" msgstr "Брой седмици" msgid "Number of weekend days" msgstr "Брой на уйкенд дни" msgid "Year info" msgstr "Годишна информация" msgid "Alternative view" msgstr "Алтернативен изглед" msgid "Started" msgstr "Стартирани" msgid "Finished" msgstr "Завършени" msgid "New task" msgstr "Нова задача" msgid "Remove task" msgstr "Премахване на задача" msgid "Change due date to previous date" msgstr "Промяна на крайният срок към предишна дата" msgid "Change due date to next date" msgstr "Промяна на крайният срок към следваща дата" msgid "Export tasks" msgstr "Изнасяне на задача" msgid "Print visible tasks list" msgstr "Печатане на видимите задачи" msgid "Task details" msgstr "Детайли на задачата" msgid "Close description panel" msgstr "Затваряне панела с описание" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "Превключи на предходният таб" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "превключи на следващият таб" msgid "switch to selected page" msgstr "превключи на избраната страница" msgid "show options window" msgstr "покажи прозореца с опций" msgid "show about window" msgstr "show about window" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "включи страницата с опций и за раздела" msgid "exit" msgstr "изход" msgid "Space" msgstr "Интервал" msgid "select current date" msgstr "изберете текуща дата" msgid "Ctrl+Space" msgstr "Ctrl+Интервал" msgid "toggle personal data visibility" msgstr "разрешаване видимост на личните данни" msgid "Arrows" msgstr "Стрелки" msgid "change day" msgstr "промяна на деня" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "превъртане съдържанието на панела за дневна информация" msgid "change month" msgstr "промяна на месеца" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "Промяна на годината" msgid "toggle calendars for the previous and next month" msgstr "превключване на календарите за предходният и следващ месец" msgid "day notes browser" msgstr "браузър дневни бележки" msgid "assign background color to day note" msgstr "присвояване цвят на фона за дневна бележка" msgid "date calculator" msgstr "калкулатор на дни" msgid "show full-year calendar" msgstr "покажи годишният календар" msgid "jump to date" msgstr "скочи на дата" msgid "Delete" msgstr "Изтриване" msgid "remove day note" msgstr "премахване на дневна бележка" msgid "Alt+Arrows" msgstr "Alt+Стрелки" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "затвори редактора" msgid "toggle bold" msgstr "toggle bold" msgid "toggle italic" msgstr "toggle italic" msgid "toggle underline" msgstr "toggle underline" msgid "toggle strikethrough" msgstr "toggle strikethrough" msgid "toggle highlight" msgstr "toggle highlight" msgid "Arrows Up/Down" msgstr "Стрелки Up/Down" msgid "toggle alternative view" msgstr "превключи на алтернативен изглед" msgid "year info" msgstr "годишна информация" msgid "set current year" msgstr "насройване текуща година" msgid "close full-year calendar" msgstr "затвори годишният календар" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "добавяне на задача" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "редактиране на задача" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "премахване на задача" msgid "toggle hidden tasks" msgstr "превключи на скрити задачи" msgid "activate search field" msgstr "активиране полето за търсене" msgid "Left, Right" msgstr "Ляво,Дясно" msgid "change category filter" msgstr "промяна филтъра за категория" msgid "close task info panel" msgstr "затваряне на инфо панела за задачи" msgid "Insert" msgstr "Поставяне" msgid "add contact" msgstr "добавяне на контакт" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "Редактиране на контакт" msgid "remove contact" msgstr "премахване на контакт" msgid "change search mode" msgstr "промяна режим търсене" msgid "close contact details panel" msgstr "затваряне панела за детайли на контакта" msgid "Enter" msgstr "Въвеждане" msgid "open note" msgstr "отваряне на бележка" msgid "add note" msgstr "добавяне на бележка" msgid "remove note" msgstr "премахване на бележка" msgid "edit note name and category" msgstr "редактиране име и категория на бележка" msgid "close note editor" msgstr "затваряне редактора на бележки" msgid "save note" msgstr "запазване на бележка" msgid "find text" msgstr "намери текст" msgid "clear selection attributes" msgstr "изчистване избраните атрибути" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO бе проектиран със цел удобството на потребителя,разполага със " "функциябързи клавиши.Ето и пълният списък:" msgid "Note editor" msgstr "Редактор на бележки" msgid "Selector" msgstr "селектор" msgid "Editor" msgstr "Редактор" msgid "A handy personal organizer" msgstr "Удобен личен органайзер" msgid "compiled on" msgstr "събран по" msgid "Programming" msgstr "Програмиране" msgid "Graphics" msgstr "Графики" msgid "Contributors" msgstr "Сътрудници" msgid "Translators" msgstr "Преводачи" msgid "Mailing lists" msgstr "Пощенски списъци" msgid "Bug tracker" msgstr "Проследяване на бъгове" msgid "Feature requests" msgstr "Бъдещи запитвания" msgid "Available modules" msgstr "Налични модули" msgid "Compiled-in features" msgstr "Compiled-in features" msgid "iCalendar support" msgstr "iCalendar подръжка" msgid "Encrypted notes support" msgstr "Подръжка на шифровани бележки" msgid "Backup support" msgstr "Бакъп подръжка" msgid "Printing support" msgstr "Подръжка печат" msgid "Spell checker support" msgstr "Правописна подръжка" msgid "version" msgstr "Версия" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Бързи клавиши" msgid "License" msgstr "Лиценз" #~ msgid "handy personal organizer" #~ msgstr "удобен личен органайзър" osmo-0.4.2/po/ja.po0000664000175000017500000011250013204320601010753 00000000000000# Japanese translation of Osmo. # This file is distributed under the same license as the Osmo package. # Norihiro YONEDA , 2008-2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-03-25 17:44+0900\n" "Last-Translator: YoN \n" "Language-Team: Japanese Puppy Linux Team\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=0;\n" msgid "Colors" msgstr "色" msgid "Color of contact tags" msgstr "コンタクトタグの色" msgid "Color of links" msgstr "リンクの色" msgid "Font size" msgstr "フォントサイズ" msgid "Name font size" msgstr "名前のフォントサイズ" msgid "Item font size" msgstr "アイテムのフォントサイズ" msgid "Photo size" msgstr "写真のサイズ" msgid "Small" msgstr "小" msgid "Medium" msgstr "中" msgid "Large" msgstr "大" msgid "Hide group column" msgstr "グループコラムを隠す" msgid "Maps provider" msgstr "" msgid "Age" msgstr "年齢" msgid "Birthday date" msgstr "誕生日" msgid "Zodiac sign" msgstr "十二宮" msgid "Contacts" msgstr "コンタクト" msgid "Appearance" msgstr "外観" msgid "Miscellaneous" msgstr "その他" msgid "Groups" msgstr "グループ" msgid "Visible columns in birthday browser" msgstr "誕生日ブラウザでコラムを表示" msgid "Algorithm" msgstr "アルゴリズム" msgid "Hashing" msgstr "ハッシュ法" msgid "Compression" msgstr "圧縮" msgid "Ratio" msgstr "比率" msgid "Fast" msgstr "早い" msgid "Good" msgstr "良" msgid "Best" msgstr "最高" msgid "Type" msgstr "タイプ" msgid "Category" msgstr "カテゴリ" msgid "Last changes" msgstr "最近の変更" msgid "Created" msgstr "作成" msgid "Remember the last selected category" msgstr "最後の選択カテゴリを記憶" msgid "Use system format for date and time" msgstr "日付と時間にシステム形式を使う" msgid "Notes" msgstr "メモ" msgid "Encryption" msgstr "暗号化" msgid "Visible columns" msgstr "目に見えるコラム" msgid "Categories" msgstr "カテゴリ" msgid "Notes options" msgstr "メモオプション" msgid "Jump to date" msgstr "その日にジャンプ" msgid "Day" msgstr "日" msgid "Month" msgstr "月" msgid "Year" msgstr "年" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "フォントを選択..." msgid "None" msgstr "なし" msgid "All items" msgstr "全てのアイテム" msgid "Question" msgstr "質問" msgid "Information" msgstr "情報" msgid "Error" msgstr "エラー" msgid "Warning" msgstr "警告" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "選択されたファイルは存在します!上書きしますか?" msgid "Selected contact will be removed." msgstr "選択したコンタクトは削除されます。" msgid "Are you sure?" msgstr "よろしいですか?" msgid "No date" msgstr "日付なし" msgid "Select photo" msgstr "写真を選択" msgid "Address" msgstr "住所" msgid "Postcode" msgstr "郵便番号" msgid "City" msgstr "市町村" msgid "State" msgstr "都道府県" msgid "Country" msgstr "国" msgid "Edit contact" msgstr "コンタクトを編集" msgid "Add contact" msgstr "コンタクトを追加" msgid "Personal" msgstr "パーソナル" msgid "Group" msgstr "グループ" msgid "Home" msgstr "自宅" msgid "Work" msgstr "勤務先" msgid "Phones" msgstr "電話番号" msgid "Internet" msgstr "インターネット" msgid "Additional info" msgstr "追加情報" msgid "_OK" msgstr "" msgid "no entries" msgstr "エントリーはありません" msgid "entry" msgid_plural "entries" msgstr[0] "" msgid "Calendar notes" msgstr "カレンダーメモ" msgid "Search" msgstr "検索" msgid "Filter" msgstr "フィルタ" msgid "Current month" msgstr "現在の月" msgid "Selected month" msgstr "選択された月" msgid "Current year" msgstr "現在の年" msgid "Selected year" msgstr "選択された年" msgid "Selected month and year" msgstr "選択された月と年" msgid "All notes" msgstr "全てのメモ" msgid "Case sensitive" msgstr "大文字小文字を区別する" msgid "Strikethrough past day notes" msgstr "以前の日のメモに取消線" msgid "Date" msgstr "日付" msgid "Note" msgstr "メモ" msgid "_Close" msgstr "" msgid "Rat" msgstr "子" msgid "Ox" msgstr "丑" msgid "Tiger" msgstr "寅" msgid "Hare" msgstr "卯" msgid "Dragon" msgstr "辰" msgid "Snake" msgstr "巳" msgid "Horse" msgstr "午" msgid "Sheep" msgstr "未" msgid "Monkey" msgstr "申" msgid "Fowl" msgstr "酉" msgid "Dog" msgstr "戌" msgid "Pig" msgstr "亥" msgid "Unknown" msgstr "不明" msgid "Aquarius" msgstr "水瓶座" msgid "Pisces" msgstr "魚座" msgid "Aries" msgstr "牡羊座" msgid "Taurus" msgstr "牡牛座" msgid "Gemini" msgstr "双子座" msgid "Cancer" msgstr "カニ座" msgid "Leo" msgstr "獅子座" msgid "Virgo" msgstr "乙女座" msgid "Libra" msgstr "てんびん座" msgid "Scorpio" msgstr "蠍座" msgid "Sagittarius" msgstr "射手座" msgid "Capricorn" msgstr "山羊座" msgid "Osmo has to be restarted to take effect." msgstr "有効にするには Osmo を再起動しなければなりません..." msgid "Layout" msgstr "レイアウト" msgid "Vertical" msgstr "縦" msgid "Horizontal" msgstr "横" msgid "Tabs position" msgstr "タブ位置" msgid "Left" msgstr "左" msgid "Right" msgstr "右" msgid "Top" msgstr "上" msgid "Bottom" msgstr "下" msgid "Disable underline in links" msgstr "リンクの下線を無効" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "少なくとも1つのモジュールが見えなくてはなりません。" msgid "Calendar" msgstr "カレンダー" msgid "Tasks" msgstr "仕事" msgid "Override locale settings" msgstr "ロケール設定を上書き" msgid "Date format" msgstr "日付形式" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "時間形式" msgid "hours" msgstr "時" msgid "Spell checker language" msgstr "スペルチェッカー言語" msgid "Enable tooltips" msgstr "ツールチップを有効" msgid "Remember last selected page" msgstr "最後の選択ページを記憶" msgid "Save data after every modification" msgstr "修正ごとにデータを保存" msgid "Web browser" msgstr "ウェブブラウザ" msgid "E-mail client" msgstr "Eメールクライアント" msgid "Sound player" msgstr "サウンドプレーヤ" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "「%s」パターンはウェブアドレスに置き換えられます" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "「%s」パターンはEメールアドレスに置き換えられます" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "「%s」パターンは音声ファイル名に置き換えられます" msgid "Enable system tray" msgstr "システムトレイを有効" msgid "Start minimised" msgstr "アイコン化で開始" msgid "Ignore day note events" msgstr "一日のメモイベントを無視する" msgid "General" msgstr "一般" msgid "Hide" msgstr "隠す" msgid "Helpers" msgstr "ヘルパ" msgid "System tray" msgstr "システムトレイ" msgid "Preferences" msgstr "設定" msgid "Syntax" msgstr "構文" msgid "abbreviated weekday name" msgstr "省略した曜日名" msgid "full weekday name" msgstr "完全な曜日名" msgid "abbreviated month name" msgstr "省略した月の名前" msgid "full month name" msgstr "完全な月の名前" msgid "day of the month" msgstr "日" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "ゼロを前に置かない日" msgid "month" msgid_plural "months" msgstr[0] "" msgid "year without century" msgstr "世紀のない年" msgid "year with century" msgstr "世紀のある年" msgid "Date header format" msgstr "日付ヘッダ形式" msgid "Set default format" msgstr "デフォルトの形式をセット" msgid "Date format syntax" msgstr "日付形式構文" msgid "Day note marker" msgstr "日のメモマーカ" msgid "Event marker" msgstr "イベントマーカ" msgid "Circle" msgstr "円" msgid "Ellipse" msgstr "楕円" msgid "Wave" msgstr "波" msgid "Current day marker" msgstr "現在日マーカ" msgid "Arrow" msgstr "矢印" msgid "Free-hand circle" msgstr "フリーハンド円" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "週末日の色" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "カーソルの色" msgid "Event marker color" msgstr "イベントマーカの色" msgid "Current day marker color" msgstr "現在日マーカの色" msgid "Birthday marker color" msgstr "誕生日マーカの色" msgid "Date font" msgstr "日付のフォント" msgid "Calendar font" msgstr "カレンダのフォント" msgid "Note font" msgstr "メモのフォント" msgid "Enable block cursor" msgstr "ブロックカーソルを有効" msgid "Cursor thickness" msgstr "カーソルの幅" msgid "Thin" msgstr "細く" msgid "Thick" msgstr "太く" msgid "Edit category" msgstr "カテゴリーを編集" msgid "Color" msgstr "色" msgid "Name" msgstr "名前" msgid "Select ICS file" msgstr "ICS ファイルを選択" msgid "All Files" msgstr "全ファイル" msgid "Calendar files (*.ics)" msgstr "Calendar ファイル (*.ics)" msgid "Modify ICAL parameters" msgstr "ICAL パラメータを修正" msgid "Filename" msgstr "ファイル名" msgid "Options" msgstr "オプション" msgid "Disabled" msgstr "無効" msgid "Valid" msgstr "有効" msgid "Description" msgstr "説明" msgid "Full date" msgstr "完全な日付" msgid "Mark" msgstr "マーク" msgid "Week start on Monday" msgstr "週を月曜日から始める" msgid "Show day names" msgstr "誕生日名を表示" msgid "No month change" msgstr "月は変更しない" msgid "Show week numbers" msgstr "週数を表示" msgid "Simple view in full-year calendar" msgstr "年間カレンダに簡単表示" msgid "Enable auxilary calendars" msgstr "補助カレンダを有効" msgid "Ascending sorting in day notes browser" msgstr "一日のメモブラウザで昇順ソート" msgid "Enable spell checker in day notes" msgstr "一日のメモのスペルチェッカーを有効にする" msgid "Current time" msgstr "現在時刻" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "日数" msgid "Today distance" msgstr "今日からの日数" msgid "Marked days" msgstr "マークした日" msgid "Week number" msgstr "週数" msgid "Weekend days" msgstr "週末日" msgid "Day category" msgstr "日カテゴリー" msgid "Moon phase" msgstr "月齢" msgid "Day notes" msgstr "一日のメモ" msgid "Day categories" msgstr "日のカテゴリ" msgid "iCalendar files" msgstr "iCalendar ファイル" msgid "Show in day info panel" msgstr "一日の情報パネルに表示" msgid "Tasks list" msgstr "仕事リスト" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "No." msgid "Summary" msgstr "概要" msgid "Due date" msgstr "期日" msgid "Priority" msgstr "重要度" msgid "Error printing" msgstr "印刷エラー" msgid "No birthdays defined" msgstr "誕生日が定義されていません" msgid "Birthdays list" msgstr "誕生日リスト" msgid "Days to birthday" msgstr "誕生日までの日数" msgid "today" msgstr "今日" msgid "Select CSV file" msgstr "CSVファイルを選択" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSVファイル (カンマ区切りの値) (*.csv)" msgid "Please select file first." msgstr "最初にファイルを選択して下さい。" msgid "Import contacts" msgstr "コンタクトをインポート" msgid "Import type" msgstr "インポート形式" msgid "File" msgstr "ファイル" msgid "Input filename" msgstr "入力ファイル名" msgid "Import" msgstr "インポート" msgid "Nothing to import." msgstr "インポートするものはありません。" msgid "contact added" msgid_plural "contacts added" msgstr[0] "" msgid "of" msgstr "の" msgid "Record" msgstr "記録" msgid "Number fields per record" msgstr "記録毎の番号フィールド" msgid "Use first record as header" msgstr "最初の記録をヘッダとして使う" msgid "Field type" msgstr "フィールド形式" msgid "Value" msgstr "値" msgid "No records found in selected file." msgstr "選択ファイルに記録は見つかりません。" msgid "Cannot read file." msgstr "ファイルを読めません。" msgid "Cannot open file." msgstr "ファイルを開けません。" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "カレンダーを表示" msgid "Show tasks" msgstr "仕事を表示" msgid "Show contacts" msgstr "コンタクトを表示" msgid "Show notes" msgstr "メモを表示" msgid "Show options" msgstr "オプションを表示" msgid "Quit" msgstr "終了" msgid "Show small calendar window" msgstr "小さいカレンダーウィンドウを表示" msgid "Check for events since last run" msgstr "最後の実行からイベントをチェック" msgid "Number of days to check forward for events (default: 0)" msgstr "先のイベントをチェックする日数(初期値: 0)" msgid "Set absolute path for settings and data files" msgstr "設定とデータファイルに絶対パスをセット" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "エラー:設定ファイルを作成できません" msgid "Another copy of OSMO is already running." msgstr "もう1つの OSMO のコピーが既に起動しています。" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "2つ以上の OSMO のコピーを同時に使うとデータ損失の原因となります。" msgid "Do you really want to continue?" msgstr "本当に続けますか?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "低" msgid "High" msgstr "高" msgid "Done!" msgstr "完了!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "" msgid "Cannot create file." msgstr "ファイルを作成できません。" msgid "Select output file" msgstr "出力ファイルを選択" msgid "Export contacts" msgstr "コンタクトをエクスポート" msgid "Output format" msgstr "出力形式" msgid "Add header" msgstr "ヘッダを追加" msgid "Fields to export" msgstr "エクスポートするフィールド" msgid "All" msgstr "全て" msgid "Invert" msgstr "反転" msgid "Select fields" msgstr "フィールドを選択" msgid "Output filename" msgstr "出力ファイル名" msgid "Export" msgstr "エクスポート" msgid "Color of items that are due today" msgstr "今日する予定のアイテムの色" msgid "Color of items that are due in the next 7 days" msgstr "今後7日間にする予定のアイテムの色" msgid "Color of items that are past due" msgstr "過去の予定のアイテムの色" msgid "Task info font" msgstr "仕事情報のフォント" msgid "Show in bold tasks with high priority" msgstr "重要度の高い仕事を太字で表示" msgid "Hide completed tasks" msgstr "完了した仕事を隠す" msgid "Delete completed tasks without confirmation" msgstr "完了した仕事を確認しないで削除" msgid "Add new task when double clicked on tasks list" msgstr "仕事リストでダブルクリックして新しい仕事を追加" msgid "Postpone time" msgstr "延期時間" msgid "minutes" msgstr "分" msgid "0 for disable" msgstr "0 はできません" msgid "Repeat sound alarm" msgstr "音声アラームを繰り返す" msgid "times" msgstr "時間" msgid "Global notification command" msgstr "全体的な通知コマンド" msgid "Tasks options" msgstr "仕事オプション" msgid "Reminder options" msgstr "お知らせオプション" msgid "Insert timeline" msgstr "時刻ラインを挿入" msgid "Timeline" msgstr "タイムライン" msgid "From (hour)" msgstr "(時) から" msgid "Step (minutes)" msgstr "(分) 進めて" msgid "To (hour)" msgstr "(時) まで" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "反復が有効な時は少なくとも1日を選択して下さい。" msgid "Set time" msgstr "時間セット" msgid "Hour" msgstr "時" msgid "Minute" msgstr "分" msgid "Today" msgstr "今日" msgid "Tomorrow" msgstr "明日" msgid "Selected task will be removed." msgstr "選択した仕事は削除されます。" msgid "Select date and time" msgstr "日付と時刻を選択" msgid "Enable sound notification" msgstr "音声通知を有効" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "アラーム警告" msgid "Days" msgstr "日" msgid "Hours" msgstr "時" msgid "Minutes" msgstr "分" msgid "Alarm command" msgstr "アラームコマンド" msgid "Date period" msgstr "最終日" msgid "Months" msgstr "月" msgid "Repeat" msgstr "繰り返す" msgid "Repeat in the following days" msgstr "次の日で繰り返す" msgid "Time period" msgstr "期間" msgid "Start" msgstr "開始" msgid "End" msgstr "終わり" msgid "Interval" msgstr "間隔" msgid "Ignore alarm when task expired offline" msgstr "仕事がオフラインで終了したらアラームを無視する" msgid "Recurrent task" msgstr "反復する仕事" msgid "Enable" msgstr "有効" msgid "Edit task" msgstr "仕事を編集" msgid "Add task" msgstr "仕事を追加" msgid "Basic" msgstr "基本" msgid "Advanced" msgstr "詳細設定" msgid "New Moon" msgstr "新月" msgid "Waxing Crescent Moon" msgstr "満ちていく三日月" msgid "Quarter Moon" msgstr "上弦の月" msgid "Waxing Gibbous Moon" msgstr "満ちていく凸月" msgid "Full Moon" msgstr "満月" msgid "Waning Gibbous Moon" msgstr "欠けていく凸月" msgid "Last Quarter Moon" msgstr "下弦の月" msgid "Waning Crescent Moon" msgstr "欠けていく三日月" msgid "Cannot create backup!" msgstr "バックアップを作成できません!" msgid "Save backup" msgstr "バックアップを保存" msgid "Password protection" msgstr "パスワード保護" msgid "Enter password" msgstr "パスワードを入力" msgid "Re-enter password" msgstr "パスワードを再入力" msgid "Please enter the password" msgstr "パスワードを入力して下さい" msgid "Passwords do not match!" msgstr "パスワードが一致しません!" msgid "Backup file saved successfully!" msgstr "バックアップファイルの保存に成功しました!" msgid "Open backup file" msgstr "バックアップファイルを開く" msgid "Osmo backup files (*.bck)" msgstr "Osmo バックアップファイル (*.bck)" msgid "This is not Osmo backup file" msgstr "これは Osmo バックアップファイルではありません" msgid "Incorrect password!" msgstr "間違ったパスワードです!" msgid "All your data will be replaced with backup file content." msgstr "全てのデータはバックアップファイルの内容に置換されます。" msgid "Osmo has to be restarted now..." msgstr "今すぐ Osmo を再起動しなければなりません..." msgid "Please select address" msgstr "住所を選択して下さい。" msgid "First name" msgstr "名 (ファーストネーム)" msgid "Last name" msgstr "姓 (ラストネーム)" msgid "Second name" msgstr "姓 (セカンドネーム)" msgid "Nickname" msgstr "ニックネーム" msgid "Tags" msgstr "タグ" msgid "Name day date" msgstr "聖名祝日の日付" msgid "Home address" msgstr "住所 (個人)" msgid "Home postcode" msgstr "郵便番号 (個人)" msgid "Home city" msgstr "市町村 (個人)" msgid "Home state" msgstr "都道府県 (個人)" msgid "Home country" msgstr "国 (個人)" msgid "Organization" msgstr "組織" msgid "Department" msgstr "部署" msgid "Work address" msgstr "住所 (勤務先)" msgid "Work postcode" msgstr "郵便番号 (勤務先)" msgid "Work city" msgstr "市町村 (勤務先)" msgid "Work state" msgstr "都道府県 (勤務先)" msgid "Work country" msgstr "国 (勤務先)" msgid "Fax" msgstr "FAX" msgid "Home phone" msgstr "電話番号 (個人)" msgid "Home phone 2" msgstr "電話番号 2 (個人)" msgid "Home phone 3" msgstr "電話番号 3 (個人)" msgid "Home phone 4" msgstr "電話番号 4 (個人)" msgid "Work phone" msgstr "電話番号 (勤務先)" msgid "Work phone 2" msgstr "電話番号 2 (勤務先)" msgid "Work phone 3" msgstr "電話番号 3 (勤務先)" msgid "Work phone 4" msgstr "電話番号 4 (勤務先)" msgid "Cell phone" msgstr "携帯電話" msgid "Cell phone 2" msgstr "携帯電話 2" msgid "Cell phone 3" msgstr "携帯電話 3" msgid "Cell phone 4" msgstr "携帯電話 4" msgid "E-Mail" msgstr "Eメールアドレス" msgid "E-Mail 2" msgstr "Eメールアドレス 2" msgid "E-Mail 3" msgstr "Eメールアドレス 3" msgid "E-Mail 4" msgstr "Eメールアドレス 4" msgid "WWW" msgstr "ホームページ" msgid "WWW 2" msgstr "ホームページ 2" msgid "WWW 3" msgstr "ホームページ 3" msgid "WWW 4" msgstr "ホームページ 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "ブログ" msgid "Photo" msgstr "写真" msgid "New contact" msgstr "新しいコンタクト" msgid "Remove contact" msgstr "コンタクトを削除" msgid "Show birthdays" msgstr "誕生日を表示" msgid "Show contact location on the map" msgstr "地図でコンタクト場所を表示" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "バージョン情報" msgid "Clear" msgstr "クリア" msgid "First Name" msgstr "名 (ファーストネーム)" msgid "Last Name" msgstr "姓 (ラストネーム)" msgid "All fields" msgstr "全フィールド" msgid "Contact details" msgstr "コンタクトの詳細" msgid "Close contact panel" msgstr "コンタクトパネルを閉じる" msgid "The note has changed." msgstr "メモは変更されました。" msgid "Do you want to save it?" msgstr "保存しますか?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "単語" msgid "Lines" msgstr "行" msgid "Characters" msgstr "文字" msgid "White characters" msgstr "空白文字" msgid "Bytes" msgstr "バイト" msgid "Document" msgstr "ドキュメント" msgid "Selection" msgstr "選択" msgid "Modified" msgstr "修正" msgid "New note" msgstr "新規メモ" msgid "Edit note" msgstr "メモを編集" msgid "Delete note" msgstr "メモを削除" msgid "Save note" msgstr "メモを保存" msgid "Find" msgstr "見つける" msgid "Toggle spell checker" msgstr "スペルチェッカーを切替え" msgid "Bold" msgstr "太字" msgid "Italic" msgstr "斜体" msgid "Underline" msgstr "下線" msgid "Strikethrough" msgstr "取消線" msgid "Highlight" msgstr "ハイライト" msgid "Clear attributes" msgstr "属性をクリア" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "現在の日付と時刻を挿入" msgid "Insert separator" msgstr "セパレータを挿入" msgid "Statistics" msgstr "統計" msgid "Close editor" msgstr "エディタを閉じる" msgid "Note name" msgstr "メモ名" msgid "Read-only" msgstr "読み込み専用" msgid "Line" msgstr "行" msgid "Column" msgstr "コラム" msgid "case sensitive" msgstr "大文字小文字を区別" msgid "Close find entry" msgstr "見つけるエントリを閉じる" msgid "Edit entry" msgstr "エントリを編集" msgid "Remember cursor position" msgstr "カーソル位置を記憶" msgid "Selected note will be removed." msgstr "選択したメモは削除されます。" msgid "No further data recovery will be possible." msgstr "これ以上、データのリカバリーはできません。" msgid "Add note" msgstr "メモを追加" msgid "Plain" msgstr "平文" msgid "Encrypted" msgstr "暗号化" msgid "Note type" msgstr "メモ形式" msgid "Cannot open the note." msgstr "メモを開けません。" msgid "encryption support is disabled" msgstr "暗号化サポートは無効です" msgid "Authorization" msgstr "承認" msgid "year" msgid_plural "years" msgstr[0] "" msgid "day" msgid_plural "days" msgstr[0] "" msgid "hour" msgid_plural "hours" msgstr[0] "" msgid "minute" msgid_plural "minutes" msgstr[0] "" msgid "second" msgid_plural "seconds" msgstr[0] "" msgid "or" msgstr "または" msgid "rounded down" msgstr "四捨五入" msgid "week" msgid_plural "weeks" msgstr[0] "" msgid "working day" msgid_plural "working days" msgstr[0] "" msgid "time is ignored" msgstr "時間は無視されます" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgid "This calculator only supports dates after year 1." msgstr "この電卓は1年目以降の日付だけをサポートします。" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgid "Date calculator" msgstr "日付電卓" msgid "Current date" msgstr "現在の日付" msgid "Set current date" msgstr "現在の日付をセット" msgid "Second" msgstr "秒" msgid "Set current time" msgstr "現在の時刻をセット" msgid "Reset time" msgstr "時刻をリセット" msgid "First date and time" msgstr "最初の日付と時刻" msgid "Second date and time" msgstr "2番目の日付と時刻" msgid "Alternative time units" msgstr "別の時間単位" msgid "Result" msgstr "結果" msgid "Duration between two dates" msgstr "2つの日付の期間" msgid "Operation" msgstr "演算" msgid "add" msgstr "足す" msgid "subtract" msgstr "引く" msgid "Date and time to add or subtract from" msgstr "日付と時刻を足す、あるいは引く" msgid "Years" msgstr "年" msgid "Weeks" msgstr "週" msgid "Seconds" msgstr "秒" msgid "Ignore weekend days" msgstr "週末を無視" msgid "Reset fields" msgstr "フィールドをリセット" msgid "Time to add or subtract" msgstr "足す、あるいは引く時間" msgid "Add to or subtract from a date" msgstr "日付から足す、あるいは引く" msgid "Cannot perform selected operation." msgstr "選択した操作は実行できません。" msgid "Task has been modified or removed." msgstr "仕事は、変更あるいは削除されました。" msgid "Remind me later" msgstr "後で通知する" msgid "Done" msgstr "終了" msgid "Show task" msgstr "仕事を表示" msgid "Alarm warning!" msgstr "アラーム警告!" msgid "postponed" msgstr "延期" msgid "Day note" msgstr "一日のメモ" msgid "Events" msgstr "イベント" msgid "Event" msgstr "イベント" msgid "Task" msgstr "仕事" msgid "Birthday" msgstr "誕生日" msgid "Show Osmo" msgstr "Osmo を表示" msgid "event" msgid_plural "events" msgstr[0] "" msgid "No valid calendars defined" msgstr "有効なカレンダーが定義されていません" msgid "iCalendar events" msgstr "iCalendar イベント" msgid "Time" msgstr "時間" msgid "The list will be cleared and all entries will be lost." msgstr "リストはクリアされ、全てのエントリは失われます。" msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgid "iCalendar export" msgstr "iCalendar のエクスポート" msgid "Day Selector" msgstr "日付セレクタ" msgid "Use date period" msgstr "日付ピリオドを使う" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "定義データ付きタスクが見つかりませんでした。" msgid "Save tasks" msgstr "タスクを保存" msgid "tasks exported" msgstr "エクスポートしたタスク" msgid "was born" msgstr "誕生" msgid "year old" msgid_plural "years old" msgstr[0] "" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "" msgid "the last day of the year" msgstr "大晦日" msgid "Day tasks" msgstr "一日の仕事" msgid "Selected day note will be removed." msgstr "選択した一日のメモは削除されます。" msgid "Continue?" msgstr "続けますか?" msgid "Previous year" msgstr "前年" msgid "Previous month" msgstr "前月" msgid "Previous day" msgstr "前日" msgid "Next day" msgstr "明日" msgid "Next month" msgstr "来月" msgid "Next year" msgstr "来年" msgid "Full-year calendar" msgstr "年間カレンダ" msgid "Print calendar" msgstr "カレンダーを印刷" msgid "Toggle day note panel" msgstr "一日のメモパネルを切替え" msgid "Select day color" msgstr "日付の色を選択" msgid "Browse notes" msgstr "メモをブラウズ" msgid "Browse iCal events" msgstr "iCal イベントをブラウズ" msgid "Export to iCal file" msgstr "iCal ファイルにエクスポート" msgid "Previous and next month" msgstr "前月と翌月" msgid "Close note panel" msgstr "メモパネルを閉じる" msgid "Clear text" msgstr "テキストをクリア" msgid "Info" msgstr "情報" msgid "Select color" msgstr "色を選択" msgid "Name day" msgstr "聖名祝日" msgid "Printing properties" msgstr "印刷プロパティ" msgid "Month name" msgstr "月の名前" msgid "Day name" msgstr "日の名前" msgid "Fonts" msgstr "フォント" msgid "Birthdays" msgstr "誕生日" msgid "Namedays" msgstr "聖名祝日" msgid "Visible events" msgstr "表示イベント" msgid "Padding" msgstr "間隔" msgid "Event maximum length" msgstr "イベント最大長" msgid "Page orientation:" msgstr "印刷の向き:" msgid "Portrait" msgstr "縦長" msgid "Landscape" msgstr "横長" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "うるう年" msgid "Yes" msgstr "はい" msgid "No" msgstr "いいえ" msgid "Chinese year animal" msgstr "干支" msgid "Number of days" msgstr "日数" msgid "Number of weeks" msgstr "週数" msgid "Number of weekend days" msgstr "週末日数" msgid "Year info" msgstr "年情報" msgid "Alternative view" msgstr "表示方式" msgid "Started" msgstr "開始" msgid "Finished" msgstr "終了" msgid "New task" msgstr "新しい仕事" msgid "Remove task" msgstr "仕事を削除" msgid "Change due date to previous date" msgstr "期日を前の日付に変更" msgid "Change due date to next date" msgstr "期日を次の日付に変更" msgid "Export tasks" msgstr "タスクをエクスポート" msgid "Print visible tasks list" msgstr "見える仕事リストを印刷" msgid "Task details" msgstr "仕事の詳細" msgid "Close description panel" msgstr "説明パネルを閉じる" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "前のタブに切替え" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "次のタブに切替え" msgid "switch to selected page" msgstr "選択ページに切替え" msgid "show options window" msgstr "オプションウィンドウを表示" msgid "show about window" msgstr "バージョン情報ウィンドウを表示" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "オプションタブとバージョン情報タブでページを切替え" msgid "exit" msgstr "終了" msgid "Space" msgstr "スペース" msgid "select current date" msgstr "現在の日付を選択" msgid "Ctrl+Space" msgstr "Ctrl+スペース" msgid "toggle personal data visibility" msgstr "可視個人データを切替え" msgid "Arrows" msgstr "矢印" msgid "change day" msgstr "日を変更" msgid "Ctrl+Up/Down" msgstr "Ctrl+上/下キー" msgid "scroll the contents in the day info panel" msgstr "日毎情報パネルの内容をスクロール" msgid "change month" msgstr "月を変更" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "年を変更" msgid "toggle calendars for the previous and next month" msgstr "前月と翌月のカレンダを切替え" msgid "day notes browser" msgstr "一日のメモブラウザ" msgid "assign background color to day note" msgstr "一日のメモの背景色を指定" msgid "date calculator" msgstr "日付電卓" msgid "show full-year calendar" msgstr "年間カレンダを表示" msgid "jump to date" msgstr "日付にジャンプ" msgid "Delete" msgstr "削除" msgid "remove day note" msgstr "一日のメモを削除" msgid "Alt+Arrows" msgstr "Alt+矢印" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "エディタを閉じる" msgid "toggle bold" msgstr "太字を切替え" msgid "toggle italic" msgstr "斜体を切替え" msgid "toggle underline" msgstr "下線を切替え" msgid "toggle strikethrough" msgstr "取消線を切替え" msgid "toggle highlight" msgstr "ハイライトを切替え" msgid "Arrows Up/Down" msgstr "上/下矢印キー" msgid "toggle alternative view" msgstr "表示方式を切替え" msgid "year info" msgstr "年情報" msgid "set current year" msgstr "現在の年を設定" msgid "close full-year calendar" msgstr "年間カレンダを閉じる" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "仕事を追加" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "仕事を編集" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "仕事を削除" msgid "toggle hidden tasks" msgstr "隠された仕事を切替え" msgid "activate search field" msgstr "検索フィールドをアクティブにする" msgid "Left, Right" msgstr "左,右" msgid "change category filter" msgstr "カテゴリフィルタを変更" msgid "close task info panel" msgstr "仕事情報パネルを閉じる" msgid "Insert" msgstr "挿入" msgid "add contact" msgstr "コンタクトを追加" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "コンタクトを編集" msgid "remove contact" msgstr "コンタクトを削除" msgid "change search mode" msgstr "検索モードを変更" msgid "close contact details panel" msgstr "コンタクト詳細パネルを閉じる" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "メモを開く" msgid "add note" msgstr "メモを追加" msgid "remove note" msgstr "メモを削除" msgid "edit note name and category" msgstr "メモ名とカテゴリーを編集" msgid "close note editor" msgstr "メモエディタを閉じる" msgid "save note" msgstr "メモを保存" msgid "find text" msgstr "テキストを見つける" msgid "clear selection attributes" msgstr "選択属性をクリアする" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMOはユーザの利便性を考慮して作られ、たくさんのキーショートカットがありま" "す。以下は全リストです:" msgid "Note editor" msgstr "メモエディタ" msgid "Selector" msgstr "セレクタ" msgid "Editor" msgstr "エディタ" msgid "A handy personal organizer" msgstr "かんたん個人管理ツール" msgid "compiled on" msgstr "コンパイル" msgid "Programming" msgstr "プログラミング" msgid "Graphics" msgstr "グラフィック" msgid "Contributors" msgstr "貢献者" msgid "Translators" msgstr "翻訳者" msgid "Mailing lists" msgstr "メーリングリスト" msgid "Bug tracker" msgstr "バグトラッカ" msgid "Feature requests" msgstr "機能要求" msgid "Available modules" msgstr "利用可能なモジュール" msgid "Compiled-in features" msgstr "コンパイル済み機能" msgid "iCalendar support" msgstr "iCalendar サポート" msgid "Encrypted notes support" msgstr "暗号化メモサポート" msgid "Backup support" msgstr "バックアップサポート" msgid "Printing support" msgstr "印刷サポート" msgid "Spell checker support" msgstr "スペルチェッカーサポート" msgid "version" msgstr "バージョン" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "キーショートカット" msgid "License" msgstr "ライセンス" #~ msgid "handy personal organizer" #~ msgstr "かんたん個人管理ツール" osmo-0.4.2/po/en_GB.mo0000664000175000017500000010360013204320601011331 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^^ ``/` 5` A`.L`{``````` ` `` `a a a a )a83a la waa aaa(a ab bbb$b+b&:b$ab bbbbbbb bb cc'c,c1c8c Kc Xcdc*jccc cccccdd"+dNd `djd ydd ddddd d ee0eDeKePeVe geree eeeee/e"f!>f`fpfxff fff f fff f f f g g g*g=g Wg eg rg gg gg%gg g gg h h,h 0h=h LhYhbhkh {h h hhhh+h h h hi!i*iJibikioitiziiiiiii i!i i j j j 'j1j8j@jGjajuj!jjj jj jkk kk k/k3k 9kFkZkokvk}k kkkkk kkkkkkk ll &l 1l;lAlFl Wl cl mlwlllllllllllllmm m"m 'm 4m >m Km Vm cm pm }m mm mmmmm mm mmmmm&n)n@nTn[n knwnn nnnnnnnno oo o ,o :oDo JoTo fo so}o oo ooooooo oo oo ooop pp p7p>p DpOp Vpapfp op}p pp pppp p ppppp*q/q"?q!bqqqqq q q q qq qqqr7&r^rurorr ss s%s?s(_ss ssssssstt!t(t .t9t>tEtKtet:{tttt t tt u!u 0u>uMufuzuu u uuuuuu uuuuv#,vPv`vqv vvvv v vvv v v"w #w -w8w@wGwNw cwowwwww www ww w! x"-xPxpxxxx x xx-x$y5yFyYyby gyqy y y yyy&yz &z 1z >zKz fz pz{z!zHzzz {{{.{D{J{Z{b{ i{t{{{{{ { {{{ {"{|"| (| 3|A|3H|3||0|6|}.}4}19}k}}} } }} } }}}}~~ ~ $~0~ 5~?~G~W~#r~~~~~~#~~~~~ 3;@U i u        " / = I T_ dnt xʀ ΀ڀ$ 7 BO bn ˁ݁ "?OXj&{+ ΂ۂ  .;Z _iy ΃    ) ,6E U a m z)ф  $)Naxȅ΅ԅ 0)@T es† ˆֆ( 1 <FYk`"O hR5Zbx)'9[z-V6v \h^YT0m}g`yCJ .E mqFqf\ 3MQ^2(|kBJDQYXZ56l}k?8,]m)~nDU*3_Sit8Uv:o-ar7n;&;cx-]aB=!Ifk{0 &4V,p1(I qaj~J+*TjlOUMuude{iYc%VZR@W7QzS<c]j0K4$wL!s%4C5OE=|:<;ve_x7G!b9h9AF$^.2SP) =PDGw@,&\Pz(g pI+?">#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: Last-Translator: Steve Cook (Yorvyk) Language-Team: English UK en_GB Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 for disableA handy personal organiserAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorisationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colourBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryMobile phoneMobile phone 2Mobile phone 3Mobile phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColourColour of contact tagsColour of items that are due in the next 7 daysColour of items that are due todayColour of items that are past dueColour of linksColoursColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDownCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colourCurrent monthCurrent timeCurrent yearCursor colourCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colourEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsRabbitHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome countyHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenceLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeName-daysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganisationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDownPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizeBoarPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colourSelect date and timeSelect day colourSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeGoatShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold, tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneous use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedCountyStatisticsStep (minutes)Strike-throughStrike-through past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTime-lineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colourWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork countyYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background colour to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays until end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strike-throughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryosmo-0.4.2/po/te.po0000664000175000017500000010660113204320601010776 00000000000000# Telugu translation of Osmo # This file is distributed under the same license as the Osmo package. # ప్రవీణ్ ఇళ్ళ , 2011 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-06 09:53+0000\n" "Last-Translator: ప్రవీణ్ ఇళ్ళ \n" "Language-Team: Telugu\n" "Language: te\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" msgid "Colors" msgstr "రంగులు" msgid "Color of contact tags" msgstr "పరిచయం ట్యాగుల యొక్క రంగు" msgid "Color of links" msgstr "లింకుల యొక్క రంగు" msgid "Font size" msgstr "ఫాంటు పరిమాణం" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "ఫొటో పరిమాణం" msgid "Small" msgstr "చిన్నది" msgid "Medium" msgstr "మధ్యస్థం" msgid "Large" msgstr "పెద్దది" msgid "Hide group column" msgstr "" msgid "Maps provider" msgstr "" msgid "Age" msgstr "వయస్సు" msgid "Birthday date" msgstr "పుట్టినరోజు తేదీ" msgid "Zodiac sign" msgstr "" msgid "Contacts" msgstr "పరిచయాలు" msgid "Appearance" msgstr "కనిపించువిధం" msgid "Miscellaneous" msgstr "ఇతర" msgid "Groups" msgstr "గుంపులు" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "" msgid "Hashing" msgstr "" msgid "Compression" msgstr "" msgid "Ratio" msgstr "నిష్పత్తి" msgid "Fast" msgstr "వేగం" msgid "Good" msgstr "మంచిది" msgid "Best" msgstr "ఉత్తమం" msgid "Type" msgstr "రకం" msgid "Category" msgstr "" msgid "Last changes" msgstr "" msgid "Created" msgstr "" msgid "Remember the last selected category" msgstr "" msgid "Use system format for date and time" msgstr "" msgid "Notes" msgstr "" msgid "Encryption" msgstr "ఎన్క్రిప్షన్" msgid "Visible columns" msgstr "" msgid "Categories" msgstr "వర్గాలు" msgid "Notes options" msgstr "" msgid "Jump to date" msgstr "" msgid "Day" msgstr "రోజు" msgid "Month" msgstr "నెల" msgid "Year" msgstr "సంవత్సరం" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "" msgid "None" msgstr "ఏదీకాదు" msgid "All items" msgstr "" msgid "Question" msgstr "" msgid "Information" msgstr "సంవత్సరం" msgid "Error" msgstr "" msgid "Warning" msgstr "హెచ్చరిక" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "" msgid "Selected contact will be removed." msgstr "" msgid "Are you sure?" msgstr "" msgid "No date" msgstr "తేదీ లేదు" msgid "Select photo" msgstr "ఫోటోను ఎంచుకొను" msgid "Address" msgstr "" msgid "Postcode" msgstr "తపాలాకోడ్" msgid "City" msgstr "నగరం" msgid "State" msgstr "రాష్ట్రం" msgid "Country" msgstr "దేశం" msgid "Edit contact" msgstr "పరిచయాన్ని సవరించు" msgid "Add contact" msgstr "పరిచయాన్ని జతచేయి" msgid "Personal" msgstr "వ్యక్తిగతం" msgid "Group" msgstr "గుంపు" msgid "Home" msgstr "నివాసం" msgid "Work" msgstr "పని" msgid "Phones" msgstr "ఫోనులు" msgid "Internet" msgstr "అంతర్జాలం" msgid "Additional info" msgstr "అదనపు సమాచారం" msgid "_OK" msgstr "" msgid "no entries" msgstr "ఏ ప్రవేశాలు లేవు" msgid "entry" msgid_plural "entries" msgstr[0] "ప్రవేశం" msgstr[1] "ప్రవేశాలు" msgid "Calendar notes" msgstr "" msgid "Search" msgstr "శోధించు" msgid "Filter" msgstr "వడపోతకం" msgid "Current month" msgstr "ప్రస్తుత మాసం" msgid "Selected month" msgstr "" msgid "Current year" msgstr "ప్రస్తుత సంవత్సరం" msgid "Selected year" msgstr "ఎంపికచేసిన సంవత్సరం" msgid "Selected month and year" msgstr "" msgid "All notes" msgstr "" msgid "Case sensitive" msgstr "" msgid "Strikethrough past day notes" msgstr "" msgid "Date" msgstr "తేదీ" msgid "Note" msgstr "" msgid "_Close" msgstr "" msgid "Rat" msgstr "" msgid "Ox" msgstr "" msgid "Tiger" msgstr "" msgid "Hare" msgstr "" msgid "Dragon" msgstr "" msgid "Snake" msgstr "" msgid "Horse" msgstr "" msgid "Sheep" msgstr "" msgid "Monkey" msgstr "" msgid "Fowl" msgstr "" msgid "Dog" msgstr "" msgid "Pig" msgstr "" msgid "Unknown" msgstr "తెలియదు" msgid "Aquarius" msgstr "" msgid "Pisces" msgstr "" msgid "Aries" msgstr "" msgid "Taurus" msgstr "" msgid "Gemini" msgstr "" msgid "Cancer" msgstr "" msgid "Leo" msgstr "మృగసిర" msgid "Virgo" msgstr "" msgid "Libra" msgstr "" msgid "Scorpio" msgstr "వృశ్చికం" msgid "Sagittarius" msgstr "" msgid "Capricorn" msgstr "" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "నమూనా" msgid "Vertical" msgstr "నిలువు" msgid "Horizontal" msgstr "అడ్డం" msgid "Tabs position" msgstr "ట్యాబుల స్థానం" msgid "Left" msgstr "ఎడమ" msgid "Right" msgstr "కుడి" msgid "Top" msgstr "పైన" msgid "Bottom" msgstr "క్రింద" msgid "Disable underline in links" msgstr "" msgid "Show exit button in toolbar" msgstr "సాధనపట్టీలో నిష్క్రమణ బొత్తాం చూపించు" msgid "At least one module must be visible." msgstr "" msgid "Calendar" msgstr "క్యాలెండర్" msgid "Tasks" msgstr "కర్తవ్యాలు" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "తేదీ ఫార్మేటు" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "సమయం ఫార్మేటు" msgid "hours" msgstr "గంటలు" msgid "Spell checker language" msgstr "అక్షర తనిఖీ భాష" msgid "Enable tooltips" msgstr "సాధనచిట్కాలను చేతనపరుచు" msgid "Remember last selected page" msgstr "" msgid "Save data after every modification" msgstr "" msgid "Web browser" msgstr "జాల విహారకం" msgid "E-mail client" msgstr "ఈ-మెయిల్ క్లయింటు" msgid "Sound player" msgstr "శబ్ద ఆటకం" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "వ్యవస్థ పళ్ళాన్ని చేతనపరుచు" msgid "Start minimised" msgstr "" msgid "Ignore day note events" msgstr "" msgid "General" msgstr "సాధారణం" msgid "Hide" msgstr "" msgid "Helpers" msgstr "" msgid "System tray" msgstr "" msgid "Preferences" msgstr "ప్రాధాన్యతలు" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "నెల" msgstr[1] "నెలలు" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "" msgid "Event marker" msgstr "" msgid "Circle" msgstr "వృత్తం" msgid "Ellipse" msgstr "" msgid "Wave" msgstr "అల" msgid "Current day marker" msgstr "" msgid "Arrow" msgstr "బాణం" msgid "Free-hand circle" msgstr "" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "కర్సర్ రంగు" msgid "Event marker color" msgstr "" msgid "Current day marker color" msgstr "" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "తేదీ ఫాంటు" msgid "Calendar font" msgstr "క్యాలెండరు ఫాంటు" msgid "Note font" msgstr "" msgid "Enable block cursor" msgstr "" msgid "Cursor thickness" msgstr "" msgid "Thin" msgstr "" msgid "Thick" msgstr "" msgid "Edit category" msgstr "వర్గాన్ని సవరించు" msgid "Color" msgstr "రంగు" msgid "Name" msgstr "పేరు" msgid "Select ICS file" msgstr "" msgid "All Files" msgstr "అన్ని ఫైళ్ళు" msgid "Calendar files (*.ics)" msgstr "క్యాలెండర్ ఫైళ్ళు (*.ics)" msgid "Modify ICAL parameters" msgstr "" msgid "Filename" msgstr "ఫైలుపేరు" msgid "Options" msgstr "ఐచ్ఛికాలు" msgid "Disabled" msgstr "అచేతనపరచివుంది" msgid "Valid" msgstr "" msgid "Description" msgstr "వివరణ" msgid "Full date" msgstr "పూర్తి తేదీ" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "" msgid "Show day names" msgstr "రోజు పేర్లను చూపించు" msgid "No month change" msgstr "" msgid "Show week numbers" msgstr "" msgid "Simple view in full-year calendar" msgstr "" msgid "Enable auxilary calendars" msgstr "" msgid "Ascending sorting in day notes browser" msgstr "" msgid "Enable spell checker in day notes" msgstr "" msgid "Current time" msgstr "ప్రస్తుత సమయం" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "రోజు సంఖ్య" msgid "Today distance" msgstr "" msgid "Marked days" msgstr "" msgid "Week number" msgstr "వార సంఖ్య" msgid "Weekend days" msgstr "వారాంతపు రోజులు" msgid "Day category" msgstr "" msgid "Moon phase" msgstr "" msgid "Day notes" msgstr "" msgid "Day categories" msgstr "రోజు వర్గాలు" msgid "iCalendar files" msgstr "" msgid "Show in day info panel" msgstr "" msgid "Tasks list" msgstr "" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "" msgid "Summary" msgstr "సారాంశం" msgid "Due date" msgstr "" msgid "Priority" msgstr "ప్రాముఖ్యత" msgid "Error printing" msgstr "" msgid "No birthdays defined" msgstr "" msgid "Birthdays list" msgstr "పుట్టినరోజుల జాబితా" msgid "Days to birthday" msgstr "" msgid "today" msgstr "నేడు" msgid "Select CSV file" msgstr "" msgid "CSV (comma-separated values) files (*.csv)" msgstr "" msgid "Please select file first." msgstr "" msgid "Import contacts" msgstr "పరిచయాలను దిగుమతిచేయి" msgid "Import type" msgstr "" msgid "File" msgstr "" msgid "Input filename" msgstr "" msgid "Import" msgstr "" msgid "Nothing to import." msgstr "" msgid "contact added" msgid_plural "contacts added" msgstr[0] "" msgstr[1] "" msgid "of" msgstr "" msgid "Record" msgstr "" msgid "Number fields per record" msgstr "" msgid "Use first record as header" msgstr "" msgid "Field type" msgstr "" msgid "Value" msgstr "" msgid "No records found in selected file." msgstr "" msgid "Cannot read file." msgstr "" msgid "Cannot open file." msgstr "" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "క్యాలెండర్ చూపించు" msgid "Show tasks" msgstr "కర్తవ్యాలను చూపించు" msgid "Show contacts" msgstr "పరిచయాలను చూపించు" msgid "Show notes" msgstr "" msgid "Show options" msgstr "ఐచ్ఛికాలను చూపించు" msgid "Quit" msgstr "నిష్క్రమించు" msgid "Show small calendar window" msgstr "" msgid "Check for events since last run" msgstr "" msgid "Number of days to check forward for events (default: 0)" msgstr "" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "" msgid "Another copy of OSMO is already running." msgstr "" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" msgid "Do you really want to continue?" msgstr "మీరు నిజంగానే కొనసాగాలనుకుంటున్నారా?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "" msgid "High" msgstr "" msgid "Done!" msgstr "అయినది!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "పరిచయం ఎగుమతిచేయబడింది" msgstr[1] "పరిచయాలు ఎగుమతిచేయబడ్డాయి" msgid "Cannot create file." msgstr "ఫైలును సృష్టించుట వీలుకాదు." msgid "Select output file" msgstr "" msgid "Export contacts" msgstr "పరిచయాలను ఎగుమతిచేయి" msgid "Output format" msgstr "" msgid "Add header" msgstr "పీఠికను జతచేయి" msgid "Fields to export" msgstr "ఎగుమతిచేయాల్సిన క్షేత్రాలు" msgid "All" msgstr "అన్నీ" msgid "Invert" msgstr "" msgid "Select fields" msgstr "క్షేత్రాలను ఎంచుకొను" msgid "Output filename" msgstr "" msgid "Export" msgstr "ఎగుమతిచేయి" msgid "Color of items that are due today" msgstr "" msgid "Color of items that are due in the next 7 days" msgstr "" msgid "Color of items that are past due" msgstr "" msgid "Task info font" msgstr "" msgid "Show in bold tasks with high priority" msgstr "" msgid "Hide completed tasks" msgstr "" msgid "Delete completed tasks without confirmation" msgstr "" msgid "Add new task when double clicked on tasks list" msgstr "" msgid "Postpone time" msgstr "" msgid "minutes" msgstr "నిమిషాలు" msgid "0 for disable" msgstr "" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "" msgid "Tasks options" msgstr "కర్తవ్యాల ఐచ్ఛికాలు" msgid "Reminder options" msgstr "" msgid "Insert timeline" msgstr "" msgid "Timeline" msgstr "సమయరేఖ" msgid "From (hour)" msgstr "" msgid "Step (minutes)" msgstr "" msgid "To (hour)" msgstr "" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" msgid "Set time" msgstr "" msgid "Hour" msgstr "గంట" msgid "Minute" msgstr "నిమిషం" msgid "Today" msgstr "నేడు" msgid "Tomorrow" msgstr "రేపు" msgid "Selected task will be removed." msgstr "" msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "శబ్ద ప్రకటనలను చేతనపరుచు" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "" msgid "Days" msgstr "రోజులు" msgid "Hours" msgstr "గంటలు" msgid "Minutes" msgstr "నిమిషాలు" msgid "Alarm command" msgstr "" msgid "Date period" msgstr "" msgid "Months" msgstr "నెలలు" msgid "Repeat" msgstr "పునరావృతం" msgid "Repeat in the following days" msgstr "" msgid "Time period" msgstr "" msgid "Start" msgstr "ప్రారంభించు" msgid "End" msgstr "ముగించు" msgid "Interval" msgstr "విరామం" msgid "Ignore alarm when task expired offline" msgstr "" msgid "Recurrent task" msgstr "" msgid "Enable" msgstr "చేతనపరుచు" msgid "Edit task" msgstr "" msgid "Add task" msgstr "కర్తవ్యాన్ని జతచేయి" msgid "Basic" msgstr "" msgid "Advanced" msgstr "ఉన్నతం" msgid "New Moon" msgstr "" msgid "Waxing Crescent Moon" msgstr "" msgid "Quarter Moon" msgstr "" msgid "Waxing Gibbous Moon" msgstr "" msgid "Full Moon" msgstr "" msgid "Waning Gibbous Moon" msgstr "" msgid "Last Quarter Moon" msgstr "" msgid "Waning Crescent Moon" msgstr "" msgid "Cannot create backup!" msgstr "బ్యాక్అప్ సృష్టించుట వీలుకాదు!" msgid "Save backup" msgstr "బ్యాక్అప్ భద్రపరుచు" msgid "Password protection" msgstr "సంకేతపదం రక్షణ" msgid "Enter password" msgstr "సంకేతపదాన్ని ప్రవేశపెట్టండి" msgid "Re-enter password" msgstr "సంకేతపదాన్ని మరలా ప్రవేశపెట్టండి" msgid "Please enter the password" msgstr "దయచేసి సంకేతపదాన్ని ప్రవేశపెట్టండి" msgid "Passwords do not match!" msgstr "సంకేతపదాలు సరిపోలలేదు!" msgid "Backup file saved successfully!" msgstr "బ్యాక్అప్ ఫైల్ విజయవంతంగా భద్రపరుచబడింది!" msgid "Open backup file" msgstr "బ్యాక్అప్ ఫైలును తెరువు" msgid "Osmo backup files (*.bck)" msgstr "Osmo బ్యాక్అప్ ఫైళ్ళు (*.bck)" msgid "This is not Osmo backup file" msgstr "ఇది Osmo బ్యాక్అప్ ఫైల్ కాదు" msgid "Incorrect password!" msgstr "సంకేతపదం తప్పు!" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "మొదటి పేరు" msgid "Last name" msgstr "చివరి పేరు" msgid "Second name" msgstr "రెండవ పేరు" msgid "Nickname" msgstr "ముద్దుపేరు" msgid "Tags" msgstr "ట్యాగులు" msgid "Name day date" msgstr "" msgid "Home address" msgstr "ఇంటి చిరునామా" msgid "Home postcode" msgstr "" msgid "Home city" msgstr "నివాస పట్టణం" msgid "Home state" msgstr "" msgid "Home country" msgstr "" msgid "Organization" msgstr "" msgid "Department" msgstr "" msgid "Work address" msgstr "" msgid "Work postcode" msgstr "" msgid "Work city" msgstr "" msgid "Work state" msgstr "" msgid "Work country" msgstr "" msgid "Fax" msgstr "" msgid "Home phone" msgstr "" msgid "Home phone 2" msgstr "" msgid "Home phone 3" msgstr "" msgid "Home phone 4" msgstr "" msgid "Work phone" msgstr "" msgid "Work phone 2" msgstr "" msgid "Work phone 3" msgstr "" msgid "Work phone 4" msgstr "" msgid "Cell phone" msgstr "" msgid "Cell phone 2" msgstr "" msgid "Cell phone 3" msgstr "" msgid "Cell phone 4" msgstr "" msgid "E-Mail" msgstr "ఈ-మెయిల్" msgid "E-Mail 2" msgstr "" msgid "E-Mail 3" msgstr "" msgid "E-Mail 4" msgstr "" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "" msgid "WWW 3" msgstr "" msgid "WWW 4" msgstr "" msgid "IM Gadu-Gadu" msgstr "" msgid "IM Yahoo" msgstr "" msgid "IM MSN" msgstr "" msgid "IM ICQ" msgstr "" msgid "IM AOL" msgstr "" msgid "IM Jabber" msgstr "" msgid "IM Skype" msgstr "" msgid "IM Tlen" msgstr "" msgid "Blog" msgstr "బ్లాగు" msgid "Photo" msgstr "ఫోటో" msgid "New contact" msgstr "కొత్త పరిచయం" msgid "Remove contact" msgstr "పరిచయాన్ని తీసివేయి" msgid "Show birthdays" msgstr "పుట్టినరోజులను చూపించు" msgid "Show contact location on the map" msgstr "పరిచయం స్థానాన్ని పటముపై చూపించు" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "గురించి" msgid "Clear" msgstr "శుభ్రపరుచు" msgid "First Name" msgstr "మొదటి పేరు" msgid "Last Name" msgstr "చివరి పేరు" msgid "All fields" msgstr "అన్ని క్షేత్రాలు" msgid "Contact details" msgstr "పరిచయం వివరాలు" msgid "Close contact panel" msgstr "పరిచయం ప్యానలును మూసివేయి" msgid "The note has changed." msgstr "" msgid "Do you want to save it?" msgstr "" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "పదాలు" msgid "Lines" msgstr "వరుసలు" msgid "Characters" msgstr "అక్షరాలు" msgid "White characters" msgstr "తెల్లని అక్షరాలు" msgid "Bytes" msgstr "" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "" msgid "New note" msgstr "" msgid "Edit note" msgstr "" msgid "Delete note" msgstr "" msgid "Save note" msgstr "" msgid "Find" msgstr "" msgid "Toggle spell checker" msgstr "" msgid "Bold" msgstr "బొద్దు" msgid "Italic" msgstr "ఇటాలిక్" msgid "Underline" msgstr "క్రిందగీత" msgid "Strikethrough" msgstr "కొట్టివేత" msgid "Highlight" msgstr "" msgid "Clear attributes" msgstr "" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "" msgid "Insert separator" msgstr "" msgid "Statistics" msgstr "" msgid "Close editor" msgstr "" msgid "Note name" msgstr "" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "" msgid "Close find entry" msgstr "" msgid "Edit entry" msgstr "" msgid "Remember cursor position" msgstr "" msgid "Selected note will be removed." msgstr "" msgid "No further data recovery will be possible." msgstr "" msgid "Add note" msgstr "" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "" msgid "Note type" msgstr "" msgid "Cannot open the note." msgstr "" msgid "encryption support is disabled" msgstr "" msgid "Authorization" msgstr "" msgid "year" msgid_plural "years" msgstr[0] "సంవత్సరం" msgstr[1] "సంవత్సరాలు" msgid "day" msgid_plural "days" msgstr[0] "రోజు" msgstr[1] "రోజులు" msgid "hour" msgid_plural "hours" msgstr[0] "గంట" msgstr[1] "గంటలు" msgid "minute" msgid_plural "minutes" msgstr[0] "నిమిషం" msgstr[1] "నిమిషాలు" msgid "second" msgid_plural "seconds" msgstr[0] "సెకను" msgstr[1] "సెకన్లు" msgid "or" msgstr "లేదా" msgid "rounded down" msgstr "" msgid "week" msgid_plural "weeks" msgstr[0] "వారం" msgstr[1] "వారాలు" msgid "working day" msgid_plural "working days" msgstr[0] "పని దినం" msgstr[1] "పని దినాలు" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "వారాంతపు దినం" msgstr[1] "వారాంతపు దినాలు" msgid "This calculator only supports dates after year 1." msgstr "" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "" msgid "Current date" msgstr "ప్రస్తుత తేదీ" msgid "Set current date" msgstr "ప్రస్తుత తేదీని అమర్చు" msgid "Second" msgstr "సెకను" msgid "Set current time" msgstr "ప్రస్తుత సమయాన్ని అమర్చు" msgid "Reset time" msgstr "" msgid "First date and time" msgstr "మొదటి తేదీ మరియు సమయం" msgid "Second date and time" msgstr "" msgid "Alternative time units" msgstr "" msgid "Result" msgstr "ఫలితం" msgid "Duration between two dates" msgstr "" msgid "Operation" msgstr "" msgid "add" msgstr "కలుపు" msgid "subtract" msgstr "తీసివేయి" msgid "Date and time to add or subtract from" msgstr "" msgid "Years" msgstr "సంవత్సరాలు" msgid "Weeks" msgstr "వారాలు" msgid "Seconds" msgstr "సెకన్లు" msgid "Ignore weekend days" msgstr "వారాంతపు దినాలను వదిలివేయి" msgid "Reset fields" msgstr "క్షేత్రాలను మరలఅమర్చు" msgid "Time to add or subtract" msgstr "" msgid "Add to or subtract from a date" msgstr "" msgid "Cannot perform selected operation." msgstr "" msgid "Task has been modified or removed." msgstr "" msgid "Remind me later" msgstr "" msgid "Done" msgstr "అయినది" msgid "Show task" msgstr "కర్తవ్యాన్ని చూపించు" msgid "Alarm warning!" msgstr "అలారం హెచ్చరిక!" msgid "postponed" msgstr "వాయిదావేయబడిందిది" msgid "Day note" msgstr "" msgid "Events" msgstr "కార్యక్రమాలు" msgid "Event" msgstr "కార్యక్రమం" msgid "Task" msgstr "కర్తవ్యం" msgid "Birthday" msgstr "పుట్టినరోజు" msgid "Show Osmo" msgstr "" msgid "event" msgid_plural "events" msgstr[0] "కార్యక్రమం" msgstr[1] "కార్యక్రమాలు" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "" msgid "Time" msgstr "సమయం" msgid "The list will be cleared and all entries will be lost." msgstr "" msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgstr[1] "" msgid "iCalendar export" msgstr "" msgid "Day Selector" msgstr "రోజు ఎంపికరి" msgid "Use date period" msgstr "" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "కర్తవ్యాలను భద్రపరుచు" msgid "tasks exported" msgstr "" msgid "was born" msgstr "" msgid "year old" msgid_plural "years old" msgstr[0] "" msgstr[1] "" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "" msgstr[1] "" msgid "the last day of the year" msgstr "" msgid "Day tasks" msgstr "" msgid "Selected day note will be removed." msgstr "" msgid "Continue?" msgstr "కొనసాగాలా?" msgid "Previous year" msgstr "మునుపటి సంవత్సరం" msgid "Previous month" msgstr "మునుపటి నెల" msgid "Previous day" msgstr "మునుపటి రోజు" msgid "Next day" msgstr "తరువాత రోజు" msgid "Next month" msgstr "తరువాతి నెల" msgid "Next year" msgstr "తరువాతి సంవత్సరం" msgid "Full-year calendar" msgstr "" msgid "Print calendar" msgstr "క్యాలెండరును ముద్రించు" msgid "Toggle day note panel" msgstr "" msgid "Select day color" msgstr "రోజు రంగుని ఎంచుకొను" msgid "Browse notes" msgstr "" msgid "Browse iCal events" msgstr "" msgid "Export to iCal file" msgstr "" msgid "Previous and next month" msgstr "" msgid "Close note panel" msgstr "" msgid "Clear text" msgstr "పాఠ్యాన్ని తుడిచివేయి" msgid "Info" msgstr "సమాచారం" msgid "Select color" msgstr "రంగుని ఎంచుకొను" msgid "Name day" msgstr "రోజు పేరు" msgid "Printing properties" msgstr "ముద్రణా లక్షణాలు" msgid "Month name" msgstr "నెల పేరు" msgid "Day name" msgstr "రోజు పేరు" msgid "Fonts" msgstr "ఫాంట్లు" msgid "Birthdays" msgstr "పుట్టినరోజులు" msgid "Namedays" msgstr "" msgid "Visible events" msgstr "" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "" msgid "Portrait" msgstr "నిలువుచిత్రం" msgid "Landscape" msgstr "అడ్డచిత్రం" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "లీపు సంవత్సరం" msgid "Yes" msgstr "అవును" msgid "No" msgstr "కాదు" msgid "Chinese year animal" msgstr "" msgid "Number of days" msgstr "మొత్తం రోజుల సంఖ్య" msgid "Number of weeks" msgstr "మొత్తం వారాల సంఖ్య" msgid "Number of weekend days" msgstr "మొత్తం వారాంతపు దినాల సంఖ్య" msgid "Year info" msgstr "సంవత్సర సమాచారం" msgid "Alternative view" msgstr "ప్రత్యామ్నాయ వీక్షణం" msgid "Started" msgstr "" msgid "Finished" msgstr "" msgid "New task" msgstr "కొత్త కర్తవ్యం" msgid "Remove task" msgstr "" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "" msgid "Task details" msgstr "కర్తవ్యం వివరాలు" msgid "Close description panel" msgstr "వివరణ ప్యానలును మూసివేయి" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "మునుపటి ట్యాబుకు మారు" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "తరువాతి ట్యాబుకు మారు" msgid "switch to selected page" msgstr "ఎంచుకున్న పేజీకి మారు" msgid "show options window" msgstr "ఐచ్ఛికాల విండోను చూపించు" msgid "show about window" msgstr "విండో గురించి చూపించు" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "" msgid "exit" msgstr "నిష్క్రమించు" msgid "Space" msgstr "" msgid "select current date" msgstr "ప్రస్తుత తేదీని ఎంచుకొను" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "" msgid "Arrows" msgstr "" msgid "change day" msgstr "" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "" msgid "change month" msgstr "నెల మార్చు" msgid "Home/End" msgstr "" msgid "change year" msgstr "సంవత్సరం మార్చు" msgid "toggle calendars for the previous and next month" msgstr "" msgid "day notes browser" msgstr "" msgid "assign background color to day note" msgstr "" msgid "date calculator" msgstr "తేదీ లెక్కింపరి" msgid "show full-year calendar" msgstr "" msgid "jump to date" msgstr "" msgid "Delete" msgstr "తొలగించు" msgid "remove day note" msgstr "" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "కూర్పకాన్ని మూసివేయి" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "సంవత్సరం సమాచారం" msgid "set current year" msgstr "ప్రస్తుత సంవత్సరాన్ని అమర్చు" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "కర్తవ్యాన్ని జతచేయి" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "కర్తవ్యాన్ని సవరించు" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "కర్తవ్యాన్ని తీసివేయి" msgid "toggle hidden tasks" msgstr "" msgid "activate search field" msgstr "" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "" msgid "close task info panel" msgstr "" msgid "Insert" msgstr "చొప్పించు" msgid "add contact" msgstr "పరిచయాన్ని జతచేయి" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "పరిచయాన్ని సవరించు" msgid "remove contact" msgstr "పరిచయాన్ని తీసివేయి" msgid "change search mode" msgstr "శోధన విధాన్ని మార్చు" msgid "close contact details panel" msgstr "" msgid "Enter" msgstr "ప్రవేశపెట్టు" msgid "open note" msgstr "" msgid "add note" msgstr "" msgid "remove note" msgstr "" msgid "edit note name and category" msgstr "" msgid "close note editor" msgstr "" msgid "save note" msgstr "" msgid "find text" msgstr "పాఠ్యాన్ని వెతుకు" msgid "clear selection attributes" msgstr "" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "" msgid "Selector" msgstr "ఎంపికరి" msgid "Editor" msgstr "కూర్పకం" msgid "A handy personal organizer" msgstr "" msgid "compiled on" msgstr "" msgid "Programming" msgstr "ప్రోగ్రామింగు" msgid "Graphics" msgstr "గ్రాఫిక్స్" msgid "Contributors" msgstr "సహాయకులు" msgid "Translators" msgstr "అనువాదకులు" msgid "Mailing lists" msgstr "మెయిలింగు జాబితాలు" msgid "Bug tracker" msgstr "బగ్ జాడకం" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "అందుబాటులోవున్న పర్వికాలు" msgid "Compiled-in features" msgstr "" msgid "iCalendar support" msgstr "" msgid "Encrypted notes support" msgstr "" msgid "Backup support" msgstr "బ్యాక్అప్ మద్ధతు" msgid "Printing support" msgstr "ముద్రణ సహకారం" msgid "Spell checker support" msgstr "" msgid "version" msgstr "రూపాంతరం" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "" msgid "License" msgstr "లైసెన్స్" osmo-0.4.2/po/lt.po0000664000175000017500000011622113204320601011004 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Moo, 2014-2017 # pasp , 2011 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2017-09-19 09:44+0000\n" "Last-Translator: pasp \n" "Language-Team: Lithuanian (http://www.transifex.com/pasp/osmo/language/lt/)\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" msgid "Colors" msgstr "Spalvos" msgid "Color of contact tags" msgstr "Adresato gairių spalva" msgid "Color of links" msgstr "Nuorodų spalva" msgid "Font size" msgstr "Šrifto dydis" msgid "Name font size" msgstr "Vardo šrifto dydis" msgid "Item font size" msgstr "Elemento šrifto dydis" msgid "Photo size" msgstr "Nuotraukos dydis" msgid "Small" msgstr "Mažas" msgid "Medium" msgstr "Vidutinis" msgid "Large" msgstr "Didelis" msgid "Hide group column" msgstr "Slėpti grupės stulpelį" msgid "Maps provider" msgstr "Žemėlapių tiekėjas" msgid "Age" msgstr "Amžius" msgid "Birthday date" msgstr "Gimimo diena" msgid "Zodiac sign" msgstr "Zodiako ženklas" msgid "Contacts" msgstr "Adresatai" msgid "Appearance" msgstr "Išvaizda" msgid "Miscellaneous" msgstr "Įvairūs" msgid "Groups" msgstr "Grupės" msgid "Visible columns in birthday browser" msgstr "Matomi stulpeliai gimatadienių naršyklėje" msgid "Algorithm" msgstr "Algoritmas" msgid "Hashing" msgstr "Maiša" msgid "Compression" msgstr "Glaudinimas" msgid "Ratio" msgstr "Santykis" msgid "Fast" msgstr "Greitas" msgid "Good" msgstr "Geras" msgid "Best" msgstr "Geriausias" msgid "Type" msgstr "Tipas" msgid "Category" msgstr "Kategorija" msgid "Last changes" msgstr "Paskutiniai taisiniai" msgid "Created" msgstr "Sukurta" msgid "Remember the last selected category" msgstr "Įsiminti paskutinę pasirinktą kategoriją" msgid "Use system format for date and time" msgstr "Datai ir laikui naudoti sistemos formatą" msgid "Notes" msgstr "Pastabos" msgid "Encryption" msgstr "Užšifravimas" msgid "Visible columns" msgstr "Matomi stulpeliai" msgid "Categories" msgstr "Kategorijos" msgid "Notes options" msgstr "Pastabų parinktys" msgid "Jump to date" msgstr "Pereiti į dieną" msgid "Day" msgstr "Diena" msgid "Month" msgstr "Mėnuo" msgid "Year" msgstr "Metai" msgid "_Cancel" msgstr "_Atsisakyti" msgid "_Jump to" msgstr "_Pereiti" msgid "Select a font..." msgstr "Parinkite šriftą..." msgid "None" msgstr "Nieko" msgid "All items" msgstr "Visi elementai" msgid "Question" msgstr "Klausimas" msgid "Information" msgstr "Informacija" msgid "Error" msgstr "Klaida" msgid "Warning" msgstr "Įspėjimas" msgid "Show hidden files" msgstr "Rodyti paslėptus failus" msgid "_Save" msgstr "Į_rašyti" msgid "_Open" msgstr "_Atverti" msgid "Selected file exist! Overwrite?" msgstr "Parinktas failas jau yra! Pakeisti?" msgid "Selected contact will be removed." msgstr "Parinktas adresatas bus pašalintas." msgid "Are you sure?" msgstr "Ar Jūs įsitikinę?" msgid "No date" msgstr "Nėra datos" msgid "Select photo" msgstr "Parinkite nuotrauką" msgid "Address" msgstr "Adresas" msgid "Postcode" msgstr "Pašto indeksas" msgid "City" msgstr "Miestas" msgid "State" msgstr "Valstija" msgid "Country" msgstr "Valstybė" msgid "Edit contact" msgstr "Taisyti adresato įrašą" msgid "Add contact" msgstr "Pridėti adresatą" msgid "Personal" msgstr "Asmeninis" msgid "Group" msgstr "Grupė" msgid "Home" msgstr "Namų" msgid "Work" msgstr "Darbo" msgid "Phones" msgstr "Telefonai" msgid "Internet" msgstr "Internetas" msgid "Additional info" msgstr "Papildoma informacija" msgid "_OK" msgstr "_Gerai" msgid "no entries" msgstr "nėra įrašų" msgid "entry" msgid_plural "entries" msgstr[0] "įrašas" msgstr[1] "įrašai" msgstr[2] "įrašų" msgid "Calendar notes" msgstr "Kalendoriaus pastabos" msgid "Search" msgstr "Paieška" msgid "Filter" msgstr "Filtras" msgid "Current month" msgstr "Esamas mėnuo" msgid "Selected month" msgstr "Pasirinktas mėnuo" msgid "Current year" msgstr "Šie metai" msgid "Selected year" msgstr "Pasirinkti metai" msgid "Selected month and year" msgstr "Pasirinktas mėnuo ir metai" msgid "All notes" msgstr "Visos pastabos" msgid "Case sensitive" msgstr "Skiriant didžiąsias ir mažąsias raides" msgid "Strikethrough past day notes" msgstr "Perbraukti praeitos dienos pastabas" msgid "Date" msgstr "Data" msgid "Note" msgstr "Pastaba" msgid "_Close" msgstr "_Užverti" msgid "Rat" msgstr "Žiurkė" msgid "Ox" msgstr "Jautis" msgid "Tiger" msgstr "Tigras" msgid "Hare" msgstr "Zuikis" msgid "Dragon" msgstr "Drakonas" msgid "Snake" msgstr "Gyvatė" msgid "Horse" msgstr "Arklys" msgid "Sheep" msgstr "Avis" msgid "Monkey" msgstr "Beždžionė" msgid "Fowl" msgstr "Gaidys" msgid "Dog" msgstr "Šuo" msgid "Pig" msgstr "Kiaulė" msgid "Unknown" msgstr "Nežinomas" msgid "Aquarius" msgstr "Vandenis" msgid "Pisces" msgstr "Žuvys" msgid "Aries" msgstr "Avinas" msgid "Taurus" msgstr "Jautis" msgid "Gemini" msgstr "Dvyniai" msgid "Cancer" msgstr "Vėžys" msgid "Leo" msgstr "Liūtas" msgid "Virgo" msgstr "Mergelė" msgid "Libra" msgstr "Svarstyklės" msgid "Scorpio" msgstr "Skorpionas" msgid "Sagittarius" msgstr "Šaulys" msgid "Capricorn" msgstr "Ožiaragis" msgid "Osmo has to be restarted to take effect." msgstr "Kad įsigaliotų pakeitimai, Osmo turi būti paleista iš naujo." msgid "Layout" msgstr "Lygiavimas" msgid "Vertical" msgstr "Vertikalus" msgid "Horizontal" msgstr "Horizontalus" msgid "Tabs position" msgstr "Kortelių padėtis" msgid "Left" msgstr "Kairėje" msgid "Right" msgstr "Dešinėje" msgid "Top" msgstr "Viršuje" msgid "Bottom" msgstr "Apačioje" msgid "Disable underline in links" msgstr "Išjungti nuorodų pabraukimą" msgid "Show exit button in toolbar" msgstr "Rodyti išėjimo mygtuką įrankių juostoje" msgid "At least one module must be visible." msgstr "Turi būti matomas bent vienas modulis." msgid "Calendar" msgstr "Kalendorius" msgid "Tasks" msgstr "Užduotys" msgid "Override locale settings" msgstr "Nustelbti lokalės nustatymus" msgid "Date format" msgstr "Datos formatas" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "MM-DD-YYYY" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "Laiko formatas" msgid "hours" msgstr "valandos" msgid "Spell checker language" msgstr "Rašybos tikrinimo kalba" msgid "Enable tooltips" msgstr "Įjungti paaiškinimus" msgid "Remember last selected page" msgstr "Prisiminti paskutinį parinktą puslapį" msgid "Save data after every modification" msgstr "Išsaugoti duomenis po kiekvieno pertvarkymo" msgid "Web browser" msgstr "Interneto naršyklė" msgid "E-mail client" msgstr "El. pašto programa" msgid "Sound player" msgstr "Garso grotuvas" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s šablonas bus pakeistas adresu žiniatinklyje" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s šablonas bus pakeistas el. pašto adresu" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Šablonas %s bus pakeistas garso failo pavadinimu" msgid "Enable system tray" msgstr "Įjungti sistemos dėklą" msgid "Start minimised" msgstr "Pradėti suskleistame lange" msgid "Ignore day note events" msgstr "Ignoruoti dienos pastabos įvykius" msgid "General" msgstr "Bendri" msgid "Hide" msgstr "Slėpti" msgid "Helpers" msgstr "Pagalbininkai" msgid "System tray" msgstr "Sistemos dėklas" msgid "Preferences" msgstr "Nuostatos" msgid "Syntax" msgstr "Sintaksė" msgid "abbreviated weekday name" msgstr "sutrumpintas šiokiadienių pavadinimas" msgid "full weekday name" msgstr "pilnas šiokiadienių pavadinimas" msgid "abbreviated month name" msgstr "sutrumpintas mėnesio pavadinimas" msgid "full month name" msgstr "pilnas mėnesio pavadinimas" msgid "day of the month" msgstr "mėnesio diena" msgid "MM/DD/YY" msgstr "mm/dd/MM" msgid "day of the month without leading zeros" msgstr "mėnesio diena be pirmųjų nulių" msgid "month" msgid_plural "months" msgstr[0] "mėnuo" msgstr[1] "mėnesiai" msgstr[2] "mėnesių" msgid "year without century" msgstr "metai be amžiaus" msgid "year with century" msgstr "metai su amžiumi" msgid "Date header format" msgstr "Datos antraštės formatas" msgid "Set default format" msgstr "Nustatyti numatytąjį formatą" msgid "Date format syntax" msgstr "Datos formato sintaksė" msgid "Day note marker" msgstr "Dienos pastabų žymeklis" msgid "Event marker" msgstr "Įvykių žymeklis" msgid "Circle" msgstr "Apskritimas" msgid "Ellipse" msgstr "Elipsė" msgid "Wave" msgstr "Banga" msgid "Current day marker" msgstr "Esamos dienos žymeklis" msgid "Arrow" msgstr "Rodyklė" msgid "Free-hand circle" msgstr "Ranka pieštas apskritimas" msgid "Background color" msgstr "Fono spalva" msgid "Header background color" msgstr "Antraštės fono spalva" msgid "Header foreground color" msgstr "Antraštės priekinio plano spalva" msgid "Weekend days color" msgstr "Savaitgalio dienų spalva" msgid "Day color" msgstr "Dienos spalva" msgid "Previous/Next month's day color" msgstr "Praeito/kito mėnesio dienų spalva" msgid "Cursor color" msgstr "Žymeklio spalva" msgid "Event marker color" msgstr "Įvykių žymeklio spalva" msgid "Current day marker color" msgstr "Esamos dienos žymeklio spalva" msgid "Birthday marker color" msgstr "Gimtadienio žymeklio spalva" msgid "Date font" msgstr "Datos šriftas" msgid "Calendar font" msgstr "Kalendoriaus šriftas" msgid "Note font" msgstr "Pastabos šriftas" msgid "Enable block cursor" msgstr "Įjungti stačiakampį žymeklį" msgid "Cursor thickness" msgstr "Žymeklio storis" msgid "Thin" msgstr "Plonas" msgid "Thick" msgstr "Storas" msgid "Edit category" msgstr "Redaguoti kategoriją" msgid "Color" msgstr "Spalva" msgid "Name" msgstr "Vardas" msgid "Select ICS file" msgstr "Parinkite ICS failą" msgid "All Files" msgstr "Visi failai" msgid "Calendar files (*.ics)" msgstr "Calendar failai (*.ics)" msgid "Modify ICAL parameters" msgstr "Modifikuoti ICAL parametrus" msgid "Filename" msgstr "Failo vardas" msgid "Options" msgstr "Parinktys" msgid "Disabled" msgstr "Išjungta" msgid "Valid" msgstr "Teisingas" msgid "Description" msgstr "Aprašas" msgid "Full date" msgstr "Pilna data" msgid "Mark" msgstr "Pažymėti" msgid "Week start on Monday" msgstr "Savaitė prasideda pirmadienį" msgid "Show day names" msgstr "Rodyti dienų pavadinimus" msgid "No month change" msgstr "Nekeisti mėnesio" msgid "Show week numbers" msgstr "Rodyti savaičių numerius" msgid "Simple view in full-year calendar" msgstr "Paprastas visų metų kalendoriaus rodymas" msgid "Enable auxilary calendars" msgstr "Įjungti pagalbinius kalendorius" msgid "Ascending sorting in day notes browser" msgstr "Dienos pastabų naršyklėje rikiuoti didėjančia tvarka" msgid "Enable spell checker in day notes" msgstr "Įjungti rašybos tikrinimą dienos pastabose" msgid "Current time" msgstr "Laikas" msgid "Show seconds" msgstr "Rodyti sekundes" msgid "Day number" msgstr "Diena" msgid "Today distance" msgstr "Dienų nuo šiandien" msgid "Marked days" msgstr "Pažymėtos dienos" msgid "Week number" msgstr "Savaitė" msgid "Weekend days" msgstr "Savaitgalio dienos" msgid "Day category" msgstr "Dienos kategorija" msgid "Moon phase" msgstr "Mėnulio fazė" msgid "Day notes" msgstr "Dienos pastabos" msgid "Day categories" msgstr "Dienos kategorijos" msgid "iCalendar files" msgstr "iCalendar failai" msgid "Show in day info panel" msgstr "Rodyti dienos informacijos skydelyje" msgid "Tasks list" msgstr "Užduočių sąrašas" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr." msgid "Summary" msgstr "Santrauka" msgid "Due date" msgstr "Pabaigos data" msgid "Priority" msgstr "Svarbumas" msgid "Error printing" msgstr "Spausdinimo klaida" msgid "No birthdays defined" msgstr "Nerasta nei vieno gimtadienio" msgid "Birthdays list" msgstr "Gimtadienių sąrašas" msgid "Days to birthday" msgstr "Dienų iki gimtadienio" msgid "today" msgstr "šiandien" msgid "Select CSV file" msgstr "Parinkti CSV failą" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (kableliu atskirtos vertės) failas (*.csv)" msgid "Please select file first." msgstr "Prašome iš pradžių pasirinkti failą." msgid "Import contacts" msgstr "Importuoti adresatus" msgid "Import type" msgstr "Importavimo tipas" msgid "File" msgstr "Failas" msgid "Input filename" msgstr "Įvesties failo pavadinimas" msgid "Import" msgstr "Importuoti" msgid "Nothing to import." msgstr "Nėra ko importuoti." msgid "contact added" msgid_plural "contacts added" msgstr[0] "adresatas pridėtas" msgstr[1] "adresatai pridėti" msgstr[2] "adresatų pridėta" msgid "of" msgstr "iš" msgid "Record" msgstr "Įrašas" msgid "Number fields per record" msgstr "Laukų skaičius įraše" msgid "Use first record as header" msgstr "Naudoti pirmą įrašą kaip antraštę" msgid "Field type" msgstr "Lauko tipas" msgid "Value" msgstr "Reikšmė" msgid "No records found in selected file." msgstr "Parinktame faile įrašų nerasta." msgid "Cannot read file." msgstr "Neįmanoma perskaityti failo." msgid "Cannot open file." msgstr "Neįmanoma atverti failo." msgid "Counter" msgstr "Skaitiklis" msgid "Show calendar" msgstr "Rodyti kalendorių" msgid "Show tasks" msgstr "Rodyti užduotis" msgid "Show contacts" msgstr "Rodyti adresatus" msgid "Show notes" msgstr "Rodyti pastabas" msgid "Show options" msgstr "Rodyti parinktis" msgid "Quit" msgstr "Baigti" msgid "Show small calendar window" msgstr "Rodyti mažą kalendoriaus langelį" msgid "Check for events since last run" msgstr "Tikrinti įvykius nuo paskutinio programos paleidimo" msgid "Number of days to check forward for events (default: 0)" msgstr "Išankstinio įvykių tikrinimo dienų skaičius (numatytasis: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "Sutapdinti kontaktus su duota eilute" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" "Naudotojo konfigūracijos kelio parinktis yra pasenusi. Vietoj jos, naudokite " "XDG aplinkos kintamuosius." msgid "ERROR: Cannot create config files" msgstr "KLAIDA: Nepavyko sukurti konfigūracijos failų" msgid "Another copy of OSMO is already running." msgstr "Viena OSMO kopija jau vykdoma." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Naudojant dvi ar daugiau OSMO kopijų vienu metu gali būti prarasti duomenys." msgid "Do you really want to continue?" msgstr "Ar tikrai norite tęsti?" #, fuzzy, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" "Yra rastas senos Osmo konfigūracijos katalogas %s. Konfigūracijos failai ir " "duomenys bus nukopijuoti į XDG suderinamus katalogus. Po sėkmingo perkėlimo, " "ištrinkite senąjį konfigūracijos katalogą." #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Žemas" msgid "High" msgstr "Aukštas" msgid "Done!" msgstr "Atlikta!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "adresatas eksportuotas" msgstr[1] "adresatai eksportuoti" msgstr[2] "adresatų eksportuota" msgid "Cannot create file." msgstr "Negalima sukurti failo." msgid "Select output file" msgstr "Parinkite išvedimo failą" msgid "Export contacts" msgstr "Eksportuoti adresatus" msgid "Output format" msgstr "Išvedimo formatas" msgid "Add header" msgstr "Pridėti antraštę" msgid "Fields to export" msgstr "Laukai eksportavimui" msgid "All" msgstr "Viskas" msgid "Invert" msgstr "Invertuoti" msgid "Select fields" msgstr "Parinkti laukus" msgid "Output filename" msgstr "Išvedimo failo vardas" msgid "Export" msgstr "Eksportuoti" msgid "Color of items that are due today" msgstr "Šiandien pasibaigiančių elementų spalva" msgid "Color of items that are due in the next 7 days" msgstr "Elementų pasibaigsiančių už savaitės spalva" msgid "Color of items that are past due" msgstr "Pasibaigusių elementų spalva" msgid "Task info font" msgstr "Užduoties informacijos šriftas" msgid "Show in bold tasks with high priority" msgstr "Svarbias užduotis rodyti pusjuodžiu šriftu" msgid "Hide completed tasks" msgstr "Paslėpti įvykdytas užduotis" msgid "Delete completed tasks without confirmation" msgstr "Pašalinti įvykdytas užduotis be patvirtinimo" msgid "Add new task when double clicked on tasks list" msgstr "Pridėti naują užduotį, kai ant užduočių sąrašo du kartus spustelėjama" msgid "Postpone time" msgstr "Atidėjimo laikas" msgid "minutes" msgstr "minučių" msgid "0 for disable" msgstr "0, norint išjungti" msgid "Repeat sound alarm" msgstr "Kartoti garsinį signalą" msgid "times" msgstr "kartų" msgid "Global notification command" msgstr "Globalaus pranešimo komanda" msgid "Tasks options" msgstr "Užduočių parinktys" msgid "Reminder options" msgstr "Priminimo parinktys" msgid "Insert timeline" msgstr "Įterpti laiko skalę" msgid "Timeline" msgstr "Laiko skalė" msgid "From (hour)" msgstr "Nuo (valandos)" msgid "Step (minutes)" msgstr "Žingsnis (minutės)" msgid "To (hour)" msgstr "Iki (valandos)" msgid "_Paste" msgstr "Į_dėti" msgid "Please select at least one day when recurrency is enabled." msgstr "" "Prašome pasirinkti bent vieną dieną, kuomet pasikartojimas yra įjungtas." msgid "Set time" msgstr "Nustatyti laiką" msgid "Hour" msgstr "Valanda" msgid "Minute" msgstr "Minutė" msgid "Today" msgstr "Šiandiena" msgid "Tomorrow" msgstr "Rytojus" msgid "Selected task will be removed." msgstr "Parinkta užduotis bus pašalinta." msgid "Select date and time" msgstr "Pasirinkite datą ir laiką" msgid "Enable sound notification" msgstr "Įjungti garso pranešimą" msgid "Enable notification dialog" msgstr "Įjungti pranešimų dialogą" msgid "Alarm warning" msgstr "Signalinis įspėjimas" msgid "Days" msgstr "Dienos" msgid "Hours" msgstr "Valandos" msgid "Minutes" msgstr "Minutės" msgid "Alarm command" msgstr "Signalo komanda" msgid "Date period" msgstr "Datos periodas" msgid "Months" msgstr "Mėnesiai" msgid "Repeat" msgstr "Kartoti" msgid "Repeat in the following days" msgstr "Kartoti šiomis dienomis" msgid "Time period" msgstr "Laiko periodas" msgid "Start" msgstr "Pradžia" msgid "End" msgstr "Pabaiga" msgid "Interval" msgstr "Intervalas" msgid "Ignore alarm when task expired offline" msgstr "Ignoruoti signalą, kai užduotis pasibaigė, esant atsijungus" msgid "Recurrent task" msgstr "Pasikartojanti užduotis" msgid "Enable" msgstr "Įjungti" msgid "Edit task" msgstr "Keisti užduotį" msgid "Add task" msgstr "Pridėti užduotį" msgid "Basic" msgstr "Pagrindinis" msgid "Advanced" msgstr "Išplėstinis" msgid "New Moon" msgstr "Jaunatis (Naujas mėnulis)" msgid "Waxing Crescent Moon" msgstr "Jaunatis (Pilnėjantis pusmėnulis)" msgid "Quarter Moon" msgstr "Priešpilnis (Pirmo ketvirčio mėnulis)" msgid "Waxing Gibbous Moon" msgstr "Priešpilnis (Pilnėjantis kuprotas mėnulis)" msgid "Full Moon" msgstr "Pilnatis (Pilnas mėnulis)" msgid "Waning Gibbous Moon" msgstr "Pilnatis (Dylantis kuprotas mėnulis)" msgid "Last Quarter Moon" msgstr "Delčia (Paskutinio ketvirčio mėnulis)" msgid "Waning Crescent Moon" msgstr "Delčia (Dylantis mėnulis)" msgid "Cannot create backup!" msgstr "Nepavyko sukurti atsarginės kopijos!" msgid "Save backup" msgstr "Išsaugoti atsarginę kopiją" msgid "Password protection" msgstr "Apsauga slaptažodžiu" msgid "Enter password" msgstr "Įveskite slaptažodį" msgid "Re-enter password" msgstr "Pakartokite slaptažodį" msgid "Please enter the password" msgstr "Prašome įvesti naują slaptažodį" msgid "Passwords do not match!" msgstr "Slaptažodžiai nesutampa!" msgid "Backup file saved successfully!" msgstr "Atsarginės kopijos failas sėkmingai išsaugotas!" msgid "Open backup file" msgstr "Atverti atsarginės kopijos failą" msgid "Osmo backup files (*.bck)" msgstr "Osmo atsarginės kopijos failai (*.bck)" msgid "This is not Osmo backup file" msgstr "Tai nėra Osmo atsarginės kopijos failas" msgid "Incorrect password!" msgstr "Neteisingas slaptažodis!" msgid "All your data will be replaced with backup file content." msgstr "Visi jūsų duomenys bus pakeisti atsarginės kopijos failo turiniu." msgid "Osmo has to be restarted now..." msgstr "Osmo dabar turi būti paleista iš naujo..." msgid "Please select address" msgstr "Prašome pasirinkti adresą" msgid "First name" msgstr "Vardas" msgid "Last name" msgstr "Pavardė" msgid "Second name" msgstr "Antras vardas" msgid "Nickname" msgstr "Slapyvardis" msgid "Tags" msgstr "Gairės" msgid "Name day date" msgstr "Vardo diena" msgid "Home address" msgstr "Namų adresas" msgid "Home postcode" msgstr "Namų pašto indeksas" msgid "Home city" msgstr "Namų miestas" msgid "Home state" msgstr "Namų valstija" msgid "Home country" msgstr "Namų valstybė" msgid "Organization" msgstr "Organizacija" msgid "Department" msgstr "Skyrius" msgid "Work address" msgstr "Darbovietės adresas" msgid "Work postcode" msgstr "Darbovietės pašto indeksas" msgid "Work city" msgstr "Darbovietės miestas" msgid "Work state" msgstr "Darbovietės valstija" msgid "Work country" msgstr "Darbovietės valstybė" msgid "Fax" msgstr "Faksas" msgid "Home phone" msgstr "Namų telefonas" msgid "Home phone 2" msgstr "Namų telefonas 2" msgid "Home phone 3" msgstr "Namų telefonas 3" msgid "Home phone 4" msgstr "Namų telefonas 4" msgid "Work phone" msgstr "Darbo telefonas" msgid "Work phone 2" msgstr "Darbo telefonas 2" msgid "Work phone 3" msgstr "Darbo telefonas 3" msgid "Work phone 4" msgstr "Darbo telefonas 4" msgid "Cell phone" msgstr "Mobilusis telefonas" msgid "Cell phone 2" msgstr "Mobilusis telefonas 2" msgid "Cell phone 3" msgstr "Mobilusis telefonas 3" msgid "Cell phone 4" msgstr "Mobilusis telefonas 4" msgid "E-Mail" msgstr "El. paštas" msgid "E-Mail 2" msgstr "El. paštas 2" msgid "E-Mail 3" msgstr "El. paštas 3" msgid "E-Mail 4" msgstr "El. paštas 4" msgid "WWW" msgstr "Tinklalapis" msgid "WWW 2" msgstr "Tinklalapis 2" msgid "WWW 3" msgstr "Tinklalapis 3" msgid "WWW 4" msgstr "Tinklalapis 4" msgid "IM Gadu-Gadu" msgstr "Pokalbių tarnyba Gadu-Gadu" msgid "IM Yahoo" msgstr "Pokalbių tarnyba Yahoo" msgid "IM MSN" msgstr "Pokalbių tarnyba MSN" msgid "IM ICQ" msgstr "Pokalbių tarnyba ICQ" msgid "IM AOL" msgstr "Pokalbių tarnyba AOL" msgid "IM Jabber" msgstr "Pokalbių tarnyba Jabber" msgid "IM Skype" msgstr "Pokalbių tarnyba Skype" msgid "IM Tlen" msgstr "Pokalbių tarnyba Tlen" msgid "Blog" msgstr "Tinklaraštis" msgid "Photo" msgstr "Nuotrauka" msgid "New contact" msgstr "Naujas adresatas" msgid "Remove contact" msgstr "Pašalinti adresatą" msgid "Show birthdays" msgstr "Rodyti gimtadienius" msgid "Show contact location on the map" msgstr "Rodyti kontakto vietą žemėlapyje" msgid "Backup data" msgstr "Atsarginės kopijos duomenys" msgid "Restore data" msgstr "Atkurti duomenis" msgid "About" msgstr "Apie" msgid "Clear" msgstr "Išvalyti" msgid "First Name" msgstr "Vardas" msgid "Last Name" msgstr "Pavardė" msgid "All fields" msgstr "Visi laukai" msgid "Contact details" msgstr "Adresato išsami informacija" msgid "Close contact panel" msgstr "Užverti adresatų skydelį" msgid "The note has changed." msgstr "Pastaba pasikeitė." msgid "Do you want to save it?" msgstr "Norite ją išsaugoti?" msgid "No URLs found in the selection..." msgstr "Žymėjime nerasta URL..." msgid "URLs will be opened in the default browser." msgstr "URL bus atveriami numatytoje naršyklėje." msgid "Do you want to continue?" msgstr "Ar norite tęsti?" msgid "Too many links selected!" msgstr "Pažymėta per daug nuorodų!" msgid "links opened" msgstr "atverta nuorodų" msgid "Words" msgstr "Žodžiai" msgid "Lines" msgstr "Eilutės" msgid "Characters" msgstr "Simboliai" msgid "White characters" msgstr "Baltų simbolių" msgid "Bytes" msgstr "Baitų" msgid "Document" msgstr "Dokumentas" msgid "Selection" msgstr "Pasirinkimas" msgid "Modified" msgstr "Pertvarkyta" msgid "New note" msgstr "Nauja pastaba" msgid "Edit note" msgstr "Taisyti pastabą" msgid "Delete note" msgstr "Pašalinti pastabą" msgid "Save note" msgstr "Išsaugoti pastabą" msgid "Find" msgstr "Rasti" msgid "Toggle spell checker" msgstr "Perjungti rašybos tikrinimą" msgid "Bold" msgstr "Pusjuodis" msgid "Italic" msgstr "Kursyvas" msgid "Underline" msgstr "Pabrauktas" msgid "Strikethrough" msgstr "Perbrauktas" msgid "Highlight" msgstr "Paryškinti" msgid "Clear attributes" msgstr "Išvalyti požymius" msgid "Open URL links" msgstr "Atverti URL nuorodas" msgid "Insert current date and time" msgstr "Įterpti dabartinę datą ir laiką" msgid "Insert separator" msgstr "Įterpti skirtuką" msgid "Statistics" msgstr "Statistika" msgid "Close editor" msgstr "Užverti rašyklę" msgid "Note name" msgstr "Pastabos pavadinimas" msgid "Read-only" msgstr "Tik skaitymui" msgid "Line" msgstr "Eilutė" msgid "Column" msgstr "Stulpelis" msgid "case sensitive" msgstr "skirti raidžių lygį" msgid "Close find entry" msgstr "Užverti įrašo paiešką" msgid "Edit entry" msgstr "Taisyti įrašą" msgid "Remember cursor position" msgstr "Įsiminti žymeklio vietą" msgid "Selected note will be removed." msgstr "Parinktas įrašas bus pašalintas." msgid "No further data recovery will be possible." msgstr "Tolesnis duomenų atkūrimas bus neįmanomas." msgid "Add note" msgstr "Pridėti pastabą" msgid "Plain" msgstr "Grynas" msgid "Encrypted" msgstr "Šifruotas" msgid "Note type" msgstr "Pastabos tipas" msgid "Cannot open the note." msgstr "Nepavyko atverti pastabos." msgid "encryption support is disabled" msgstr "užšifravimo palaikymas išjungtas" msgid "Authorization" msgstr "Prieigos teisė" msgid "year" msgid_plural "years" msgstr[0] "metai" msgstr[1] "metai" msgstr[2] "metų" msgid "day" msgid_plural "days" msgstr[0] "diena" msgstr[1] "dienos" msgstr[2] "dienų" msgid "hour" msgid_plural "hours" msgstr[0] "valanda" msgstr[1] "valandos" msgstr[2] "valandų" msgid "minute" msgid_plural "minutes" msgstr[0] "minutė" msgstr[1] "minutės" msgstr[2] "minučių" msgid "second" msgid_plural "seconds" msgstr[0] "sekundė" msgstr[1] "sekundės" msgstr[2] "sekundžių" msgid "or" msgstr "ar" msgid "rounded down" msgstr "suapvalinta į apačią" msgid "week" msgid_plural "weeks" msgstr[0] "savaitė" msgstr[1] "savaitės" msgstr[2] "savaičių" msgid "working day" msgid_plural "working days" msgstr[0] "darbo diena" msgstr[1] "darbo dienos" msgstr[2] "darbo dienų" msgid "time is ignored" msgstr "laikas ignoruojamas" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "savaitgalio diena" msgstr[1] "savaitgalio dienos" msgstr[2] "savaitgalio dienų" msgid "This calculator only supports dates after year 1." msgstr "Šis skaičiuoklis skaičiuoja datas tik nuo 1 metų." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "ignoruota savaitgalio diena" msgstr[1] "ignoruotos savaitgalio dienos" msgstr[2] "ignoruotų savaitgalio dienų" msgid "Date calculator" msgstr "Datos skaičiuoklis" msgid "Current date" msgstr "Dabartinė data" msgid "Set current date" msgstr "Parinkti dabartinę datą" msgid "Second" msgstr "Sekundė" msgid "Set current time" msgstr "Parinkti dabartinį laiką" msgid "Reset time" msgstr "Atstatyti laiką į pradinę būseną" msgid "First date and time" msgstr "Pirma data ir laikas" msgid "Second date and time" msgstr "Antra data ir laikas" msgid "Alternative time units" msgstr "Alternatyvūs laiko vienetai" msgid "Result" msgstr "Rezultatas" msgid "Duration between two dates" msgstr "Laikas tarp dviejų datų" msgid "Operation" msgstr "Veiksmas" msgid "add" msgstr "pridėti" msgid "subtract" msgstr "atimti" msgid "Date and time to add or subtract from" msgstr "Data ir laikas pridėjimui ir atimčiai" msgid "Years" msgstr "Metai" msgid "Weeks" msgstr "Savaitės" msgid "Seconds" msgstr "Sekundės" msgid "Ignore weekend days" msgstr "Ignoruoti savaitgalio dienas" msgid "Reset fields" msgstr "Atstatyti laukus į pradinę būseną" msgid "Time to add or subtract" msgstr "Laikas pridėjimui ar atimčiai" msgid "Add to or subtract from a date" msgstr "Pridėti ar atimti iš datos" msgid "Cannot perform selected operation." msgstr "Nepavyko atlikti pasirinkto veiksmo." msgid "Task has been modified or removed." msgstr "Užduotis buvo pertvarkyta arba pašalinta." msgid "Remind me later" msgstr "Priminti vėliau" msgid "Done" msgstr "Atlikta" msgid "Show task" msgstr "Rodyti užduotį" msgid "Alarm warning!" msgstr "Signalinis įspėjimas!" msgid "postponed" msgstr "atidėta" msgid "Day note" msgstr "Dienos pastaba" msgid "Events" msgstr "Įvykiai" msgid "Event" msgstr "Įvykis" msgid "Task" msgstr "Užduotis" msgid "Birthday" msgstr "Gimimo diena" msgid "Show Osmo" msgstr "Rodyti Osmo" msgid "event" msgid_plural "events" msgstr[0] "įvykis" msgstr[1] "įvykiai" msgstr[2] "įvykių" msgid "No valid calendars defined" msgstr "Nėra apibrėžta teisingų kalendorių" msgid "iCalendar events" msgstr "iCalendar įvykiai" msgid "Time" msgstr "Laikas" msgid "The list will be cleared and all entries will be lost." msgstr "Šis sąrašas bus išvalytas ir visi įrašai prarasti." msgid "event exported" msgid_plural "events exported" msgstr[0] "įvykis eksportuotas" msgstr[1] "įvykiai eksportuoti" msgstr[2] "įvykių eksportuota" msgid "iCalendar export" msgstr "iCalendar eksportavimas" msgid "Day Selector" msgstr "Dienos Selektorius" msgid "Use date period" msgstr "Naudoti datos periodą" msgid "_Add" msgstr "_Pridėti" msgid "_Clear" msgstr "_Išvalyti" msgid "_Remove" msgstr "Ša_linti" msgid "No tasks with defined date found." msgstr "Užduočių su apibrėžta data nerasta." msgid "Save tasks" msgstr "Išsaugoti užduotis" msgid "tasks exported" msgstr "užduotys eksportuotos" msgid "was born" msgstr "gimė" msgid "year old" msgid_plural "years old" msgstr[0] "metai" msgstr[1] "metai" msgstr[2] "metų" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "diena iki metų pabaigos" msgstr[1] "dienos iki metų pabaigos" msgstr[2] "dienų iki metų pabaigos" msgid "the last day of the year" msgstr "paskutinė metų diena" msgid "Day tasks" msgstr "Dienos užduotys" msgid "Selected day note will be removed." msgstr "Pažymėta dienos pastaba bus pašalinta." msgid "Continue?" msgstr "Tęsti?" msgid "Previous year" msgstr "Praeiti metai" msgid "Previous month" msgstr "Praeitas mėnuo" msgid "Previous day" msgstr "Praeita diena" msgid "Next day" msgstr "Kita diena" msgid "Next month" msgstr "Kitas mėnuo" msgid "Next year" msgstr "Kiti metai" msgid "Full-year calendar" msgstr "Visų metų kalendorius" msgid "Print calendar" msgstr "Spausdinti kalendorių" msgid "Toggle day note panel" msgstr "Rodyti/slėpti dienos pastabų skydelį" msgid "Select day color" msgstr "Parinkti dienos spalvą" msgid "Browse notes" msgstr "Naršyti pastabas" msgid "Browse iCal events" msgstr "Naršyti iCal įvykius" msgid "Export to iCal file" msgstr "Eksportuoti į iCal failą" msgid "Previous and next month" msgstr "Praeitas ir kitas mėnuo" msgid "Close note panel" msgstr "Užverti pastabų skydelį" msgid "Clear text" msgstr "Išvalyti tekstą" msgid "Info" msgstr "Informacija" msgid "Select color" msgstr "Parinkite spalvą" msgid "Name day" msgstr "Vardadienis" msgid "Printing properties" msgstr "Spausdinimo savybės" msgid "Month name" msgstr "Mėnesio pavadinimas" msgid "Day name" msgstr "Dienos pavadinimas" msgid "Fonts" msgstr "Šriftai" msgid "Birthdays" msgstr "Gimtadieniai" msgid "Namedays" msgstr "Vardadieniai" msgid "Visible events" msgstr "Matomi įvykiai" msgid "Padding" msgstr "Tarpai" msgid "Event maximum length" msgstr "Maksimalus įvykio ilgis" msgid "Page orientation:" msgstr "Puslapio padėtis:" msgid "Portrait" msgstr "Stačiai" msgid "Landscape" msgstr "Gulsčiai" msgid "Disable background colors" msgstr "Išjungti fono spalvas" msgid "Leap year" msgstr "Keliamieji metai" msgid "Yes" msgstr "Taip" msgid "No" msgstr "Ne" msgid "Chinese year animal" msgstr "Kinų metų gyvūnas" msgid "Number of days" msgstr "Dienų skaičius" msgid "Number of weeks" msgstr "Savaičių skaičius" msgid "Number of weekend days" msgstr "Savaitgalio dienų skaičius" msgid "Year info" msgstr "Metų informacija" msgid "Alternative view" msgstr "Alternatyvus rodinys" msgid "Started" msgstr "Pradžia" msgid "Finished" msgstr "Užbaigtas" msgid "New task" msgstr "Nauja užduotis" msgid "Remove task" msgstr "Pašalinti užduotį" msgid "Change due date to previous date" msgstr "Pakeisti pabaigos datą į ankstesnę datą" msgid "Change due date to next date" msgstr "Pakeisti pabaigos datą į vėlesnę datą" msgid "Export tasks" msgstr "Eksportuoti užduotis" msgid "Print visible tasks list" msgstr "Spausdinti matomų pastabų sąrašą" msgid "Task details" msgstr "Išsami informacija apie užduotį" msgid "Close description panel" msgstr "Užverti aprašo skydelį" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "pereiti į praeitą kortelę" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "pereitį į kitą kortelę" msgid "switch to selected page" msgstr "perjungti į pasirinktą puslapį" msgid "show options window" msgstr "rodyti parinkčių langą" msgid "show about window" msgstr "rodyti Apie langą" msgid "toggle fullscreen mode" msgstr "perjungti viso ekrano veikseną" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "perjungti puslapį parinkčių ir apie kortelėse" msgid "exit" msgstr "išeiti" msgid "Space" msgstr "Tarpas" msgid "select current date" msgstr "parinkti šiandienos datą" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "perjungti asmeninės informacijos matomumą" msgid "Arrows" msgstr "Rodyklės" msgid "change day" msgstr "pakeisti dieną" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "slinkti dienos informacijos skydelio turinį" msgid "change month" msgstr "pakeisti mėnesį" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "pakeisti metus" msgid "toggle calendars for the previous and next month" msgstr "perjungti praeito ir kito mėnesio kalendorius" msgid "day notes browser" msgstr "dienos pastabų naršyklė" msgid "assign background color to day note" msgstr "priskirti spalvą dienos pastabos fonui" msgid "date calculator" msgstr "datos skaičiuoklis" msgid "show full-year calendar" msgstr "parodyti visų metų kalendorių" msgid "jump to date" msgstr "pereiti į dieną" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "pašalinti dienos pastabą" msgid "Alt+Arrows" msgstr "Alt+Rodyklės" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "užverti redaktorių" msgid "toggle bold" msgstr "perjungti pusjuodį" msgid "toggle italic" msgstr "perjungti kursyvą" msgid "toggle underline" msgstr "perjungti pabrauktą" msgid "toggle strikethrough" msgstr "perjungti perbrauktą" msgid "toggle highlight" msgstr "perjungti paryškintą" msgid "Arrows Up/Down" msgstr "Rodyklės Aukštyn/Žemyn" msgid "toggle alternative view" msgstr "perjungti alternatyvų rodinį" msgid "year info" msgstr "metų informacija" msgid "set current year" msgstr "nustatyti dabartinius metus" msgid "close full-year calendar" msgstr "užverti visų metų kalendorių" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "pridėti užduotį" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "taisyti užduotį" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "pašalinti užduotį" msgid "toggle hidden tasks" msgstr "perjungti paslėptas užduotis" msgid "activate search field" msgstr "aktyvuoti paieškos lauką" msgid "Left, Right" msgstr "Kairėn, Dešinėn" msgid "change category filter" msgstr "pakeisti kategorijos filtrą" msgid "close task info panel" msgstr "užverti užduočių informacijos skydelį" msgid "Insert" msgstr "Įterpti" msgid "add contact" msgstr "pridėti adresatą" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "taisyti adresato įrašą" msgid "remove contact" msgstr "pašalinti adresatą" msgid "change search mode" msgstr "pakeisti paieškos veikseną" msgid "close contact details panel" msgstr "užverti adresato išsamios informacijos skydelį" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "atverti pastabą" msgid "add note" msgstr "pridėti pastabą" msgid "remove note" msgstr "pašalinti pastabą" msgid "edit note name and category" msgstr "taisyti pastabos pavadinimą ir kategoriją" msgid "close note editor" msgstr "užverti pastabos rašyklę" msgid "save note" msgstr "išsaugoti pastabą" msgid "find text" msgstr "rasti tekstą" msgid "clear selection attributes" msgstr "išvalyti parinkimo požymius" msgid "open URLs" msgstr "atverti URL" msgid "show document statistics" msgstr "rodyti dokumento statistiką" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "Ruošiant OSMO, buvo galvojama apie vartotojo patogumą, todėl čia yra daug " "sparčiųjų klavišų. Štai visas sąrašas: " msgid "Note editor" msgstr "Pastabos redaktorius" msgid "Selector" msgstr "Atrankos" msgid "Editor" msgstr "Rašyklė" msgid "A handy personal organizer" msgstr "Patogi asmeninių duomenų tvarkytuvė" msgid "compiled on" msgstr "sukompiliuota" msgid "Programming" msgstr "Programavimas" msgid "Graphics" msgstr "Grafika" msgid "Contributors" msgstr "Talkininkai" msgid "Translators" msgstr "Vertėjai" msgid "Mailing lists" msgstr "Elektroninio pašto grupė" msgid "Bug tracker" msgstr "Klaidų sekimas" msgid "Feature requests" msgstr "Funkcijų prašymai" msgid "Available modules" msgstr "Prieinami moduliai" msgid "Compiled-in features" msgstr "Įkompiliuotos funkcijos" msgid "iCalendar support" msgstr "iCalendar palaikymas" msgid "Encrypted notes support" msgstr "Užšifruotų pastabų palaikymas" msgid "Backup support" msgstr "Atsarginės kopijos palaikymas" msgid "Printing support" msgstr "Spausdinimo palaikymas" msgid "Spell checker support" msgstr "Rašybos tikrinimo palaikymas" msgid "version" msgstr "versija" msgid "GIT version" msgstr "GIT versija" msgid "Key shortcuts" msgstr "Spartieji klavišai" msgid "License" msgstr "Licencija" #~ msgid "handy personal organizer" #~ msgstr "patogi asmeninių duomenų tvarkytuvė" osmo-0.4.2/po/fr.po0000664000175000017500000011421713204320601010777 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # baggieri gerald , 2013 # pasp , 2011 # zoliaaz z , 2017 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2017-09-21 20:07+0000\n" "Last-Translator: zoliaaz z \n" "Language-Team: French (http://www.transifex.com/pasp/osmo/language/fr/)\n" "Language: fr\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" msgid "Colors" msgstr "Couleurs" msgid "Color of contact tags" msgstr "Types d'information" msgid "Color of links" msgstr "Liens internet et courriel" msgid "Font size" msgstr "Taille des polices" msgid "Name font size" msgstr "Noms des contacts" msgid "Item font size" msgstr "Détails sur les contacts" msgid "Photo size" msgstr "Taille des photos" msgid "Small" msgstr "Petite" msgid "Medium" msgstr "Moyenne" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Cacher la colonne de groupe" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Age au prochain" msgid "Birthday date" msgstr "Date d'anniversaire" msgid "Zodiac sign" msgstr "Signe du zodiaque" msgid "Contacts" msgstr "Contacts" msgid "Appearance" msgstr "Apparence" msgid "Miscellaneous" msgstr "Divers" msgid "Groups" msgstr "Groupes" msgid "Visible columns in birthday browser" msgstr "Colonnes visibles dans la liste des anniversaires" msgid "Algorithm" msgstr "Algorithme" msgid "Hashing" msgstr "Hash" msgid "Compression" msgstr "Compression" msgid "Ratio" msgstr "Ratio" msgid "Fast" msgstr "Rapide" msgid "Good" msgstr "Bon" msgid "Best" msgstr "Meilleur" msgid "Type" msgstr "Type" msgid "Category" msgstr "Catégorie" msgid "Last changes" msgstr "Derniers changements" msgid "Created" msgstr "Créée" msgid "Remember the last selected category" msgstr "Se rappeler la dernière catégorie sélectionnée" msgid "Use system format for date and time" msgstr "Utiliser le format du système pour la date et l'heure" msgid "Notes" msgstr "Notes" msgid "Encryption" msgstr "Chiffrement" msgid "Visible columns" msgstr "Colonnes visibles" msgid "Categories" msgstr "Catégories" msgid "Notes options" msgstr "Options des notes" msgid "Jump to date" msgstr "Aller à la date du" msgid "Day" msgstr "Jour" msgid "Month" msgstr "Mois" msgid "Year" msgstr "Année" msgid "_Cancel" msgstr "_Annuler" msgid "_Jump to" msgstr "_Aller à..." msgid "Select a font..." msgstr "Sélectionner une police..." msgid "None" msgstr " " msgid "All items" msgstr "Tout" msgid "Question" msgstr "Question" msgid "Information" msgstr "Information" msgid "Error" msgstr "Erreur" msgid "Warning" msgstr "Attention" msgid "Show hidden files" msgstr "Afficher les fichiers cachés" msgid "_Save" msgstr "_Sauvegarder" msgid "_Open" msgstr "_Ouvrir" msgid "Selected file exist! Overwrite?" msgstr "Le fichier choisi existe ! Le remplacer ?" msgid "Selected contact will be removed." msgstr "Le contact sélectionné sera effacé" msgid "Are you sure?" msgstr "Êtes-vous sûr(e) ?" msgid "No date" msgstr "Pas de date" msgid "Select photo" msgstr "Sélectionner une photo" msgid "Address" msgstr "Adresse" msgid "Postcode" msgstr "Code postal" msgid "City" msgstr "Ville" msgid "State" msgstr "Département" msgid "Country" msgstr "Pays" msgid "Edit contact" msgstr "Modifier le contact" msgid "Add contact" msgstr "Ajouter un contact" msgid "Personal" msgstr "Personnel" msgid "Group" msgstr "Groupe" msgid "Home" msgstr "Maison" msgid "Work" msgstr "Professionnel" msgid "Phones" msgstr "Téléphones" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informations complémentaires" msgid "_OK" msgstr "_OK" msgid "no entries" msgstr "Pas d'entrée" msgid "entry" msgid_plural "entries" msgstr[0] "entrée" msgstr[1] "entrées" msgid "Calendar notes" msgstr "Notes du calendrier" msgid "Search" msgstr "Rechercher" msgid "Filter" msgstr "Filtre" msgid "Current month" msgstr "Mois actuel" msgid "Selected month" msgstr "Mois sélectionné" msgid "Current year" msgstr "Année actuelle" msgid "Selected year" msgstr "Année sélectionnée" msgid "Selected month and year" msgstr "Mois et année sélectionnée" msgid "All notes" msgstr "Toutes les notes" msgid "Case sensitive" msgstr "Distinguer majuscules et minuscules" msgid "Strikethrough past day notes" msgstr "Barrer les notes des jours précédents" msgid "Date" msgstr "Date" msgid "Note" msgstr "Notes" msgid "_Close" msgstr "_Fermer" msgid "Rat" msgstr "Rat" msgid "Ox" msgstr "Bœuf" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lièvre" msgid "Dragon" msgstr "Dragon" msgid "Snake" msgstr "Serpent" msgid "Horse" msgstr "Cheval" msgid "Sheep" msgstr "Mouton" msgid "Monkey" msgstr "Singe" msgid "Fowl" msgstr "Coq" msgid "Dog" msgstr "Chien" msgid "Pig" msgstr "Cochon" msgid "Unknown" msgstr "Inconnu" msgid "Aquarius" msgstr "Verseau" msgid "Pisces" msgstr "Poisson" msgid "Aries" msgstr "Belier" msgid "Taurus" msgstr "Taureau" msgid "Gemini" msgstr "Gémeau" msgid "Cancer" msgstr "Cancer" msgid "Leo" msgstr "Lion" msgid "Virgo" msgstr "Vierge" msgid "Libra" msgstr "Balance" msgid "Scorpio" msgstr "Scorpion" msgid "Sagittarius" msgstr "Sagittaire" msgid "Capricorn" msgstr "Capricorne" msgid "Osmo has to be restarted to take effect." msgstr "Les changements prendront effet aprés redémarrage" msgid "Layout" msgstr "Mise en page" msgid "Vertical" msgstr "Verticale" msgid "Horizontal" msgstr "Horizontale" msgid "Tabs position" msgstr "Position des onglets" msgid "Left" msgstr "Gauche" msgid "Right" msgstr "Droite" msgid "Top" msgstr "Haut" msgid "Bottom" msgstr "Bas" msgid "Disable underline in links" msgstr "Ne pas souligner les liens" msgid "Show exit button in toolbar" msgstr "montrer le bouton sortir dans la barre de tâches" msgid "At least one module must be visible." msgstr "Au moins un module doit être visible" msgid "Calendar" msgstr "Calendrier" msgid "Tasks" msgstr "Tâches" msgid "Override locale settings" msgstr "Ignorer les paramètres locaux" msgid "Date format" msgstr "Format de la date" msgid "DD-MM-YYYY" msgstr "JJ-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-JJ-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-JJ" msgid "YYYY-DD-MM" msgstr "AAAA-JJ-MM" msgid "Time format" msgstr "Format de l'heure" msgid "hours" msgstr "heures" msgid "Spell checker language" msgstr "Langage du correcteur d'orthographe" msgid "Enable tooltips" msgstr "Activer les bulles d'aide" msgid "Remember last selected page" msgstr "Se rappeler la dernière page sélectionnée" msgid "Save data after every modification" msgstr "Sauvegarder les données après chaque modification" msgid "Web browser" msgstr "Navigateur web" msgid "E-mail client" msgstr "Client courriel" msgid "Sound player" msgstr "Serveur de son" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s sera remplacé par l'adresse web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s sera remplacé par l'adresse courriel" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s sera remplacé par le fichier sonore" msgid "Enable system tray" msgstr "Afficher l'îcone" msgid "Start minimised" msgstr "Lancer minimisé" msgid "Ignore day note events" msgstr "Ignorer les notes du jour" msgid "General" msgstr "Général" msgid "Hide" msgstr "Cacher" msgid "Helpers" msgstr "Programmes externes" msgid "System tray" msgstr "Zone de notification" msgid "Preferences" msgstr "Préférences" msgid "Syntax" msgstr "Syntaxe" msgid "abbreviated weekday name" msgstr "nom du jour abrégé" msgid "full weekday name" msgstr "nom du jour en entier" msgid "abbreviated month name" msgstr "nom du mois abrégé" msgid "full month name" msgstr "nom du mois en entier" msgid "day of the month" msgstr "n° du jour " msgid "MM/DD/YY" msgstr "MM/JJ/AA" msgid "day of the month without leading zeros" msgstr "n° du jour sans les zéros initiaux" msgid "month" msgid_plural "months" msgstr[0] "mois" msgstr[1] "mois" msgid "year without century" msgstr "année sans siècle" msgid "year with century" msgstr "année avec siècle" msgid "Date header format" msgstr "Format de la date" msgid "Set default format" msgstr "Format par défaut" msgid "Date format syntax" msgstr "Syntaxe du format" msgid "Day note marker" msgstr "Marqueur des notes" msgid "Event marker" msgstr "Marqueur des événements" msgid "Circle" msgstr "Cercle" msgid "Ellipse" msgstr "Ellipse" msgid "Wave" msgstr "Vague" msgid "Current day marker" msgstr "Marqueur du jour actuel" msgid "Arrow" msgstr "Flèche" msgid "Free-hand circle" msgstr "Cercle à main levée" msgid "Background color" msgstr "Couleur de fond" msgid "Header background color" msgstr "Couleur de fond des en-têtes" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Week-end" msgid "Day color" msgstr "Attribuer une couleur au jour" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Curseur" msgid "Event marker color" msgstr "Marqueur des évènements" msgid "Current day marker color" msgstr "Marqueur du jour actuel" msgid "Birthday marker color" msgstr "Marqueur d'anniversaire" msgid "Date font" msgstr "Police de la date" msgid "Calendar font" msgstr "Police du calendrier" msgid "Note font" msgstr "Police des notes" msgid "Enable block cursor" msgstr "Activer le curseur plein" msgid "Cursor thickness" msgstr "Épaisseur du curseur" msgid "Thin" msgstr "Mince" msgid "Thick" msgstr "Épais" msgid "Edit category" msgstr "Éditer les catégories" msgid "Color" msgstr "Couleur" msgid "Name" msgstr "Nom" msgid "Select ICS file" msgstr "Sélectionner un fichier ICS" msgid "All Files" msgstr "Tous les fichiers" msgid "Calendar files (*.ics)" msgstr "Fichiers calendrier (*.ics)" msgid "Modify ICAL parameters" msgstr "Modifier les paramètres ICAL" msgid "Filename" msgstr "Nom de fichier" msgid "Options" msgstr "Options" msgid "Disabled" msgstr "Invalide" msgid "Valid" msgstr "Valider" msgid "Description" msgstr "Description" msgid "Full date" msgstr "Date complète" msgid "Mark" msgstr "Marquer" msgid "Week start on Monday" msgstr "Les semaines débutent Lundi" msgid "Show day names" msgstr "Afficher les jours de la semaine" msgid "No month change" msgstr "Ne pas changer le mois" msgid "Show week numbers" msgstr "Afficher les N° annuel de semaine" msgid "Simple view in full-year calendar" msgstr "Vue simple du calendrier annuel" msgid "Enable auxilary calendars" msgstr "Activer les calendriers auxiliaires" msgid "Ascending sorting in day notes browser" msgstr "Ordre croissant dans le panneau de note" msgid "Enable spell checker in day notes" msgstr "Activer le correcteur d'orthographe" msgid "Current time" msgstr "Heure actuelle" msgid "Show seconds" msgstr "montrer les secondes" msgid "Day number" msgstr "N° annuel du jour" msgid "Today distance" msgstr "Intervalle en jours" msgid "Marked days" msgstr "Jours cochés" msgid "Week number" msgstr "N° annuel de la semaine" msgid "Weekend days" msgstr "Jours de week-end" msgid "Day category" msgstr "Catégorie du jour" msgid "Moon phase" msgstr "Phase de la Lune" msgid "Day notes" msgstr "Notes du jour" msgid "Day categories" msgstr "Catégories journalières" msgid "iCalendar files" msgstr "fichiers iCalendar" msgid "Show in day info panel" msgstr "Panneau d'informations" msgid "Tasks list" msgstr "Liste des tâches" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "N° " msgid "Summary" msgstr "Résumé" msgid "Due date" msgstr "Échéance" msgid "Priority" msgstr "Priorité" msgid "Error printing" msgstr "Erreur d'impression" msgid "No birthdays defined" msgstr "Pas d'anniversaires enregistrés" msgid "Birthdays list" msgstr "Liste des anniversaires" msgid "Days to birthday" msgstr "Nombre de jours restants" msgid "today" msgstr "Aujourd'hui" msgid "Select CSV file" msgstr "Sélectionner un fichier CVS" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Fichiers CVS (séparés par une virgule) (*.csv) " msgid "Please select file first." msgstr "Sélectionner le fichier en premier" msgid "Import contacts" msgstr "Importer des contacts" msgid "Import type" msgstr "Type d'import" msgid "File" msgstr "Fichier" msgid "Input filename" msgstr "Entrer le nom du fichier" msgid "Import" msgstr "Importer" msgid "Nothing to import." msgstr "Rien à importer" msgid "contact added" msgid_plural "contacts added" msgstr[0] "Le contact a été ajouté" msgstr[1] "Les contacts ont été ajoutés" msgid "of" msgstr "de" msgid "Record" msgstr "Enregistrement" msgid "Number fields per record" msgstr "Nombre de champs par enregistrement" msgid "Use first record as header" msgstr "Utiliser le premier enregistrement pour en-tête" msgid "Field type" msgstr "Catégorie" msgid "Value" msgstr "Valeur" msgid "No records found in selected file." msgstr "Aucun enregistrement dans le fichier sélectionné" msgid "Cannot read file." msgstr "Lecture du fichier impossible" msgid "Cannot open file." msgstr "Impossible d'ouvrir le fichier" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Afficher le calendrier" msgid "Show tasks" msgstr "Afficher les tâches" msgid "Show contacts" msgstr "Afficher les contacts" msgid "Show notes" msgstr "Afficher les notes" msgid "Show options" msgstr "Afficher les options" msgid "Quit" msgstr "Quitter" msgid "Show small calendar window" msgstr "Afficher le calendrier dans une petite fenêtre" msgid "Check for events since last run" msgstr "Vérifier les évènements depuis la dernière utilisation" msgid "Number of days to check forward for events (default: 0)" msgstr "Nombre de jours avant vérification des événements (par defaut: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "Erreur: impossible de créer le fichier de configuration" msgid "Another copy of OSMO is already running." msgstr "Un autre processus OSMO est déjà en cours." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Le lancement en parallèle de deux instances (ou plus) d'OSMO peut causer des " "pertes de données." msgid "Do you really want to continue?" msgstr "Continuer quand même ?" #, fuzzy, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" "Une ancienne configuration de Osmo est trouvé: %s. Le fichier et les donées " "vont être copiées dans un dossier XDG compaticle. Supprimer l'ancien dossier " "de configuration après la la migration réussite." #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Basse" msgid "High" msgstr "Haute" msgid "Done!" msgstr "Fait!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contact exporté" msgstr[1] "contacts exportés" msgid "Cannot create file." msgstr "Création du fichier impossible" msgid "Select output file" msgstr "Sélectionner le fichier de destination" msgid "Export contacts" msgstr "Exporter les contacts" msgid "Output format" msgstr "Format de destination" msgid "Add header" msgstr "Ajouter un en-tête" msgid "Fields to export" msgstr "Champs à exporter" msgid "All" msgstr "Tout" msgid "Invert" msgstr "Inverser" msgid "Select fields" msgstr "Sélectionner les champs" msgid "Output filename" msgstr "Fichier de destination " msgid "Export" msgstr "Exporter" msgid "Color of items that are due today" msgstr "Couleur de ce qui se termine aujourd'hui" msgid "Color of items that are due in the next 7 days" msgstr "Couleur de ce qui se termine dans les 7 jours" msgid "Color of items that are past due" msgstr "Couleur de ce qui est achevé" msgid "Task info font" msgstr "Police des détails" msgid "Show in bold tasks with high priority" msgstr "Tâches à haute priorité en gras" msgid "Hide completed tasks" msgstr "Cacher les tâches terminées" msgid "Delete completed tasks without confirmation" msgstr "Effacer les tâches terminées sans confirmation" msgid "Add new task when double clicked on tasks list" msgstr "Ajouter une nouvelle tâche par un double clic sur la liste" msgid "Postpone time" msgstr "Temps avant rappel" msgid "minutes" msgstr "minutes" msgid "0 for disable" msgstr "0 pour désactiver" msgid "Repeat sound alarm" msgstr "Répéter l'alarme sonore" msgid "times" msgstr "fois" msgid "Global notification command" msgstr "Commande par défaut (ex: notify-send)" msgid "Tasks options" msgstr "Options des tâches" msgid "Reminder options" msgstr "Options de notification" msgid "Insert timeline" msgstr "Insérer un horaire" msgid "Timeline" msgstr "Durée" msgid "From (hour)" msgstr "De (heure)" msgid "Step (minutes)" msgstr "Intervalle (minutes)" msgid "To (hour)" msgstr "À (heure)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Sélectionner au moins un jour avec le mode récurrent activé" msgid "Set time" msgstr "Sélectionner une heure" msgid "Hour" msgstr "Heure" msgid "Minute" msgstr "Minute" msgid "Today" msgstr "Aujourd'hui" msgid "Tomorrow" msgstr "Demain" msgid "Selected task will be removed." msgstr "Les tâches sélectionnées seront effacées" msgid "Select date and time" msgstr "Date/Heure" msgid "Enable sound notification" msgstr "Activer la notification sonore" msgid "Enable notification dialog" msgstr "Active une fenêtre de notification" msgid "Alarm warning" msgstr "Alarme de rappel" msgid "Days" msgstr "Jours" msgid "Hours" msgstr "Heures" msgid "Minutes" msgstr "Minutes" msgid "Alarm command" msgstr "Commande de notification alternative" msgid "Date period" msgstr "Rappel à date fixe" msgid "Months" msgstr "Mois" msgid "Repeat" msgstr "Répétition" msgid "Repeat in the following days" msgstr "Répéter les jours suivants :" msgid "Time period" msgstr "Rappel périodique" msgid "Start" msgstr "Démarrage" msgid "End" msgstr "Fin" msgid "Interval" msgstr "Intervalle" msgid "Ignore alarm when task expired offline" msgstr "Ignorer l'alarme lorsque la tâche expire hors ligne" msgid "Recurrent task" msgstr "Tâche récurrente" msgid "Enable" msgstr "Activer" msgid "Edit task" msgstr "Modifier la tâche" msgid "Add task" msgstr "Ajouter une tâche" msgid "Basic" msgstr "Simple" msgid "Advanced" msgstr "Avancé" msgid "New Moon" msgstr "Nouvelle Lune" msgid "Waxing Crescent Moon" msgstr "Premier croissant" msgid "Quarter Moon" msgstr "Premier quartier" msgid "Waxing Gibbous Moon" msgstr "Lune gibbeuse ascendante" msgid "Full Moon" msgstr "Pleine Lune" msgid "Waning Gibbous Moon" msgstr "Lune gibbeuse descendante" msgid "Last Quarter Moon" msgstr "Dernier quartier" msgid "Waning Crescent Moon" msgstr "Dernier croissant" msgid "Cannot create backup!" msgstr "Création du fichier impossible" msgid "Save backup" msgstr "Sauvegarder" msgid "Password protection" msgstr "Protection par mot de passe" msgid "Enter password" msgstr "Entrer le mot de passe" msgid "Re-enter password" msgstr "Confirmer le mot de passe" msgid "Please enter the password" msgstr "Confirmer le mot de passe" msgid "Passwords do not match!" msgstr "Le mot de passe ne correspond pas" msgid "Backup file saved successfully!" msgstr "Création du fichier de sauvegarde terminée" msgid "Open backup file" msgstr "Ouvrir le fichier de sauvegarde" msgid "Osmo backup files (*.bck)" msgstr "Fichiers de sauvegardes d'Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Ce n'est pas un fichier de sauvegarde d'Osmo" msgid "Incorrect password!" msgstr "Mot de passe incorrect" msgid "All your data will be replaced with backup file content." msgstr "" "Toutes vos données seront remplacées par le contenu du fichier de sauvegarde" msgid "Osmo has to be restarted now..." msgstr "Osmo va redémarrer maintenant ..." msgid "Please select address" msgstr "Sélectionner une adresse" msgid "First name" msgstr "Prénom" msgid "Last name" msgstr "Nom de famille" msgid "Second name" msgstr "Second nom de famille" msgid "Nickname" msgstr "Surnom" msgid "Tags" msgstr "Mots clef" msgid "Name day date" msgstr "Fête" msgid "Home address" msgstr "Adresse personnelle" msgid "Home postcode" msgstr "Code postal" msgid "Home city" msgstr "Ville de résidence" msgid "Home state" msgstr "Département" msgid "Home country" msgstr "Pays" msgid "Organization" msgstr "Entreprise ou organisation" msgid "Department" msgstr "Service" msgid "Work address" msgstr "Adresse professionnelle" msgid "Work postcode" msgstr "Code postal" msgid "Work city" msgstr "Ville d'activité" msgid "Work state" msgstr "Département" msgid "Work country" msgstr "Téléphone professionnel" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Téléphone résidence" msgid "Home phone 2" msgstr "Téléphone résidence 2" msgid "Home phone 3" msgstr "Téléphone résidence 3" msgid "Home phone 4" msgstr "Téléphone résidence 4" msgid "Work phone" msgstr "Téléphone professionnel" msgid "Work phone 2" msgstr "Téléphone professionnel 2" msgid "Work phone 3" msgstr "Téléphone professionnel 3" msgid "Work phone 4" msgstr "Téléphone professionnel 4" msgid "Cell phone" msgstr "Téléphone mobile" msgid "Cell phone 2" msgstr "Téléphone mobile 2" msgid "Cell phone 3" msgstr "Téléphone mobile 3" msgid "Cell phone 4" msgstr "Téléphone mobile 4" msgid "E-Mail" msgstr "Adresse courriel" msgid "E-Mail 2" msgstr "Adresse courriel 2" msgid "E-Mail 3" msgstr "Adresse courriel 3" msgid "E-Mail 4" msgstr "Adresse courriel 4" msgid "WWW" msgstr "Site Web" msgid "WWW 2" msgstr "Site Web 2" msgid "WWW 3" msgstr "Site Web 3" msgid "WWW 4" msgstr "Site Web 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Photo" msgid "New contact" msgstr "Nouveau contact" msgid "Remove contact" msgstr "Supprimer le contact" msgid "Show birthdays" msgstr "Afficher les anniversaires" msgid "Show contact location on the map" msgstr "Localiser sur Google Maps" msgid "Backup data" msgstr "Sauvegarde" msgid "Restore data" msgstr "Restauration" msgid "About" msgstr "À propos" msgid "Clear" msgstr "Vider" msgid "First Name" msgstr "Prénom" msgid "Last Name" msgstr "Nom de famille" msgid "All fields" msgstr "Tous les champs" msgid "Contact details" msgstr "Contact en détail" msgid "Close contact panel" msgstr "Cacher les détails" msgid "The note has changed." msgstr "La note a été modifiée" msgid "Do you want to save it?" msgstr "Voulez vous enregistrer ?" msgid "No URLs found in the selection..." msgstr "Aucun liens trouvés dans la sélection..." msgid "URLs will be opened in the default browser." msgstr "Les URLs seront ouverts dans le navigateur par défaut." msgid "Do you want to continue?" msgstr "Voulez-vous continuer?" msgid "Too many links selected!" msgstr "Trop de liens sélectionnés" msgid "links opened" msgstr "Liens ouvert" msgid "Words" msgstr "Mots" msgid "Lines" msgstr "Lignes" msgid "Characters" msgstr "Caractères" msgid "White characters" msgstr "Caractères blancs" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Document" msgid "Selection" msgstr "Sélection" msgid "Modified" msgstr "Modifiée" msgid "New note" msgstr "Nouvelle note" msgid "Edit note" msgstr "Modifier la note" msgid "Delete note" msgstr "Supprimer la note" msgid "Save note" msgstr "Enregistrer la note" msgid "Find" msgstr "Rechercher" msgid "Toggle spell checker" msgstr "Activer/Désactiver le correcteur d'orthographe" msgid "Bold" msgstr "Gras" msgid "Italic" msgstr "Italique" msgid "Underline" msgstr "Souligner" msgid "Strikethrough" msgstr "Barrer" msgid "Highlight" msgstr "Surligner" msgid "Clear attributes" msgstr "Style par défaut" msgid "Open URL links" msgstr "Ouvrir un lien URL" msgid "Insert current date and time" msgstr "Insérer la date et l'heure actuelle" msgid "Insert separator" msgstr "Insérer un séparateur" msgid "Statistics" msgstr "Statistiques" msgid "Close editor" msgstr "Fermer l'éditeur" msgid "Note name" msgstr "Nom de la note" msgid "Read-only" msgstr "Lecture seule" msgid "Line" msgstr "Ligne" msgid "Column" msgstr "Colonne" msgid "case sensitive" msgstr "Distinguer majuscules et minuscules" msgid "Close find entry" msgstr "Cacher la barre de recherche" msgid "Edit entry" msgstr "Modifier l'entrée" msgid "Remember cursor position" msgstr "Se rappeler de la position du curseur" msgid "Selected note will be removed." msgstr "Les notes sélectionnées seront effacées " msgid "No further data recovery will be possible." msgstr "La récupération des données ne sera plus possible" msgid "Add note" msgstr "Ajouter une note" msgid "Plain" msgstr "En clair" msgid "Encrypted" msgstr "Chiffrée" msgid "Note type" msgstr "Type de note" msgid "Cannot open the note." msgstr "Impossible d'ouvrir le fichier" msgid "encryption support is disabled" msgstr "Le support de chiffrement est désactivé" msgid "Authorization" msgstr "Autorisation" msgid "year" msgid_plural "years" msgstr[0] "Année" msgstr[1] "Années" msgid "day" msgid_plural "days" msgstr[0] "jour" msgstr[1] "jours" msgid "hour" msgid_plural "hours" msgstr[0] "heure" msgstr[1] "heures" msgid "minute" msgid_plural "minutes" msgstr[0] "minute" msgstr[1] "minutes" msgid "second" msgid_plural "seconds" msgstr[0] "seconde" msgstr[1] "secondes" msgid "or" msgstr "ou" msgid "rounded down" msgstr "arrondi inférieur" msgid "week" msgid_plural "weeks" msgstr[0] "semaine" msgstr[1] "semaines" msgid "working day" msgid_plural "working days" msgstr[0] "Jour en semaine" msgstr[1] "Jours en semaine" msgid "time is ignored" msgstr "L'heure est ignorée" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "Jour de week-end" msgstr[1] "Jours de week-end" msgid "This calculator only supports dates after year 1." msgstr "Ce calculateur ne supporte que les dates après un an" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "Ignorer le jour de week-end" msgstr[1] "Ignorer les jours de week-end" msgid "Date calculator" msgstr "Calculateur temporel" msgid "Current date" msgstr "Date actuelle" msgid "Set current date" msgstr "Mettre à la date actuelle" msgid "Second" msgstr "Seconde" msgid "Set current time" msgstr "Mettre à l'heure actuelle" msgid "Reset time" msgstr "Remettre à zéro" msgid "First date and time" msgstr "Première date/heure" msgid "Second date and time" msgstr "Deuxième date/heure" msgid "Alternative time units" msgstr "Autres Unités temporelles" msgid "Result" msgstr "Résultat" msgid "Duration between two dates" msgstr "Durée entre deux dates" msgid "Operation" msgstr "Opération" msgid "add" msgstr "Ajouter" msgid "subtract" msgstr "Soustraire" msgid "Date and time to add or subtract from" msgstr "Date et heure initiales" msgid "Years" msgstr "Années" msgid "Weeks" msgstr "Semaines" msgid "Seconds" msgstr "Secondes" msgid "Ignore weekend days" msgstr "Ignorer les jours de week-end" msgid "Reset fields" msgstr "Remettre à zéro" msgid "Time to add or subtract" msgstr "Temps à ajouter/soustraire" msgid "Add to or subtract from a date" msgstr "Ajouter/Soustraire d'une date" msgid "Cannot perform selected operation." msgstr "Impossible de réaliser l'opération sélectionnée" msgid "Task has been modified or removed." msgstr "La tâche a été modifiée ou supprimée" msgid "Remind me later" msgstr "Me le rappeler plus tard" msgid "Done" msgstr "Fait" msgid "Show task" msgstr "Montrer les tâches" msgid "Alarm warning!" msgstr "Alarme de rappel !" msgid "postponed" msgstr "Reporté" msgid "Day note" msgstr "Note du jour" msgid "Events" msgstr "Évènements" msgid "Event" msgstr "Évènement" msgid "Task" msgstr "Tâche" msgid "Birthday" msgstr "Anniversaire" msgid "Show Osmo" msgstr "Montrer Osmo" msgid "event" msgid_plural "events" msgstr[0] "évènement" msgstr[1] "évènements" msgid "No valid calendars defined" msgstr "Aucun calendriers définis" msgid "iCalendar events" msgstr "Évènements iCalendar" msgid "Time" msgstr "Heure" msgid "The list will be cleared and all entries will be lost." msgstr "La liste sera effacée et toutes les entrées perdues" msgid "event exported" msgid_plural "events exported" msgstr[0] "contact exporté" msgstr[1] "contacts exportés" msgid "iCalendar export" msgstr "Export iCalendar" msgid "Day Selector" msgstr "Sélecteur de jour" msgid "Use date period" msgstr "Définir une période" msgid "_Add" msgstr "Ajouter" msgid "_Clear" msgstr "Effacer" msgid "_Remove" msgstr "Supprimer" msgid "No tasks with defined date found." msgstr "Tâches avec date définie introuvables." msgid "Save tasks" msgstr "Sauvegarder les tâches" msgid "tasks exported" msgstr "Tâches exportées" msgid "was born" msgstr "né(e) le" msgid "year old" msgid_plural "years old" msgstr[0] "an" msgstr[1] "ans" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "Jour jusqu'à la fin de l'année" msgstr[1] "Jours jusqu'à la fin de l'année" msgid "the last day of the year" msgstr "le dernier jour de l'année" msgid "Day tasks" msgstr "Tâches du jour" msgid "Selected day note will be removed." msgstr "Les notes du jour seront effacées " msgid "Continue?" msgstr "Continuer ?" msgid "Previous year" msgstr "Année précédente" msgid "Previous month" msgstr "Mois précédent" msgid "Previous day" msgstr "Jour précédent" msgid "Next day" msgstr "Jour suivant" msgid "Next month" msgstr "Mois suivant" msgid "Next year" msgstr "Année suivante" msgid "Full-year calendar" msgstr "Calendrier annuel" msgid "Print calendar" msgstr "Imprimer le calendrier" msgid "Toggle day note panel" msgstr "Afficher/Cacher les notes du jour" msgid "Select day color" msgstr "Attribuer une couleur au jour" msgid "Browse notes" msgstr "Parcourir les notes" msgid "Browse iCal events" msgstr "Explorer les évènements iCal" msgid "Export to iCal file" msgstr "Exporter en fichier iCal" msgid "Previous and next month" msgstr "Mois précédent/suivant" msgid "Close note panel" msgstr "Fermer le panneau des notes" msgid "Clear text" msgstr "Effacer le texte" msgid "Info" msgstr "Panneau d'informations" msgid "Select color" msgstr "Sélectionnez la couleur" msgid "Name day" msgstr "Fête" msgid "Printing properties" msgstr "Propriétés d'impression" msgid "Month name" msgstr "Mois" msgid "Day name" msgstr "Jours" msgid "Fonts" msgstr "Polices" msgid "Birthdays" msgstr "Anniversaires" msgid "Namedays" msgstr "Fêtes" msgid "Visible events" msgstr "Faire apparaître :" msgid "Padding" msgstr "Marge par case" msgid "Event maximum length" msgstr "Nb max de caractères" msgid "Page orientation:" msgstr "Orientation de la page" msgid "Portrait" msgstr "Portrait" msgid "Landscape" msgstr "Paysage" msgid "Disable background colors" msgstr "Désactive la couleur de fond" msgid "Leap year" msgstr "Année bissextile" msgid "Yes" msgstr "Oui" msgid "No" msgstr "Non" msgid "Chinese year animal" msgstr "Signe chinois de l'année" msgid "Number of days" msgstr "Nombre de jours" msgid "Number of weeks" msgstr "Nombre de semaines" msgid "Number of weekend days" msgstr "Jours de week-end annuel" msgid "Year info" msgstr "Informations supplémentaires" msgid "Alternative view" msgstr "Vue alternative" msgid "Started" msgstr "Lancé" msgid "Finished" msgstr "Fini" msgid "New task" msgstr "Nouvelle tâche" msgid "Remove task" msgstr "Supprimer la tâche" msgid "Change due date to previous date" msgstr "Échéance au jour précédent" msgid "Change due date to next date" msgstr "Échéance au jour suivant" msgid "Export tasks" msgstr "Exporter les tâches" msgid "Print visible tasks list" msgstr "Imprimer la liste des tâches" msgid "Task details" msgstr "Détails de la tâche" msgid "Close description panel" msgstr "Cacher les détails" msgid "Ctrl+PageUp" msgstr "Ctrl+Haut de Page" msgid "switch to previous tab" msgstr "Vers l'onglet précédent" msgid "Ctrl+PageDn" msgstr "Ctrl+Bas de Page" msgid "switch to next tab" msgstr "Vers l'onglet suivant" msgid "switch to selected page" msgstr "Aller à l'onglet sélectionné" msgid "show options window" msgstr "Afficher la fenêtre des options" msgid "show about window" msgstr "Afficher la fenêtre 'À Propos'" msgid "toggle fullscreen mode" msgstr "passer en plein écran" msgid "PageUp/PageDn" msgstr "Haut de Page/Bas de Page" msgid "switch page in options and about tab" msgstr "Changer de pages dans les onglets Options et À propos" msgid "exit" msgstr "Sortir" msgid "Space" msgstr "Espace" msgid "select current date" msgstr "Sélectionner la date actuelle" msgid "Ctrl+Space" msgstr "Ctrl+Espace" msgid "toggle personal data visibility" msgstr "Activer/Désactiver la visibilité des données personnelles" msgid "Arrows" msgstr "Flèches" msgid "change day" msgstr "Changer le jour" msgid "Ctrl+Up/Down" msgstr "Ctrl+Haut/Bas" msgid "scroll the contents in the day info panel" msgstr "Afficher les notes dans le panneau d'informations" msgid "change month" msgstr "Changer le mois" msgid "Home/End" msgstr "Origine/Fin" msgid "change year" msgstr "Changer l'année" msgid "toggle calendars for the previous and next month" msgstr "Afficher les calendriers des mois précédent et suivant" msgid "day notes browser" msgstr "Parcourir les notes du calendrier" msgid "assign background color to day note" msgstr "Assigne une couleur d'arrière plan à une note journalière" msgid "date calculator" msgstr "Afficher le calculateur temporel" msgid "show full-year calendar" msgstr "Afficher le calendrier annuel" msgid "jump to date" msgstr "Aller à la date du" msgid "Delete" msgstr "Suppr" msgid "remove day note" msgstr "Supprimer la note du jour" msgid "Alt+Arrows" msgstr "Alt+Flèches" msgid "Esc" msgstr "Échap" msgid "close editor" msgstr "Fermer l'éditeur" msgid "toggle bold" msgstr "Gras" msgid "toggle italic" msgstr "Italique" msgid "toggle underline" msgstr "Souligner" msgid "toggle strikethrough" msgstr "Barrer" msgid "toggle highlight" msgstr "Surligner" msgid "Arrows Up/Down" msgstr "Flèches Haut/Bas" msgid "toggle alternative view" msgstr "Vue alternative" msgid "year info" msgstr "Informations supplémentaires" msgid "set current year" msgstr "Revenir à l'année actuelle" msgid "close full-year calendar" msgstr "Fermer le calendrier annuel" msgid "Alt+a, Insert" msgstr "Alt+a, Insérer" msgid "add task" msgstr "Ajouter une tâche" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Entrée" msgid "edit task" msgstr "Modifier la tâche" msgid "Alt+r, Delete" msgstr "Alt+r, Suppr" msgid "remove task" msgstr "Supprimer la tâche" msgid "toggle hidden tasks" msgstr "Afficher les tâches cachées " msgid "activate search field" msgstr "Activer le champ de recherche" msgid "Left, Right" msgstr "Gauche, Droite" msgid "change category filter" msgstr "Changer le filtre des catégories" msgid "close task info panel" msgstr "Fermer le panneau de détails des tâches" msgid "Insert" msgstr "Insérer" msgid "add contact" msgstr "Ajouter un contact" msgid "Ctrl+Enter" msgstr "Ctrl+Entrée" msgid "edit contact" msgstr "Modifier le contact" msgid "remove contact" msgstr "Supprimer le contact" msgid "change search mode" msgstr "Changer le mode de recherche" msgid "close contact details panel" msgstr "Fermer le panneau de détails des contacts" msgid "Enter" msgstr "Entrée" msgid "open note" msgstr "Ouvrir une note" msgid "add note" msgstr "Ajouter une note" msgid "remove note" msgstr "Supprimer la note" msgid "edit note name and category" msgstr "Modifier le nom et la catégorie de la note" msgid "close note editor" msgstr "Fermer l'éditeur de notes" msgid "save note" msgstr "Enregistrer la note" msgid "find text" msgstr "Rechercher" msgid "clear selection attributes" msgstr "Style par défaut pour la sélection" msgid "open URLs" msgstr "Ouvrir les liens URL" msgid "show document statistics" msgstr "Afficher les statistiques" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO a été conçu en gardant à l'esprit le confort de l'utilisateur, d'où les " "nombreux raccourcis clavier. Voici la liste complète:" msgid "Note editor" msgstr "Éditeur de note" msgid "Selector" msgstr "Sélecteur" msgid "Editor" msgstr "Éditeur" msgid "A handy personal organizer" msgstr "Un @genda personnel léger et pratique" msgid "compiled on" msgstr "compilé en" msgid "Programming" msgstr "Programmation" msgid "Graphics" msgstr "Graphisme" msgid "Contributors" msgstr "Contributeurs" msgid "Translators" msgstr "Traducteurs" msgid "Mailing lists" msgstr "Listes de courriels" msgid "Bug tracker" msgstr "Recherche de bugs" msgid "Feature requests" msgstr "Requêtes de fonctionalités" msgid "Available modules" msgstr "Modules disponibles" msgid "Compiled-in features" msgstr "Options de compilation" msgid "iCalendar support" msgstr "Support iCalendar" msgid "Encrypted notes support" msgstr "Dispositif de chiffrement" msgid "Backup support" msgstr "Support de sauvegarde" msgid "Printing support" msgstr "Support d'impression" msgid "Spell checker support" msgstr "Correcteur d'orthographe" msgid "version" msgstr "version" msgid "GIT version" msgstr "Version Git" msgid "Key shortcuts" msgstr "Raccourcis clavier" msgid "License" msgstr "Licence" #~ msgid "handy personal organizer" #~ msgstr "@genda personnel" osmo-0.4.2/po/nl.mo0000664000175000017500000010777413204320601011010 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^Y^__`` 2`I?`` `'``` `` ` aa 0a:a?a NaZa iaRwaa aa a b&boGoMoUoZobo jotooo oo o ooooo pp .pppqq"q sUsYs _sisqsss ss s sss s tt !t.t6t:t Yt,dtt4t(t#u)u-u2u:uJu \u hutu}uuu uDuv %vi2vv vv v"v(vFwew}www ww ww w x x$x )x5x#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-06 09:53+0000 Last-Translator: fonske777 Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 voor uitschakelenEen handige persoonlijke agendaOverContactpersoon toevoegenVoeg kop toeVoeg een nieuwe taak toe wanneer er dubbel wordt geklikt op de takenlijstNotitie toevoegenVoeg taak toeOptellen bij of aftrekken van een datumExtra informatieAdresGeavanceerdLeeftijdAlarmopdrachtAlarmwaarschuwingAlarmwaarschuwing!AlgoritmeAlleAlle bestandenAlle veldenAlle elementenAlle notitiesAl uw gegevens zullen worden vervangen door de inhoud van het reservekopiebestand.Alt+pijltjestoetsenAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternatieve tijdeenhedenAlternatieve weergaveOSMO draait al.UiterlijkWatermanWeet u het zeker?RamPijlPijltjestoetsenPijl omhoog/naar benedenOplopend sorteren in de dagnotiebladeraarMinimaal één module moet zichtbaar zijn.MachtigingBeschikbare modulesReservekopiebestand succesvol opgeslagen.Ondersteuning voor reservekopieënEenvoudigBesteVerjaardagVerjaardagdatumKleur van verjaardagmarkeerderVerjaardagenVerjaardagenlijstBlogVetOnderBlader door iCal-gebeurtenissenBlader door notitiesFoutopspoorderBytesCSV (kommagescheiden waarden)-bestanden (*.csv)KalenderKalenderbestanden (*.ics)KalenderlettertypeKalendernotitiesKreeftKan reservekopie niet maken.Kan bestand niet maken.Kan het bestand niet openen.Kan de notitie niet openen.Kan geselecteerde actie niet uitvoeren.Kan het bestand niet lezen.SteenbokHoofdlettergevoeligCategorieënCategorieMobiele telefoonMobiele telefoon 2Mobiele telefoon 3Mobiele telefoon 4Verander de vervaldatum naar de volgende datumVerander de vervaldatum naar de vorige datumTekensControleer op gebeurtenissen sinds de laatste keerChinese dierenriemCirkelPlaatsWissenEigenschappen wissenTekst wissenSluit contactpersoonpaneelSluit beschrijvingspaneelSluit bewerkerSluit zoek elementSluit notitiepaneelKleurKleur van contactpersoonmarkeringenKleur van dingen die de komende 7 dagen verwacht wordenKleur van dingen die vandaag verwacht wordenKleur van dingen die zijn vervallenKleur van koppelingenKleurenKolomMeegecompileerde functiesCompressieContactpersoondetailsContactpersonenDoorgaan?MedewerkersLandGemaaktCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+spatiebalkCtrl+Up/DownHuidige datumHuidige-dag-markeerderKleur van huidige-dag-markeerderHuidige maandHuidige tijdHuidig jaarCursorkleurCursordikteDD-MM-JJJJDatumDatum en tijd om vanaf op te tellen of af te trekkenDatumrekenmachineDatumlettertypeDatumopmaakSyntaxis van datumopmaakOpmaak van datumkopDatumperiodeDagDagkiezerDagcategorieënDagcategorieDagnaamDagnotitieDagnotitiemarkeerderDagnotitiesDagnummerDagtakenDagenDagen tot verjaardagVerwijderenVerwijder voltooide taken zonder bevestigingVerwijder notitieAfdelingBeschrijvingZet onderstrepen in koppelingen uitUitgeschakeldWeet u zeker dat u door wilt gaan?Wilt u hem opslaan?DocumentHondGedaanKlaar!DraakVervaldatumTijdsduur tussen twee dataE-mailE-mail 2E-mail 3E-mail 4E-mailprogrammaFout: Kan configuratiebestanden niet makenBewerk categorieBewerk contactpersoonBewerk elementBewerk notitieBewerk taakBewerkerEllipsZet aanZet hulpkalenders aanZet blokcursor aanZet geluidmeldingen aanZet spellingcontrole in dagnotities aanGebruik systeemvakZet gereedschaptips aanVersleuteldOndersteuning voor versleutelde notitiesVersleutelingEindeEnterVul wachtwoord inFoutAfdrukprobleemEscapeGebeurtenisGebeurtenismarkeerderKleur van gebeurtenismarkeerderMaximale gebeurtenislengteGebeurtenissenUitvoerenExporteer contactpersonenExporteer takenExporteer naar iCal-bestandSnelFaxFunctieverzoekenVeldtypeVelden om te exporterenBestandBestandnaamFilterZoekKlaarVoornaamEerste datum en tijdVoornaamGrootte van lettertypeLettertypenHaanVrije-hand-cirkelVan (uur)Volle maanVolledige datumVolledig-jaar-kalenderTweelingenAlgemeenGlobale opdracht voor meldingGoedPlaatjesGroepGroepenHaasHashingHelpersVerbergenVerberg taken die voltooid zijnVerberg groepkolomHoogAccentuerenThuisWoonadresWoonplaatsWoonlandTelefoon thuisThuistelefoon 2Thuistelefoon 3Thuistelefoon 4Postcode woonadresWoonprovincieHome/EndHorizontaalPaardUurUrenIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooNegeer alarm wanneer de taak zonder internetverbinding verliepNegeer dagnotitiegebeurtenissenNegeer weekeindedagenInvoerImporteer contactpersonenInvoertypeVerkeerd wachtwoord.InformatieInformatieInvoer bestandnaamInvoegenVoeg huidige datum en tijd inVoeg scheiding inVoeg tijdlijn inInternetIntervalOmdraaienSchuingedruktGrootte van elementlettertypeSpring naar datumSneltoetsenLiggendGrootAchternaamLaatste kwartierLaatste wijzigingenAchternaamVormgevingSchrikkeljaarLinksLinks, RechtsLeeuwWeegschaalLicentieRegelRegelsLaagMM-DD-JJJJMM/DD/JJE-mail-lijstenMarkeerGemarkeerde dagenGemiddeldMinuutMinutenOverigGewijzigdWijzig ICAL-parametersAapMaandMaandnaamMaandenSchijngestalte van maanNaamNaamdagNaamdagdatumGrootte van naamlettertypeNaamdagenNieuwe maanNieuwe contactpersoonNieuwe notitieNieuwe taakVolgende dagVolgende maandVolgend jaarBijnaamNeeGeen verjaardagen gedefinieerdGeen datumMeer gegevensherstel zal niet mogelijk zijn.Geen maandveranderingGeen dossiers gevonden in het geselecteerde bestand.Geen taken met opgegeven datum gevonden.Geen geldige kalenders gedefinieerdNr.GeenNotitieNotitiebewerkerNotitielettertypeNotitienaamNotitietypeNotitiesNotitie-optiesNiets om in te voeren.Aantal velden per dossierAantal dagenAantal dagen voorwaarts controleren op gebeurtenissen (standaard: 0)Aantal weekeindedagenAantal wekenOSMO is ontworpen met het oog op gebruiksgemak, dus er zijn veel sneltoetsen. Hier is de volledige lijst:Open reservekopiebestandBewerkingOptiesOrganisatieOsmo reservekopiebestanden (*.bck)Osmo moet nu opnieuw opgestart worden...Osmo moet nu opnieuw opgestart worden om veranderingen door te voeren.Naam van uitvoerbestandUitvoer-opmaakNegeer lokalisatie-instellingenOsOpvullingPaginarichting:PageUp/PageDnWachtwoordbeveiligingWachtwoorden komen niet overeen.PersoonlijkTelefoonsFotoFotogrootteVarkenVissenEenvoudigVul alstublieft het wachtwoord inSelecteer a.u.b. een adresSelecteer a.u.b. minimaal één dag wanneer herhalingen aanstaan.Selecteer eerst een bestand a.u.b.StaandPostcodeUitsteltijdVoorkeurenVorige en volgende maandVorige dagVorige maandVorig jaarDruk kalender afDruk lijst af van zichtbare takenPrintereigenschappenPrinterondersteuningPrioriteitProgrammerenHalve maanVraagAfsluitenRatVerhoudingVul wachtwoord nogmaals inAlleen-lezenDossierHerhaaldelijke taakOnthoud cursorpositieOnthoud laatst geselecteerde paginaOnthoud de laatst geselecteerde categorieHerinner me er later aanHerinneringsoptiesVerwijder contactpersoonVerwijder taakHerhaalHerhaal op de volgende dagenHerhaal geluidalarmZet velden terug op standaardwaardenZet tijd terug op de standaardwaardeResultaatRechtsBoogschutterReservekopie opslaanSla gegevens op na elke wijzigingNotitie opslaanTaken opslaanSchorpioenZoekenSecondeTweede datum en tijdTweede naamSecondenSelecteer CSV-bestandSelecteer ICS-bestandSelecteer een lettertype...Selecteer kleurSelecteer datum en tijdSelecteer dagkleurSelecteer veldenSelecteer uitvoerbestandSelecteer fotoGeselecteerde contactpersoon zal worden verwijderd.Geselecteerde dagnotitie zal worden verwijderd.Geselecteerd bestand bestaat al. Overschrijven?Geselecteerde maandGeselecteerde maand en jaarGeselecteerde notitie zal worden verwijderd.Geselecteerde taak zal worden verwijderd.Geselecteerd jaarSelectieKiezerZet absoluut pad voor instellingen en gegevensbestandenStel huidige datum inStel huidige tijd inStel standaardopmaak inStel tijd inSchaapLaat Osmo zienLaat verjaardagen zienLaat kalender zienLaat de locatie van de contactpersoon op de kaart zienLaat contactpersonen zienLaat dagnamen zienToon afsluitknop in werkbalkLaat in vet taken met hoge prioriteit zienLaat zien in het daginformatiepaneelLaat notities zienLaat opties zienSeconden tonenLaat klein kalendervenster zienLaat taak zienLaat taken zienLaat weeknummers zienEenvoudige weergave in volledig-jaar-kalenderMeervoudig draaien van OSMO kan een oorzaak zijn van gegevensverlies.KleinSlangGeluidspelerSpatiebalkTaal voor spellingcontroleOndersteuning voor spellingcontroleStartStart geminimalizeerdGestartProvincieStatistiekenStap (minuten)DoorgestreeptDoorhalen van verlopen dagnotitiesSamenvattingSyntaxisSysteemvakTabspositieEtikettenTaakTaakdetailsTaak is aangepast of verwijderd.Lettertype van taakinformatieTakenTakenlijstTaakoptiesStierHet tekenpatroon %s zal worden vervangen door het e-mailadresHet tekenpatroon %s zal worden vervangen door de naam van het geluidbestandHet tekenpatroon %s zal worden vervangen door het webadresDe lijst zal worden leeggemaakt en alle ingevulde elementen zullen verloren gaan.De notitie is veranderd.DikDunDeze rekenmachine ondersteunt alleen data na jaar 1.Dit is geen Osmo reservekopiebestandTijgerTijdTijdopmaakTijdperiodeTijd om op te tellen of af te trekkenTijdlijnNaar (uur)VandaagAfstand tot vandaagSchakel dagnotitiepaneelSchakel spellingcontrole omMorgenBovenVertalersTypeOnderstreeptOnbekendGebruik datumperiodeGebruik het eerste dossierveld als kopGebruik systeemopmaak voor datum en tijdGeldigWaardeVerticaalMaagdZichtbare kolommenZichtbare kolommen in verjaardagenbladeraarZichtbare gebeurtenissenWWWWWW 2WWW 3WWW 4Afnemende maanAfnemende maanWaarschuwingGolfWassende maanWassende maanWebbladeraarWeeknummerWeek begint op maandagWeekeindedagenKleur van weekeindedagenWekenWitte tekensWoordenWerkWerkadresPlaats werkWerklandTelefoon werkWerktelefoon 2Werktelefoon 3Werktelefoon 4Postcode werkadresWerkprovincieJJJJ-DD-MMJJJJ-MM-DDJaarJaarinformatieJarenJaDierenriemtekenafgekorte naam van maandafgekorte naam van weekdagactiveer zoekveldoptellencontactpersoon toevoegennotitie toevoegentaak toevoegenken achtergrondkleur toe aan dagnotitiehoofdlettergevoeligverander categoriefilterverander dagverander maandverander zoekmodusverander jaarselectie-attributen wissensluit paneel voor contactpersoondetailssluit bewerkersluit volledig-jaar-kalendersluit notitiebewerkersluit taakinformatiepaneelgecompileerd opcontactpersoon toegevoegdcontactpersonen toegevoegdcontactpersoon geëxporteerdcontactpersonen geëxporteerddatum-rekenmachinedagdagendagnotities-bladeraardag van de maanddag van de maand zonder voorloopnullendag tot einde van jaardagen tot einde van jaarcontactpersoon bewerkenbewerk notitienaam en -categorietaak bewerkenondersteuning voor versleuteling staat uitingevuld elementingevulde elementengebeurtenisgebeurtenissengebeurtenis geëxporteerdgebeurtenissen geëxporteerdsluit afzoek tekstvolledige naam van maandvolledige naam van weekdaguururenureniCalender-gebeurtenisseniCalendar-uitvoeriCalendar-bestandeniCalendar-ondersteuningSpring naar datumminuutminutenminutenmaandmaandenGeen ingevulde elementenvannotitie openenofuitgesteldcontactpersoon verwijderenverwijder dagnotitienotitie verwijderentaak verwijderennaar beneden afgerondnotitie opslaanblader door de inhoud van het daginformatiepaneelsecondesecondenselecteer huidige datumstel huidig jaar inlaat het 'over'-venster zienlaat volledig-jaar-kalender zienlaat optievenster zienaftrekkenschakel pagina in opties en 'over'-tabbladschakel naar volgende tabschakel naar vorige tabschakel naar geselecteerde paginataken geëxporteerdde laatste dag van het jaartijd wordt genegeerdkerenvandaagschakel alternatieve weergaveschakel vetschakel kalenders voor de vorige en volgende maandSchermvullende modus omschakelenschakel verborgen takenschakel accentuerenschakel schuingedruktzichtbaarheid persoonlijke gegevens omschakelenschakel doorgestreeptschakel onderstreeptversiewerd geborenweekwekenweekeindedagweekeindedagenweekeindedag genegeerdweekeindedagen genegeerdwerkdagwerkdagenjaarjarenjaarinformatiejaar oudjaren oudjaar met eeuwjaar zonder eeuwosmo-0.4.2/po/Makefile.in0000664000175000017500000003155513204317526012114 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@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 = po ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libxml2.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ GSPELL_CFLAGS = @GSPELL_CFLAGS@ GSPELL_LIBS = @GSPELL_LIBS@ GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ GTHREAD_LIBS = @GTHREAD_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@ LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@ LIBICAL_CFLAGS = @LIBICAL_CFLAGS@ LIBICAL_LIBS = @LIBICAL_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBWEBKIT_CFLAGS = @LIBWEBKIT_CFLAGS@ LIBWEBKIT_LIBS = @LIBWEBKIT_LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = msgfmt OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGO_1_20_CFLAGS = @PANGO_1_20_CFLAGS@ PANGO_1_20_LIBS = @PANGO_1_20_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XML2_CONFIG = @XML2_CONFIG@ XML_CPPFLAGS = @XML_CPPFLAGS@ XML_LIBS = @XML_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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_alias = @build_alias@ builddir = @builddir@ configdir = @configdir@ configpath = @configpath@ 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@ 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@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = -Wno-portability DOMAIN = osmo POTFILES = $(wildcard ../src/*.c ../src/*.h) XGETTEXT = xgettext MSGMERGE = msgmerge XGETTEXT_OPTS = --keyword=_ --keyword=N_ --keyword=X_ --add-comments=TRANSLATORS: --no-location POFILES = bg.po ca.po cs.po da.po de.po el.po en_GB.po es.po fi.po fr.po gl.po gl_ES.po he.po hu.po \ it.po ja.po lt.po nl.po pl.po pt.po pt_BR.po ro.po ru.po sr.po sv.po te.po tr.po uk.po \ ur.po ur_PK.po zh_CN.po MOFILES = $(POFILES:.po=.mo) EXTRA_DIST = $(POFILES) $(MOFILES) LOCALEDIR = $(datadir)/locale 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 ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign po/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 $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(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 "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$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: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: 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 pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-local \ cscopelist-am ctags-am distclean distclean-generic distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local 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 \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-local .PRECIOUS: Makefile all: $(MOFILES) update-po: $(DOMAIN).pot $(POFILES) $(MOFILES) %.mo: skip @po=$(@:.mo=.po); if test $$po -nt $@ ; then $(MSGFMT) -c --statistics $$po -o $@; echo "$@ updated."; fi %.po: $(DOMAIN).pot $(MSGMERGE) $@ $< -o $@.in && mv $@.in $@ $(DOMAIN).pot: $(POTFILES) @$(XGETTEXT) $(XGETTEXT_OPTS) $(POTFILES) -o $(DOMAIN).pot install-data-local: $(MOFILES) for i in $(MOFILES); do \ lang=`echo $$i | sed 's/\.mo$$//'`; \ $(mkinstalldirs) ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES; \ $(INSTALL_DATA) $$i ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done uninstall-local: for i in $(MOFILES); do \ lang=`echo $$i | sed 's/\.mo$$//'`; \ rm -f ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done clean-local: rm -rf *.mo skip: # 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: osmo-0.4.2/po/ru.mo0000664000175000017500000012652313204320602011017 00000000000000$Y,(5 555 5 5.566676G6O6X6 \6 j6x6 66 6 6 6 686 6 77 "707G7(X7 77 77777&7$7 8818Q8`8f8k8 t88 888888 8 88*89(9 ?9M9\9c9y999"99 99 :: : ": /: <:I: f: ::::::: ::; ;-;>;O;U;.k;!; ;;;;; <<+< 4< ><K<S< [< f< r< ~< < <<< < < < <= = =%%=K= [= e=q== == == ==== = = >>>'>+.> Z> f> q>}>>>>>>>>>>??#?,?5? >?!L? n? |? ? ? ???????!@(@;@ K@U@ m@x@|@@@@@@ @@@@@@ AA$A)A-A >AIAZA_AhAoAtA }AA A AAAA A A AABBB+B0B9B?BFBKBSB[B`BuBB BB B B B B B B B B B C CC$C)C/C 6CCC JCTC[CdClC&uCCCCC CCC DDD%DBDSDcDlDuD|DD D D DD DD D DD DE EEEE$E)E/E 3E>E GEUE ZEfEmEtE |EEEEE EE EEE EEEF FF&F/F 8F CFMFVFYFnF*vFF"F!FFGGG G +G 5G ?GIG OG]GpGG7GGGoGgH xHH HHH(HH II1I4IPDP JPWP]PtPPPPP PP PPPP Q QQ!Q &Q"3QVQeQ kQ vQQ3Q3Q0Q6$R[RqRwR1|RRRR R RRS SSS.SDSYSbS fSrS wSSSS#SSSSSS#T'T6T:T@TFTLTaTuT}TTT T TT TTTTUU U 'U 1U >U IU VU cU pU ~U U UU UUU UUUU V VV#V#,VPV_V vV VV VVV VV WW 2W>WNW`W&qW WW WWW WW XX!X2XCXSX eXrX zXX XX XXX X X X X)XY+Y[]:3]n]]#]h]#1^!U^Bw^1^ ^^_,!_N_a_y______w_H`[`q` `/`#`5`a4aCaXaaapa"aeaXbabxbGb>bc 0c=cWc5qcc&cc c c$ d.dNd hdCsdd%dd!e0eK7e-e-e3eKf/_ff ffffg#gCgQcgSg hyh,hh hhhi.i,Mizi&i*ii$idjRj<jk %k0k!?k ak'nkkk k kk kk ll$l=l/Ul3llllmm9mLm'Um}mmm*m(mn1n:nTnnnnn/nn oo7o%>odoTsooop?pRpBep%pp pp q q"q++q!Wq#yq#q#qqTr-Xr-r)r+r) s4s EsRsCcs5s8sJt>at#tt#tt uu(u DuQukuou!~u'u4uu v!v=vWvwvv5vv%vvw w #w.wEw#Lwpw ww w ww www#wxx8%x^xmx |x xxxx x4x( y4yCycyjyyyy!y!y!z4zIz$^zz zzzz zz zzzzz_{=c{%{ {{{ |)|>| S|t|6|'||}}"} 3}@}Z}!u}}}}#}%}~~&~ B~M~f~m~v~ ~ ~ ~~~~~"$ 3 @ MZ(k  %4Ga{̀))F9&7:߁6:APp!ł(%6nT.Ã!5Ԅ .4E8z%4 Z8{%Ά%0 Vct! ݇1/?  '5:p'ʉ;.Nn  ۊ  - N'[0CG@)^ Œ@όARl 0L!5Ww #Ǝ׎;(S|#Ϗ:<.Kk'Ր<::u e, .89gʒ( Jg;xP4:IC\ .˔;6Օ #1 U%b ϖA (5H!d = 1 O_ZWIX\$ڙ e7\ Ě@ !.>&M)t' ƛ ӛ,,LYS$=FSd֝"&<Jc ˞*֞DF\=t"ß   4G\zڠ* 1R[`4x;2-MmH Ԣ0&@*\$;ģ5 .V@Ƥդ(64)kF)ܥ: AL*b1Φ5 P]sx+̧32!fU&ި17M*I5 7?7w)$٪#"B#Qu_,?9\( ֬ 4 J+GI |SxE r5iY#o Hg)uJ0R2hO:*Q\T3ugpL_AU?lG -j;t,lA3ia!!+Z"DR\ksdNxmAFM)E,h9=I|D$/F&dln>Xoj my :NVFK(/]ws&%p ' rt|Z6BM@~TKv^z=^ vOV6RsU[-S [x5c!0C: f>][<7b?B X9p$DPr]t^48JCWG0-,+qdea8Kh_yyX~1)kb=*fH>(c2'Q{P *Ck e/7Tj59P1B@n$ 7#OHqz}{8b`}Qo~\wc1n3IEm qLSLMN'W_<VY(#`Y%&U.4i";"g%<@.f6zwv?u{;.`aeZ}W420 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled ondate calculatorday notes browserday of the monthday of the month without leading zerosedit contactedit note name and categoryedit taskencryption support is disabledexitfind textfull month namefull weekday namehoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminutesno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornyear infoyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2015-10-01 11:53+0200 Last-Translator: Sergey Panasenko Language-Team: Russian Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Poedit 1.7.5 0 чтобы отключитьЛёгкий персональный органайзерО программеДобавить контактДобавить заголовокДобавлять новую задачу при двойном клике на список задачДобавление заметкиДобавление задачиДобавление/вычитание даты и времениДополнительная информацияАдресДополнительноВозрастКоманда для напоминанияНапомнитьНапоминание!АлгоритмВсеВсе файлыВсе поляВсеВсе заметкиВсе ваши данные будут заменены содержимым файла резервной копии.Alt+СтрелкаAlt+a, ВставкаAlt+e, Ctrl+ВводAlt+r, DeleteВ других единицах времениАльтернативный видДругая копия OSMO уже запущена.Внешний видВодолейВы уверены?ОвенСтрелкаСтрелкиСтрелки вверх/внизСортировать по уменьшению в навигаторе заметок на деньПо крайней мере один модуль должен быть видимым.АвторизацияДоступные модулиФайл резервной копии успешно сохранен!Поддержка резервного копированияОсновноеЛучшаяДень рожденияДень рожденияЦвет указателя дней рожденьяДень рожденияСписок дней рожденияБлогЖирныйВнизуПоказать события iCalПоказать заметкиТрекер ОшибокБайтыCSV (значения через запятую) файлы (*.csv)КалендарьФайлы календаря (*.ics)Шрифт календаряЗаметки календаряРакНевозможно создать файл резервной копии!Невозможно создать файл.Невозможно открыть файл.Невозможно открыть заметку.Не удается выполнить выбранную операцию.Невозможно прочесть файл.КозерогС учетом регистраКатегорииКатегорияСотовый телефонСотовый телефон 2Сотовый телефон 3Сотовый телефон 4Установить граничный срок на следующий деньУстановить граничный срок на предыдущий деньСимволыПроверка событий, которые произошли с момента последнего запуска.По китайскому календарюКругГородОчиститьУбрать атрибутыОчистить текстЗакрыть панель контактовЗакрыть панель описанияЗакрыть редакторЗакрыть поиск записиЗакрыть панель заметокЦветЦвет тегов контактаЦвет пунктов, срок которых наступает в следующие 7 днейЦвет пунктов, срок которых наступает сегодняЦвет пунктов, которые просроченыЦвет ссылкиЦветаСтолбецНовые возможностиСжатиеПодробности контактаКонтактыПродолжить?ВкладСтранаСозданоCtrl+ВводCtrl+СтрВнизCtrl+PageUpCtrl+ПробелCtrl+Вверх/ВнизТекущая датаУказатель на текущий деньЦвет указателя текущего дняТекущий месяцТекущее времяТекущий годЦвет курсораТолщина курсораДД-ММ-ГГГГДатаИсходная дата и времяКалькулятор датыШрифт датыФормат датыСинтаксис формата датыФормат заголовка датыПериод датыДеньУказатель дняКатегории дняКатегории дняНазвание дняЗаметки на деньУказатель заметок на деньЗаметки на деньНомер дняЗадачи на деньДниДней до дня рожденияСтеретьУдалять завершенные задачи без подтвержденияСтереть заметкуПодразделениеОписаниеОтключить подчеркивание в ссылкахОтключеноВы действительно хотите продолжить?Вы хотите сохранить?ДокументСобакаЗавершенностьГотово!ДраконСрокСрок между двумя датамиЭлектронная почтаЭлектронная почта 2Электронная почта 3Электронная почта 4Почтовый клиентОШИБКА: Невозможно создать файл конфигурации.Редактировать категорииРедактирование контактаРедактирование записиРедактирование заметкиРедактирование задачиРедакторЭллипсВключитьОтображать календари других месяцевКурсор в виде прямоугольникаВключить звуковое уведомлениеВключить проверку орфографии в заметкахПоместить иконку в системный трейВключить подсказкиЗашифрованоШифрование заметокШифрованиеКонецВводВведите парольОшибкаОшибка печатиEscСобытиеУказатель событияЦвет дней с событиямиМаксимальная длинна событияСобытияЭкспортЭкспорт контактовЭкспорт задачЭкспорт в файл iCalБыстраяФаксПросьбы о новых возможностяхТип поляЭкспортируемые поляФайлИмя файлаФильтрНайтиЗакончилосьИмяПервая дата и времяИмяШрифтШрифтыПетухКруг (от руки)С (часа)ПолнолуниеСрокГодичный календарьБлизнецыОсновныеГлобальная команда оповещенияХорошаяГрафикаГруппаГруппыЗаяцХэшированиеПомощникиСкрытьСкрывать завершенные задачиСкрыть столбец группыВысокийВыделение цветомДомДомашний адресДом. ГородДом. СтранаДомашний телефонДомашний телефон 2Домашний телефон 3Домашний телефон 4Дом. ИндексДом. РегионНачало/конец строкиГоризонтальныйЛошадьЧасЧасыIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooИгнорировать напоминания задач, которые просроченыИгнорировать события заметок дняПропустить выходныеИмпортИмпорт контактовТип импортаНеверный пароль!ИнформацияИнформацияВведите имя файлаВставкаВставить текущие дату и времяВставить разделительВставить графикИнтернетИнтервалОбратитьКурсивРазмер шрифтаПерейти к датеКомбинации клавишЛаншафтБольшойФамилияПоследняя четвертьПоследние измененияФамилияСлойВисокосный годСлеваВлево, ВправоЛевВесыЛицензияСтрокиСтрокиНизкийММ-ДД-ГГГГММ/ДД/ГГГГСписки рассылкиПометкаДни с примечаниямиСреднийМинутаМинутыРазноеИзмененоИзменить ICAL параметрыОбезьянаМесяцНазвание месяцаМесяцыФаза ЛуныИмяИмениныИмениныГарнитураИмениныНоволуньеНовый контактНовая заметкаНовая задачаСледующий деньСледующий месяцСледующий годПрозвищеНетНи одного дня рожденияНет датыВосстановить данные будет невозможно.Нет изменений месяцаНет записей в выбранном файле.Не найдено задач для такой даты.Нет календарей№НетЗаметкаРедактор заметокШрифт заметокИмя заметкиТип заметкиЗаметкиНастройки заметокНечего импортировать.Число полей в записиКоличество днейПроверять события на такое число дней вперед (по умолчанию 0)Количество выходных днейКоличество недельOSMO был разработан, для удобства пользователей, поэтому имеет много комбинаций клавиш. Вот полный список:Открыть файл резервной копииДействиеНастройкиОрганизацияФайлы резервных копий Osmo(*.bck)Osmo будет перезагружен сейчас...Osmo должен быть перезагружен для того, чтобы изменения вступили в силу.Имя файла для выводаВывести в форматеПерекрыть локальные настройкиБыкЗаполнитьОриентация страницыСтрВверх/СтрВнизЗащита паролемПароли не совпадают!ЛичныеТелефоныФотографияРазмер фотографииСвиньяРыбыБез шифрованияПовторите парольПожалуйста, выберите адресПожалуйста, выберите хотя бы один день, когда периодичность включена.Пожалуйста, выберите сначала файл.ПортретИндексВремя отсрочкиПараметрыПредыдущий и следующий месяцПредыдущий деньПредыдущий месяцПредыдущий годНапечатать календарьНапечатать видимый список задачНастройка печатиПоддержка печатиПриоритетПрограммированиеПервая четвертьПодтверждениеВыходКрысаСтепень сжатияПовторите парольТолько для чтенияЗаписьПовторяющаяся задачаЗапомнить позицию курсораПомнить последнюю открытую страницуПомнить последнюю выбранную категориюНапомнить позжеНастройки напоминанияУдалить контактУдалить задачуПовторПовторять в течении следующих днейПовторить звуковое предупреждение.Очистить поляСбросить времяРезультатСправаСтрелецСохранить резервную копиюСохранять данные после каждого измененияСохранить заметкуСохранить задачиСкорпионПоискСекундаВторая дата и времяОтчествоСекундыВыбрать CSV файлВыбрать ICS файлВыбрать шрифт...Выбрать цветВыберите дату и времяВыбрать цвет дняВыбранные поляСоздать файлВыбрать фотографиюВыбранный контакт будет удален.Выбранная заметка будет удалена.Указанный файл существует! Перезаписать?Выбранный месяцВыбранный месяц и годВыбранная заметка будет удалена.Выбранная задача будет удалена.Выбранный годВыборВыборУстановить абсолютный путь до файлов настроек и данныхУстановить текущую датуУстановить текущее времяУстановить формат по умолчаниюУстановить времяОвцаПоказать OsmoПоказать дни рожденияКалендарьПоказать расположение контакта на картеКонтактыПоказывать названия дней неделиЖирный шрифт для задач с высшим приоритетомВ инфо панели дня показыватьЗаметкиНастройкипоказывать маленькое окно календаряПоказать задачиЗадачиПоказывать номера недельПростой вид годичного календаряОдновременно используются две или больше копии OSMO, это может привести к потере данных.МаленькийЗмеяПроигрывательПробелЯзык словаряПоддержка словарейНачалоЗапускать свернутымНачалосьРегионСтатистикаШаг (минут)ЗачеркнутыйЗачеркивать заметки прошедших днейКраткоСинтаксисСистемный трейПоложение вкладокТегиЗадачаДетали задачиЗадача была изменена или удалена.Шрифт задачиЗадачиСписок задачПараметры задачТелецОбразец %s - будет заменен на адрес электронной почтыОбразец %s - будет заменен на имя звукового файлаОбразец %s - будет заменен на гиперссылкуСписок будет очищен и все записи будут утрачены.Заметка изменилась.ТолстыйТонкийЭтот калькулятор поддерживает только даты позже 1 года.Это не файл резервной копии OsmoТигрВремяФормат времениПериод времениВремя для добавления или вычитанияГрафикДо (часа)СегодняДистанция до сегодняПанель заметок на деньПроверить орфографиюЗавтраВверхуПереводчикиТипПодчеркнутыйНеизвестноИспользовать период датИспользовать первую запись как заголовокИспользовать системный формат времени и датыЗадействованЗначениеВертикальныйДеваВидимые столбцыПоказать столбики в навигаторе дней рожденияВидимые событияВеб-страницаВеб-страница 2Веб-страница 3Веб-страница 4Убывает в полумесяцеМежду полнолунием и последней четвертьюПредупреждениеВолнаПрибывает в полумесяцеМежду первой четвертью и полнолуниемВеб-браузерНомер неделиНеделя начинается с понедельникаВыходныеЦвет выходных днейНеделиПробелыСловаРаботаРабочий адресРаб. ГородРаб. СтранаРабочий телефонРабочий телефон 2Рабочий телефон 3Рабочий телефон 4Раб. ИндексРаб. РегионГГГГ-ДД-ММГГГГ-ММ-ДДГодИнформация о годеГодыДаЗнак Зодиакасокращенное название месяцасокращенное название дня неделиактивизировать поле поискадобавитьдобавить контактдобавить заметкудобавить задачуназначить цвет фона для заметки на деньс учетом регистраизменить фильтр категорииизменить деньизменить месяцизменить способ поискаизменить годубрать все атрибутызакрыть панель деталей контактазакрыть редакторзакрыть календать всего годазакрыть редактор заметкизакрыть панель информации о задачесобранокалькулятор датынавигатор заметок днядень месяцадень месяца без нулей впередиредактировать контактредактировать имя заметки и категориюредактирование задачиподдержка шифрования отключенавыходнайти текстПолное название месяцаполное название дня неделичасовойiCalendar событияЭкспорт в iCalendarФайлы iCalendarПоддержка iCalendarперейти к датеминутынет записейизоткрыть заметкуилиотложеноудалить контактудалить заметки на деньудалить заметкуудалить задачуокруглено в меньшую сторонусохранить заметкупрокрутить содержимое в панели информации днявыбрать текущую датутекущий годпоказать окно "О программе"показать календать всего годапоказать окно настроеквычестьперейти на страницу настроек и описанияперейти на следующую вкладкуперейти на предыдущую вкладкуперейти на выбранную страницузадачи экспортированопоследний день годавремя игнорируетсяУстановить времясегодняальтернативный видВкл/выкл жирныйпоказать календари предыдущего и следующего месяцапоказать скрытые задачивыделение цветомвкл/выкл наклонсделать личные данные видимымизачеркнутыйвкл/выкл подчеркнутыйверсияродилсяинформация о годегод со столетиямигод без столетийosmo-0.4.2/po/uk.po0000664000175000017500000013134313204320601011006 00000000000000# Ukrainian translation of Osmo # This file is distributed under the same license as the Osmo package. # Sergey Panasenko , 2009. # Yury Bulka , 2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2015-10-01 14:42+0200\n" "Last-Translator: Yury Bulka \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 1.7.5\n" msgid "Colors" msgstr "Кольори" msgid "Color of contact tags" msgstr "Колір тегів контакту" msgid "Color of links" msgstr "Колір посилань" msgid "Font size" msgstr "Розмір шрифту" msgid "Name font size" msgstr "Розмір шрифту імені" msgid "Item font size" msgstr "Розмір шрифту пункту" msgid "Photo size" msgstr "Розмір фото" msgid "Small" msgstr "Маленький" msgid "Medium" msgstr "Середній" msgid "Large" msgstr "Великий" msgid "Hide group column" msgstr "Сховати стовпець групи" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Вік" msgid "Birthday date" msgstr "День народження" msgid "Zodiac sign" msgstr "Знак Зодіаку" msgid "Contacts" msgstr "Контакти" msgid "Appearance" msgstr "Зовнішний вигляд" msgid "Miscellaneous" msgstr "Різне" msgid "Groups" msgstr "Групи" msgid "Visible columns in birthday browser" msgstr "Видимі стовпці у навігаторі днів народження" msgid "Algorithm" msgstr "Алгоритм" msgid "Hashing" msgstr "Геш-функція" msgid "Compression" msgstr "Стискання" msgid "Ratio" msgstr "Якість стисткання" msgid "Fast" msgstr "Швидко" msgid "Good" msgstr "Добре" msgid "Best" msgstr "Найкраще" msgid "Type" msgstr "Тип" msgid "Category" msgstr "Категорія" msgid "Last changes" msgstr "Останні зміни" msgid "Created" msgstr "Створено" msgid "Remember the last selected category" msgstr "Запам'ятовувати останню обрану категорію" msgid "Use system format for date and time" msgstr "Використовувати системний формат дати та часу" msgid "Notes" msgstr "Примітки" msgid "Encryption" msgstr "Шифрування" msgid "Visible columns" msgstr "Видимі стовпчики" msgid "Categories" msgstr "Категорії" msgid "Notes options" msgstr "Налаштування приміток" msgid "Jump to date" msgstr "Перейти до дати" msgid "Day" msgstr "День" msgid "Month" msgstr "Місяць" msgid "Year" msgstr "Рік" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Обрати шрифт..." msgid "None" msgstr "Нічого" msgid "All items" msgstr "Всі" msgid "Question" msgstr "Питання" msgid "Information" msgstr "Інформація" msgid "Error" msgstr "Помилка" msgid "Warning" msgstr "Попередження" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Такий файл існує! Перезаписати?" msgid "Selected contact will be removed." msgstr "Обраний контакт буде вилучено." msgid "Are you sure?" msgstr "Ви впевнені?" msgid "No date" msgstr "Нема дати" msgid "Select photo" msgstr "Оберіть фото" msgid "Address" msgstr "Адреса" msgid "Postcode" msgstr "Індекс" msgid "City" msgstr "Місто" msgid "State" msgstr "Регіон" msgid "Country" msgstr "Країна" msgid "Edit contact" msgstr "Редагувати контакт" msgid "Add contact" msgstr "Додати контакт" msgid "Personal" msgstr "Особисті" msgid "Group" msgstr "Група" msgid "Home" msgstr "Дім" msgid "Work" msgstr "Робота" msgid "Phones" msgstr "Телефони" msgid "Internet" msgstr "Інтернет" msgid "Additional info" msgstr "Додаткова інформація" msgid "_OK" msgstr "" msgid "no entries" msgstr "немає записів" msgid "entry" msgid_plural "entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "Calendar notes" msgstr "Примітки календаря" msgid "Search" msgstr "Пошук" msgid "Filter" msgstr "Фільтр" msgid "Current month" msgstr "Поточний місяць" msgid "Selected month" msgstr "Обраний місяць" msgid "Current year" msgstr "Поточний рік" msgid "Selected year" msgstr "Обраний рік" msgid "Selected month and year" msgstr "Обраний місяць та рік" msgid "All notes" msgstr "Усі примітки" msgid "Case sensitive" msgstr "З урахуванням регістру" msgid "Strikethrough past day notes" msgstr "Закреслювати примітки минулих днів" msgid "Date" msgstr "Дата" msgid "Note" msgstr "Примітка" msgid "_Close" msgstr "" msgid "Rat" msgstr "Пацюк" msgid "Ox" msgstr "Бик" msgid "Tiger" msgstr "Тигр" msgid "Hare" msgstr "Заєць" msgid "Dragon" msgstr "Дракон" msgid "Snake" msgstr "Змій" msgid "Horse" msgstr "Кінь" msgid "Sheep" msgstr "Вівця" msgid "Monkey" msgstr "Мавпа" msgid "Fowl" msgstr "Півень" msgid "Dog" msgstr "Собака" msgid "Pig" msgstr "Свиня" msgid "Unknown" msgstr "Невідомо" msgid "Aquarius" msgstr "Водолій" msgid "Pisces" msgstr "Риби" msgid "Aries" msgstr "Овен" msgid "Taurus" msgstr "Телець" msgid "Gemini" msgstr "Близнюки" msgid "Cancer" msgstr "Рак" msgid "Leo" msgstr "Лев" msgid "Virgo" msgstr "Діва" msgid "Libra" msgstr "Ваги" msgid "Scorpio" msgstr "Скорпіон" msgid "Sagittarius" msgstr "Стрілець" msgid "Capricorn" msgstr "Козеріг" msgid "Osmo has to be restarted to take effect." msgstr "Для застосування змін необхідно перезавантажити програму." msgid "Layout" msgstr "Макет" msgid "Vertical" msgstr "Вертикальний" msgid "Horizontal" msgstr "Горизонтальний" msgid "Tabs position" msgstr "Позиція вкладок" msgid "Left" msgstr "Ліворуч" msgid "Right" msgstr "Праворуч" msgid "Top" msgstr "Зверху" msgid "Bottom" msgstr "Знизу" msgid "Disable underline in links" msgstr "Вимкнути підкреслювання посилань" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Хоча б один модуль повинен бути видимий." msgid "Calendar" msgstr "Календар" msgid "Tasks" msgstr "Завдання" msgid "Override locale settings" msgstr "Перекрити налаштування локалі" msgid "Date format" msgstr "Формат дати" msgid "DD-MM-YYYY" msgstr "ДД-ММ-РРРР" msgid "MM-DD-YYYY" msgstr "ММ-ДД-РРРР" msgid "YYYY-MM-DD" msgstr "РРРР-ММ-ДД" msgid "YYYY-DD-MM" msgstr "РРРР-ДД-ММ" msgid "Time format" msgstr "Формат часу" msgid "hours" msgstr "години" msgid "Spell checker language" msgstr "Мова перевірки орфографії" msgid "Enable tooltips" msgstr "Ввімкнути підказки" msgid "Remember last selected page" msgstr "Запам'ятовувати останню обрану сторінку" msgid "Save data after every modification" msgstr "Зберігати дані після кожної зміни" msgid "Web browser" msgstr "Навігатор інтернету" msgid "E-mail client" msgstr "Клієнт електронної пошти" msgid "Sound player" msgstr "Програвач звуку" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Шаблон %s буде змінено на адресу посилання" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Шаблон %s буде змінено на e-mail адресу" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Шаблон %s буде змінено на назву аудіо файлу" msgid "Enable system tray" msgstr "Ввімкнути іконку у треї" msgid "Start minimised" msgstr "Запускати згорнутим" msgid "Ignore day note events" msgstr "Ігнорувати події приміток дня" msgid "General" msgstr "Основні" msgid "Hide" msgstr "Сховати" msgid "Helpers" msgstr "Помічники" msgid "System tray" msgstr "Системний лоток" msgid "Preferences" msgstr "Параметри" msgid "Syntax" msgstr "Синтаксис" msgid "abbreviated weekday name" msgstr "скорочена назва дня тижня" msgid "full weekday name" msgstr "повна назва дня тижня" msgid "abbreviated month name" msgstr "скорочена назва місяця" msgid "full month name" msgstr "повна назва місяця" msgid "day of the month" msgstr "день місяця" msgid "MM/DD/YY" msgstr "ММ/ДД/РРРР" msgid "day of the month without leading zeros" msgstr "день місяця без попередніх нулів" msgid "month" msgid_plural "months" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "year without century" msgstr "рік без століття" msgid "year with century" msgstr "рік з століттям" msgid "Date header format" msgstr "Формат дати заголовка" msgid "Set default format" msgstr "Типовий вихідний формат" msgid "Date format syntax" msgstr "Формат дати" msgid "Day note marker" msgstr "Позначка примітки на день" msgid "Event marker" msgstr "Позначка події" msgid "Circle" msgstr "Круг" msgid "Ellipse" msgstr "Еліпс" msgid "Wave" msgstr "Хвиля" msgid "Current day marker" msgstr "Позначка поточного дня" msgid "Arrow" msgstr "Стрілка" msgid "Free-hand circle" msgstr "Круг (від руки)" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Колір вихідних днів" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Колір курсору" msgid "Event marker color" msgstr "Колір днів з подіями" msgid "Current day marker color" msgstr "Колір поточного дня" msgid "Birthday marker color" msgstr "Колір дня народження" msgid "Date font" msgstr "Шрифт дати" msgid "Calendar font" msgstr "Шрифт календаря" msgid "Note font" msgstr "Шрифт примітки" msgid "Enable block cursor" msgstr "Курсор у вигляді прямокутника" msgid "Cursor thickness" msgstr "Ширина курсору" msgid "Thin" msgstr "Тонкий" msgid "Thick" msgstr "Товстий" msgid "Edit category" msgstr "Редагувати категорію" msgid "Color" msgstr "Колір" msgid "Name" msgstr "Ім'я" msgid "Select ICS file" msgstr "Обрати ICS-файл" msgid "All Files" msgstr "Усі файли" msgid "Calendar files (*.ics)" msgstr "Файл календаря (*.ics)" msgid "Modify ICAL parameters" msgstr "Змінити параметри ICAL" msgid "Filename" msgstr "Ім'я файлу" msgid "Options" msgstr "Опції" msgid "Disabled" msgstr "Вимкнено" msgid "Valid" msgstr "Прийнятий" msgid "Description" msgstr "Опис" msgid "Full date" msgstr "Повна дата" msgid "Mark" msgstr "Мітка" msgid "Week start on Monday" msgstr "Тиждень починаеться з понеділка" msgid "Show day names" msgstr "Показувати назви днів" msgid "No month change" msgstr "Не змінювати місяць" msgid "Show week numbers" msgstr "Показувати номери тижнів" msgid "Simple view in full-year calendar" msgstr "Простий вигляд у календарі року " msgid "Enable auxilary calendars" msgstr "Включити додаткові календарі" msgid "Ascending sorting in day notes browser" msgstr "Сортування в порядку зростання у навігаторі приміток дня" msgid "Enable spell checker in day notes" msgstr "Ввімкнути перевірку орфографії у примітках дня" msgid "Current time" msgstr "Поточний час" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Номер дня" msgid "Today distance" msgstr "Відстань до сьогодні" msgid "Marked days" msgstr "Відзначені дні" msgid "Week number" msgstr "Номер тижня" msgid "Weekend days" msgstr "Вихідні" msgid "Day category" msgstr "Категорії дня" msgid "Moon phase" msgstr "Фаза місяця" msgid "Day notes" msgstr "Примітки дня" msgid "Day categories" msgstr "Категорії дня" msgid "iCalendar files" msgstr "Файли iCalendar" msgid "Show in day info panel" msgstr "Показувати на панелі інформації про день" msgid "Tasks list" msgstr "Список завдань" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "№" msgid "Summary" msgstr "Стисло" msgid "Due date" msgstr "Термін" msgid "Priority" msgstr "Пріоритет " msgid "Error printing" msgstr "Помилка друку" msgid "No birthdays defined" msgstr "Жодного дня народження" msgid "Birthdays list" msgstr "Список днів народження" msgid "Days to birthday" msgstr "Дні народження" msgid "today" msgstr "сьогодні" msgid "Select CSV file" msgstr "Обрати CSV-файл" msgid "CSV (comma-separated values) files (*.csv)" msgstr "файли CSV (дані-через-сому) (*.csv)" msgid "Please select file first." msgstr "Будь ласка, спершу виберіть файл" msgid "Import contacts" msgstr "Імпортувати контакти" msgid "Import type" msgstr "Тип імпорту" msgid "File" msgstr "Файл" msgid "Input filename" msgstr "Введіть імя файлу" msgid "Import" msgstr "Імпорт" msgid "Nothing to import." msgstr "Нема чого імпортувати" msgid "contact added" msgid_plural "contacts added" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "of" msgstr "з" msgid "Record" msgstr "Запис" msgid "Number fields per record" msgstr "Число полів у записі" msgid "Use first record as header" msgstr "Використовувати перший запис як заголовок" msgid "Field type" msgstr "Тип поля" msgid "Value" msgstr "Значення" msgid "No records found in selected file." msgstr "Нема записів у обраному файлі." msgid "Cannot read file." msgstr "Неможливо прочитати файл." msgid "Cannot open file." msgstr "Неможливо відкрити файл." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Показати календар" msgid "Show tasks" msgstr "Показати завдання" msgid "Show contacts" msgstr "Показати контакти" msgid "Show notes" msgstr "Показати примітки" msgid "Show options" msgstr "Показати параметри" msgid "Quit" msgstr "Вихід" msgid "Show small calendar window" msgstr "Показати вікно маленького календарика" msgid "Check for events since last run" msgstr "Перевірка подій, які сталися з моменту останнього запуску" msgid "Number of days to check forward for events (default: 0)" msgstr "Перевіряти події на таке число днів вперед (за замовчуванням: 0)" msgid "Set absolute path for settings and data files" msgstr "Встановити абсолютний шлях до файлів налаштувань та даних" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ПОМИЛКА: Неможливо створити файл конфігурації" msgid "Another copy of OSMO is already running." msgstr "Інша копія OSMO уже запущена." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "Паралельна робота кількох копій Osmo може спричинити втрату даних." msgid "Do you really want to continue?" msgstr "Ви справді бажаєте продовжити?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Низький" msgid "High" msgstr "Високий" msgid "Done!" msgstr "Зроблено!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "Cannot create file." msgstr "Неможливо створити файл" msgid "Select output file" msgstr "Обрати вихідний файл" msgid "Export contacts" msgstr "Експортувати контакти" msgid "Output format" msgstr "Вихідний формат" msgid "Add header" msgstr "Додати заголовок" msgid "Fields to export" msgstr "Поля до експорту" msgid "All" msgstr "Усі" msgid "Invert" msgstr "Інвертувати" msgid "Select fields" msgstr "Обрані поля" msgid "Output filename" msgstr "Назва вихідного файлу" msgid "Export" msgstr "Екпорт" msgid "Color of items that are due today" msgstr "Колір елементів, які мають відбутися сьогодні" msgid "Color of items that are due in the next 7 days" msgstr "Колір елементів, які мають відбутися протягом наступних 7 днів" msgid "Color of items that are past due" msgstr "Колір протермінованих подій" msgid "Task info font" msgstr "Шрифт інформації про завдання" msgid "Show in bold tasks with high priority" msgstr "Виділяти жирним шрифтом завдання високого пріоритету" msgid "Hide completed tasks" msgstr "Сховати завершені завдання" msgid "Delete completed tasks without confirmation" msgstr "Знищувати завершені завдання без перепитування" msgid "Add new task when double clicked on tasks list" msgstr "Додавати нове завдання при подвійному клацанні на список завдань" msgid "Postpone time" msgstr "Час відтермінування" msgid "minutes" msgstr "хвилини" msgid "0 for disable" msgstr "0 для вимкнення" msgid "Repeat sound alarm" msgstr "Повторювати звукове оповіщення" msgid "times" msgstr "разів" msgid "Global notification command" msgstr "Глобальна команда сповідомлення" msgid "Tasks options" msgstr "Налаштування завдання" msgid "Reminder options" msgstr "Налаштування нагадування" msgid "Insert timeline" msgstr "Додати графік" msgid "Timeline" msgstr "Графік часу" msgid "From (hour)" msgstr "Від (години)" msgid "Step (minutes)" msgstr "Крок (хвилини)" msgid "To (hour)" msgstr "До (години)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Будь ласка, оберіть принаймні один день, коли увімкнена періодичність." msgid "Set time" msgstr "Встановити час" msgid "Hour" msgstr "Година" msgid "Minute" msgstr "Хвилина" msgid "Today" msgstr "Сьогодні" msgid "Tomorrow" msgstr "Завтра" msgid "Selected task will be removed." msgstr "Обране завдання буде вилучено." msgid "Select date and time" msgstr "Оберіть дату та час" msgid "Enable sound notification" msgstr "Включити звукове сповіщення" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Нагадати" msgid "Days" msgstr "Дні" msgid "Hours" msgstr "Години" msgid "Minutes" msgstr "Хвилини" msgid "Alarm command" msgstr "Команда для нагадування" msgid "Date period" msgstr "Період дати" msgid "Months" msgstr "Місяці" msgid "Repeat" msgstr "Повтор" msgid "Repeat in the following days" msgstr "Повторювати протягом наступних днів" msgid "Time period" msgstr "Період часу" msgid "Start" msgstr "Початок" msgid "End" msgstr "Кінець" msgid "Interval" msgstr "Інтервал" msgid "Ignore alarm when task expired offline" msgstr "Ігнорувати нагадування для завдань, які вже протермінованя" msgid "Recurrent task" msgstr "Періодичне завдання" msgid "Enable" msgstr "Ввімкнути" msgid "Edit task" msgstr "Редагувати завдання" msgid "Add task" msgstr "Додати завдання" msgid "Basic" msgstr "Основне" msgid "Advanced" msgstr "Додатково" msgid "New Moon" msgstr "Новий місяць" msgid "Waxing Crescent Moon" msgstr "Між новим місяцем та першою чвертю" msgid "Quarter Moon" msgstr "Перша чверть" msgid "Waxing Gibbous Moon" msgstr "Між першою чвертю та повним місяцем" msgid "Full Moon" msgstr "Повний місяць" msgid "Waning Gibbous Moon" msgstr "Між повним місяцем та останньою чвертью " msgid "Last Quarter Moon" msgstr "Остання чверть" msgid "Waning Crescent Moon" msgstr "Переходить в півмісяць" msgid "Cannot create backup!" msgstr "Не можу створити резервну копію!" msgid "Save backup" msgstr "Зберегти резервну копію" msgid "Password protection" msgstr "Захист паролем" msgid "Enter password" msgstr "Введіть пароль" msgid "Re-enter password" msgstr "Введіть пароль ще раз" msgid "Please enter the password" msgstr "Будь ласка, введіть пароль" msgid "Passwords do not match!" msgstr "Паролі не збігаються!" msgid "Backup file saved successfully!" msgstr "Резервне копіювання успішно завершено!" msgid "Open backup file" msgstr "Відкрити файл резервної копії" msgid "Osmo backup files (*.bck)" msgstr "Файли резервних копій osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Це — не файл резервної копії Osmo" msgid "Incorrect password!" msgstr "Неприпустимий пароль!" msgid "All your data will be replaced with backup file content." msgstr "Всі ваші особисті дані будуть замінені на вміст файлу резервної копії." msgid "Osmo has to be restarted now..." msgstr "Osmo необхідно перезавантажити зараз..." msgid "Please select address" msgstr "Будь ласка, оберіть адресу" msgid "First name" msgstr "Ім'я" msgid "Last name" msgstr "Прізвище" msgid "Second name" msgstr "По-батькові" msgid "Nickname" msgstr "Псевдо" msgid "Tags" msgstr "Теґи" msgid "Name day date" msgstr "Іменини" msgid "Home address" msgstr "Домашня адреса" msgid "Home postcode" msgstr "Дом. Індекс" msgid "Home city" msgstr "Дом. Місто" msgid "Home state" msgstr "Дом. Регіон" msgid "Home country" msgstr "Дом. Країна" msgid "Organization" msgstr "Організація" msgid "Department" msgstr "Підрозділ" msgid "Work address" msgstr "Робоча адреса" msgid "Work postcode" msgstr "Роб. Індекс" msgid "Work city" msgstr "Роб. Місто" msgid "Work state" msgstr "Роб. Регіон" msgid "Work country" msgstr "Роб. Країна" msgid "Fax" msgstr "Факс" msgid "Home phone" msgstr "Дом. телефон" msgid "Home phone 2" msgstr "Дом. телефон 2" msgid "Home phone 3" msgstr "Дом. телефон 3" msgid "Home phone 4" msgstr "Дом. телефон 4" msgid "Work phone" msgstr "Роб. телефон" msgid "Work phone 2" msgstr "Роб. телефон 2" msgid "Work phone 3" msgstr "Роб. телефон 3" msgid "Work phone 4" msgstr "Роб. телефон 4" msgid "Cell phone" msgstr "Моб. телефон" msgid "Cell phone 2" msgstr "Моб. телефон 2" msgid "Cell phone 3" msgstr "Моб. телефон 3" msgid "Cell phone 4" msgstr "Моб. телефон 4" msgid "E-Mail" msgstr "Електронна пошта" msgid "E-Mail 2" msgstr "Електронна пошта 2" msgid "E-Mail 3" msgstr "Електронна пошта 3" msgid "E-Mail 4" msgstr "Електронна пошта 4" msgid "WWW" msgstr "Вебсайт" msgid "WWW 2" msgstr "Вебсайт 2" msgid "WWW 3" msgstr "Вебсайт 3" msgid "WWW 4" msgstr "Вебсайт 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Блоґ" msgid "Photo" msgstr "Фотографія" msgid "New contact" msgstr "Новий контакт" msgid "Remove contact" msgstr "Вилучити контакт" msgid "Show birthdays" msgstr "Показати дні народження" msgid "Show contact location on the map" msgstr "Показати розташування контакту на карті" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Про" msgid "Clear" msgstr "Очистити" msgid "First Name" msgstr "Ім'я" msgid "Last Name" msgstr "Прізвище" msgid "All fields" msgstr "Всі поля" msgid "Contact details" msgstr "Підробиці контакту" msgid "Close contact panel" msgstr "Закрити панель контактів" msgid "The note has changed." msgstr "Примітка була змінена." msgid "Do you want to save it?" msgstr "Ви бажаете зберегти її?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Слова" msgid "Lines" msgstr "Рядки" msgid "Characters" msgstr "Символи" msgid "White characters" msgstr "Пробіли" msgid "Bytes" msgstr "Байти" msgid "Document" msgstr "Документ" msgid "Selection" msgstr "Вибір" msgid "Modified" msgstr "Змінено" msgid "New note" msgstr "Нова примітка" msgid "Edit note" msgstr "Редагувати примітку" msgid "Delete note" msgstr "Видалити примітку" msgid "Save note" msgstr "Зберегти примітку" msgid "Find" msgstr "Знайти" msgid "Toggle spell checker" msgstr "Перевірити орфографію" msgid "Bold" msgstr "Жирний" msgid "Italic" msgstr "Курсив" msgid "Underline" msgstr "Підкреслений" msgid "Strikethrough" msgstr "Закреслений" msgid "Highlight" msgstr "Підсвічений" msgid "Clear attributes" msgstr "Стерти атрибути" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Вставити поточні дату та час" msgid "Insert separator" msgstr "Вставити розділювач" msgid "Statistics" msgstr "Статистика" msgid "Close editor" msgstr "Закрити редактор" msgid "Note name" msgstr "Ім'я примітки" msgid "Read-only" msgstr "Тільки для читання" msgid "Line" msgstr "Лінія" msgid "Column" msgstr "Стовпець" msgid "case sensitive" msgstr "чутливість до регістру" msgid "Close find entry" msgstr "Закрити поле пошуку" msgid "Edit entry" msgstr "Редагувати поле" msgid "Remember cursor position" msgstr "Запамятати позицію курсора" msgid "Selected note will be removed." msgstr "Обрана примітка буде знищена." msgid "No further data recovery will be possible." msgstr "Відновити дані буде неможливо." msgid "Add note" msgstr "Додати примітку" msgid "Plain" msgstr "Без шифрування" msgid "Encrypted" msgstr "Шифрована" msgid "Note type" msgstr "Тип примітки" msgid "Cannot open the note." msgstr "Неможливо відкрити примітку." msgid "encryption support is disabled" msgstr "підтримку шифрування вимкнено" msgid "Authorization" msgstr "Авторизація" msgid "year" msgid_plural "years" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "day" msgid_plural "days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "hour" msgid_plural "hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "minute" msgid_plural "minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "second" msgid_plural "seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "or" msgstr "чи" msgid "rounded down" msgstr "заокруглено до зменшення" msgid "week" msgid_plural "weeks" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "time is ignored" msgstr "час не враховано" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "This calculator only supports dates after year 1." msgstr "Цей калькулятор підтримує лише дати після 1 року." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "Date calculator" msgstr "Калькулятор дат" msgid "Current date" msgstr "Поточна дата" msgid "Set current date" msgstr "Встановити поточну дату" msgid "Second" msgstr "Секунда" msgid "Set current time" msgstr "Встановити поточний час" msgid "Reset time" msgstr "Скинути час" msgid "First date and time" msgstr "Перші дата та час" msgid "Second date and time" msgstr "Другі дата та час" msgid "Alternative time units" msgstr "У інших одиницях часу" msgid "Result" msgstr "Результат" msgid "Duration between two dates" msgstr "Тривалість між двома датами" msgid "Operation" msgstr "Дія" msgid "add" msgstr "додати" msgid "subtract" msgstr "відняти" msgid "Date and time to add or subtract from" msgstr "Початкові дата та час" msgid "Years" msgstr "Роки" msgid "Weeks" msgstr "Неділі" msgid "Seconds" msgstr "Секунди" msgid "Ignore weekend days" msgstr "Ігнорувати вихідні дні" msgid "Reset fields" msgstr "Очистити поля" msgid "Time to add or subtract" msgstr "Час для додавання чи віднімання" msgid "Add to or subtract from a date" msgstr "Додати/відняти час" msgid "Cannot perform selected operation." msgstr "Не вдається виконати обрану операцію." msgid "Task has been modified or removed." msgstr "Завдання було змінено або вилучено." msgid "Remind me later" msgstr "Нагадати пізніше" msgid "Done" msgstr "Зроблено" msgid "Show task" msgstr "Показати завдання" msgid "Alarm warning!" msgstr "Нагадування!" msgid "postponed" msgstr "відкладено" msgid "Day note" msgstr "Примітка дня" msgid "Events" msgstr "Події" msgid "Event" msgstr "Подія" msgid "Task" msgstr "Завдання" msgid "Birthday" msgstr "День народження" msgid "Show Osmo" msgstr "Показати Osmo" msgid "event" msgid_plural "events" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "No valid calendars defined" msgstr "Календарі не визначено" msgid "iCalendar events" msgstr "Події iCalendar" msgid "Time" msgstr "Час" msgid "The list will be cleared and all entries will be lost." msgstr "Список буде очищений і всі записи будуть втрачені." msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "iCalendar export" msgstr "Експорт у iCalendar" msgid "Day Selector" msgstr "Обрати день" msgid "Use date period" msgstr "Використовувати період дат" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Немає завдань зі визначеними термінами." msgid "Save tasks" msgstr "Зберегти завдання" msgid "tasks exported" msgstr "завдання експортовано" msgid "was born" msgstr "народився" msgid "year old" msgid_plural "years old" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgid "the last day of the year" msgstr "останній день року" msgid "Day tasks" msgstr "Завдання дня" msgid "Selected day note will be removed." msgstr "Обрана примітка буде знищена." msgid "Continue?" msgstr "Продовжити?" msgid "Previous year" msgstr "Попередній рік" msgid "Previous month" msgstr "Попередній місяць" msgid "Previous day" msgstr "Попередній день" msgid "Next day" msgstr "Наступний день" msgid "Next month" msgstr "Наступний місяць" msgid "Next year" msgstr "Наступний рік" msgid "Full-year calendar" msgstr "Показати весь рік" msgid "Print calendar" msgstr "Надрукувати календар" msgid "Toggle day note panel" msgstr "Панель приміток на сьогодні" msgid "Select day color" msgstr "Вибрати колір дня" msgid "Browse notes" msgstr "Перегляд приміток" msgid "Browse iCal events" msgstr "Перегляд подій iCal" msgid "Export to iCal file" msgstr "Експорт у файл iCal " msgid "Previous and next month" msgstr "Попередній та наступний місяці" msgid "Close note panel" msgstr "Закрити панель приміток" msgid "Clear text" msgstr "Стерти текст" msgid "Info" msgstr "Інформація" msgid "Select color" msgstr "Обрати колір" msgid "Name day" msgstr "Іменини" msgid "Printing properties" msgstr "Параметри друку" msgid "Month name" msgstr "Назва місяця" msgid "Day name" msgstr "Назва дня" msgid "Fonts" msgstr "Шрифти" msgid "Birthdays" msgstr "Дні народження" msgid "Namedays" msgstr "Іменини" msgid "Visible events" msgstr "Видимі події" msgid "Padding" msgstr "Відступи" msgid "Event maximum length" msgstr "Максимальна довжина події" msgid "Page orientation:" msgstr "Орієнтація сторінки" msgid "Portrait" msgstr "Портрет" msgid "Landscape" msgstr "Ландшафт" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Високосний рік" msgid "Yes" msgstr "Так" msgid "No" msgstr "Ні" msgid "Chinese year animal" msgstr "За китайським календарем" msgid "Number of days" msgstr "Кількість днів" msgid "Number of weeks" msgstr "Кількість тижнів" msgid "Number of weekend days" msgstr "Кількість вихідних днів" msgid "Year info" msgstr "Інформація про рік" msgid "Alternative view" msgstr "Альтернативний вигляд" msgid "Started" msgstr "Почалося" msgid "Finished" msgstr "Закінчилося" msgid "New task" msgstr "Нове завдання" msgid "Remove task" msgstr "Вилучити завдання" msgid "Change due date to previous date" msgstr "Зміна терміну на попередню дату" msgid "Change due date to next date" msgstr "Зміна терміну на наступну дату" msgid "Export tasks" msgstr "Експорт завдань" msgid "Print visible tasks list" msgstr "Друкувати видимий список завдань" msgid "Task details" msgstr "Деталі завдання" msgid "Close description panel" msgstr "Закрити панель опису" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "перейти на попередню вкладку" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "перейти на наступну вкладку" msgid "switch to selected page" msgstr "перейти на обрану сторінку" msgid "show options window" msgstr "показати вікно параметрів" msgid "show about window" msgstr "про програму" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "перемкнути сторінку у вікні параметрів і вікні про osmo" msgid "exit" msgstr "вихід" msgid "Space" msgstr "Пробіл" msgid "select current date" msgstr "обрати поточну дату" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "зробити особисті дані наявними" msgid "Arrows" msgstr "Стрілки" msgid "change day" msgstr "змінити день" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "смужка прокрутки на панелі інформації дня" msgid "change month" msgstr "змінити місяць" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "змінити рік" msgid "toggle calendars for the previous and next month" msgstr "показати календарі попереднього та наступного місяця" msgid "day notes browser" msgstr "навігатор приміток дня" msgid "assign background color to day note" msgstr "призначити колір тла для приміток дня" msgid "date calculator" msgstr "калькулятор дати" msgid "show full-year calendar" msgstr "показати календар всього року" msgid "jump to date" msgstr "перейти до дати" msgid "Delete" msgstr "Видалити" msgid "remove day note" msgstr "знищити примітки дня" msgid "Alt+Arrows" msgstr "Alt+Arrows" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "закрити редактор" msgid "toggle bold" msgstr "жирний" msgid "toggle italic" msgstr "курсив" msgid "toggle underline" msgstr "підкреслений" msgid "toggle strikethrough" msgstr "закреслений" msgid "toggle highlight" msgstr "підсвічений" msgid "Arrows Up/Down" msgstr "Стрілки Up/Down" msgid "toggle alternative view" msgstr "альтернативний вигляд" msgid "year info" msgstr "інформація про рік" msgid "set current year" msgstr "Встановити поточний рік" msgid "close full-year calendar" msgstr "закрити календар всього року" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "додати завдання " msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "редагувати завдання" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "вилучити завдання" msgid "toggle hidden tasks" msgstr "відобразити приховані завдання" msgid "activate search field" msgstr "активувати поле пошуку" msgid "Left, Right" msgstr "Left, Right" msgid "change category filter" msgstr "змінити фільтр категоріі" msgid "close task info panel" msgstr "закрити панель інформації завдань" msgid "Insert" msgstr "Вставити" msgid "add contact" msgstr "додати контакт" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "редагувати контакт" msgid "remove contact" msgstr "вилучити контакт" msgid "change search mode" msgstr "змінити режим пошуку" msgid "close contact details panel" msgstr "закрити панель з деталями контакту" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "відкрити примітку" msgid "add note" msgstr "додати примітку" msgid "remove note" msgstr "знищити примітку" msgid "edit note name and category" msgstr "редагувати назву та категорію примітки" msgid "close note editor" msgstr "закрити редактор приміток" msgid "save note" msgstr "зберегти примітку" msgid "find text" msgstr "знайти текст" msgid "clear selection attributes" msgstr "прибрати усі атрибути" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO було розроблено для зручності користувачів, тому він має багато " "комбінацій клавіш. Ось повний список:" msgid "Note editor" msgstr "Редактор приміток" msgid "Selector" msgstr "Переглядач" msgid "Editor" msgstr "Редактор" msgid "A handy personal organizer" msgstr "Легкий особистий органайзер" msgid "compiled on" msgstr "зібрано" msgid "Programming" msgstr "Програмування" msgid "Graphics" msgstr "Графіка" msgid "Contributors" msgstr "Вклад" msgid "Translators" msgstr "Перекладачі" msgid "Mailing lists" msgstr "Списки розсилання" msgid "Bug tracker" msgstr "Відслідковування помилок" msgid "Feature requests" msgstr "Запити на нові функції" msgid "Available modules" msgstr "Доступні модулі" msgid "Compiled-in features" msgstr "Включені функції (під час компіляції)" msgid "iCalendar support" msgstr "Підтримка iCalendar" msgid "Encrypted notes support" msgstr "Підтримка шифрованих приміток" msgid "Backup support" msgstr "Підтримка резервного копіювання" msgid "Printing support" msgstr "Підтримка друку" msgid "Spell checker support" msgstr "Підтримка словників" msgid "version" msgstr "версія" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Комбінації клавіш" msgid "License" msgstr "Ліцензія" #~ msgid "handy personal organizer" #~ msgstr "корисний особистий органайзер" osmo-0.4.2/po/tr.mo0000664000175000017500000010107513204320602011011 00000000000000a$5,&3 33*3 03 <3.G3v3333333 3 33 34 4 4 4 $48.4g4~4(4 44 444&4$ 5 25@5R5r5555 55 555555 5 66*6@6I6 `6n6}66666"66 77 $7/7 87 C7 P7 ]7j7 7 7777777 88)8 A8N8_8p8v8.8!8 88 99 )959E9 N9 X9e9m9 u999 9 9 9 99 99%:*: :: D: P:\: `:m: |:::: : : :::+: ; ; #;/;J;j;;;;;;;;;;; ;!; < < &< 0<:<A<I<P<j<~<!<<< << < ===#=2= 8=E=X=m=t={= ===== ======= >> $>/>5>:> K> W> a>k>~>>>>>>>>>>>>>? ?? ? &? 0? =? H? U? b? o? }????? ?? ?????&?@@1@8@ H@T@h@ m@y@@@@@@@@@ @ @ AA A"A 4A AA KAUAZA^AdAlArA vA AA AAAA AAAAA AA BBB B*B3B EXE:nEEEE E EE FF #F1F@FYFmF~F F FFFFFFFFFF#G9GIGZG iGuG|GG G GGG G G"G H H!H)H0H7H LHXH`HpHH HHH HH H!H"I7IWIfI~II II-IJJ#J,J 2JNVN _NiNoN~NNNN NN NNNN#O(O.O4O:OJOYO]OcOiOoOOOOOO O OO OPP!P2P8P =P JP TP aP lP yP P P P P PP PPP PPP Q QQ#QCQRQ iQ tQQ QQQ QQQR %R1R"NRqRRR*R RR RR S 'S4SSS XS bSmSsSSSS SSS S SS ST T TT ,T 8T DT QT)[TTTTTT$TTU)UAUPUiUyUUU U0UUU U V-VBVSV[V dVoV(VV V VVVxX,X X X X<XY (Y!4YVY_Y eYpY uYYY YY Y Y Y YBY,ZGZ1]Z ZZ ZZZ-Z'Z [['[E[X[^[ e[s[![[[[[[[[\ \2$\W\^\x\\\\\\\'\!]4];] []g] p]}]]]4]4]^/^M^`^h^o^w^ ^^^^^^_ _;$_+`_,______ ```.` 4`A`P`e` ~` ` ` `` ``.` aa 0a >aLa Qa^apa a aaa aaaa,a)b2b :b3Eb'ybbb b bb bbc c c #c-c/=cmc~c cc cc c"ccd..d]d {d dd dd dddd d ee3e ;eHe_eweeee eee eeeeeff f-f3f KfWf _fif{ffff ffff f ffffgg$g 'g 1g =g Hg Tg bg pg~g ggggg gg ggggg0g h?h ]hih~hhhhhhhhh ii $i0i 8i DiPiVi^i fisii iiiiiii ii iiijj jj(jHjOjRjZj ]jjj mjwj jj jj j j j jjjj k%k=k+Sk*k"kkkkkkl lll,l%Dl jlGxllllm m m!&m,Hmummmmm m mmm n nn,n2n9n>nVn@lnnn nn nn o !o ,o9o&Iopooo o ooooooooop;p[ppppppppppqqq q'%q MqYqkqqquq|q qqqqq qqrr'rArPr$nr1r rrrr s+s13ses|s sssss(stt/2t bttt#tttt% uY0uuuuuu uu uvvv.v(>vgvmv |v vvv.vv vww'w4-w;bw1w5wxx!x='x%exxx x x$xx xxx y,yDyKy Py]yby qy|y"y+yyyyyz$z)z0z7z>zPzizpzvzzzzzzz {{!{({ -{ 9{ F{ R{`{p{{{ { { {{ {{{{{| || |+|K|j|||||!|#|}0}J}c}} }}}}}}~$~:~ K~l~s~x~~ ~~~~~~~ !05> CM] s -.76nǀڀ 8 Rs{- ́Ձށ ! & 3-LX^}c+qj `Fn9Td5z/;+Xf#o%Y@/AObM |ovQ/,0E3Z {A(lSNx;_ QcQ!8)w.ek j{)D4 2Z^I]9K~8PL' (tUxX"3>BAF4'JRVMNO6<wI-W6silB<K #$]sk26q?CRb\S^*I0T[+n )|%BEE.t58G*2r[d5&a]=SP;?y1@g!. #=\'a} HR3D74 p"PmH*eU9 -[0J :ChVy?,g7Ou(>\LKi$FGH"%aTMv U,1 NW:$7JZ1p~h!<Y=rW_&f>muY_z DGC`&`V: @0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnter passwordErrorError printingEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:Password protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectorSet absolute path for settings and data filesSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind texthourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow full-year calendarsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldProject-Id-Version: Osmo 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2009-08-16 10:55+0200 Last-Translator: Hasan Yılmaz Language-Team: Hedef Türkçe Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; etkisizleştirmek için 0Kullanışlı bir kişisel bilgi yöneticisiHakkındaKişi ekleBaşlık ekleGörevler listesine çift tıklandığında yeni görev ekleNot ekleGörev ekleTarihe ekle veya tarihten çıkarEk bilgiAdresGelişmişYaşAlarm komutuAlarm uyarısıAlarm uyarısı!AlgoritmaTümüTüm dosyalarTüm alanlarTüm öğelerTüm notlarBütün veriniz yedekleme dosyası içeriği ile değiştirilecek.Alternatif zaman birimleriAlternatif görünümOSMO'nun başka bir kopyası çalışır durumda.GörünümKovaEmin misiniz?KoçOkGünlük not tarayıcısında artan sıralamaEn az bir bir birim görünür olmalı.YetkiKullanılır birimlerYedek başarıyla kaydedildi!Yedekleme desteğiTemelEn iyiDoğum günüDoğum günü tarihiDoğum günü işaretleyici rengiDoğum günleriDoğum günü listesiBlogKoyuAltiCal olaylarına göz atNotlara göz atYanlış izleyiciSekiz ikilCSV (virgül-ayrımlı değerler) dosyalar (*.csv)TakvimTakvim dosyaları (*.ics)Takvim yazıyüzüTakvim notlarıYengeçYedek oluşturulamadı!Dosya yaratılamadı.Dosya açılamıyor.Not açılamıyor.Seçilen işlem gerçekleştirilemiyor.Dosya okunamıyor.OğlakBüyük-küçük harfe duyarlıKategorilerKategoriCep telefonuCep telefonu 2Cep telefonu 3Cep telefonu 4Yapılması gereken tarihi sonraki tarihe değiştirYapılması gereken tarihi önceki tarihe değiştirKarakterSon çalıştırmadan sonraki olayları denetleÇin hayvan yılıÇemberŞehirTemizleÖznitelikleri temizleMetni temizleKişi panelini kapatTanım panelini kapatDüzenleyiciyi kapatGiriş bulmayı kapatNot panelini kapatRenkKişi etiketlerinin rengiÖnümüzdeki 7 günde yapılması gereken öğelerin rengiBugün yapılması gereken öğelerin rengiYapılmış olması gereken öğelerin rengiLinklerin rengiRenklerDerleme özellikleriSıkıştırmaKişi ayrıntılarıKişilerDevam?Katkıda bulunanlarÜlkeOluşturulduŞimdiki tarihGeçerli gün imleciMevcut gün imleci rengiŞimdiki ayŞimdiki saatŞimdiki yılİmleç rengiİmleç kalınlığıGG-AA-YYYYTarihTarih ya da saat eklenecek veya çıkarılacakTarih hesaplayıcıTarih yazıyüzüTarih biçimiTarih dönemiGünGün SeçiciGün kategorileriGün kategorisiGün adıGünlük notGünlük not imleciGünlük notlarGün sayısıGünlük görevlerGünDoğum gününe kalan günTamamlanan görevleri doğrulama olmadan silNotu silBölümAçıklamaLinklerde altı çizgili kullanımı etkisizleştirGerçekten devam etmek istiyor musunuz?Kaydetmek istiyor musunuz?KöpekYapıldıYapıldı!EjderhaSon tarihİki tarih arasındaki süreE-postaE-posta 2E-posta 3E-posta 4E-posta istemciHATA: Yapılandırma dosyaları yaratılamıyorKişiyi düzenleGirişi düzenleNotu düzenleGörevi düzenleDüzenleyiciElipsEtkinleştirYardımcı takvimleri etkinleştirDikdörtgen imleci etkinleştirSesli bildirimi etkinleştirGünlük notlarda imla denetimini etkinleştirSistem tepsisini etkinleştirAraç ipuçlarını etkinleştirŞifrelenmişŞifrelenmiş not desteğiŞifrelemeBitişParola girHataYazdırmada hataOlayOlay imleciOlay imleci rengiOlayın azami uzunluğuOlaylarDışa aktarKişileri dışa aktarGörevleri dışa aktariCal dosyasına aktarHızlıFaksÖzellik istekleriAlan türüDışa aktarılacak alanlarDosyaDosya adıSüzgeçBulBittiİlk adBirinci tarih ve saatİlk adYazıyüzleriTavukElle çizilmiş çemberİlk (saat)DolunayTam tarihTüm-yıl takvimiİkizlerGenelGenel bildirim komutuİyiÇizgelemeGrupGruplarTavşanAdreslemeYardımcılarGizleTamamlanan görevleri gizleGrup sütununu gizleYüksekVurguluEvEv adresiŞehir (ev)Ülke (ev)Ev telefonuEv telefonu 2Ev telefonu 3Ev telefonu 4Posta kodu (ev)Bölge (ev)AtSaatSaatIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooÇevrimdışıyken görev biterse alarmı yoksayGünlük not olaylarını yoksayHafta sonu günlerini yok sayİçe aktarKişileri içe aktarİçe aktarma türüGeçersiz parola!BilgiBilgiGirdi dosyası adıDahil etŞimdiki tarihi ve saati ekleAyırıcı ekleZaman çizelgesi ekleİnternetAralıkTers çevirİtalikTarihe atlaKısayollarYatayBüyükSoyadıSon DördünSon değişikliklerSoyadıArtık yılSolAslanTeraziLisansSatırDüşükAA-GG-YYYYPosta listeleriİşaretleİşaretli günlerOrtaDakikaDakikaÇeşitliDeğiştirildiICAL değiştirgelerini belirleMaymunAyAy adıAyAyın evresiAdAd günüAd günü tarihiAdgünleriYeni AyYeni kişiYeni notYeni görevSonraki günSonraki aySonraki yılTakma adHayırDoğum günü tanımlanmadıTarih yokİlave veri kurtarma mümkün değil.Ay değişikliği yokSeçili dosyada hiçbir kayıt bulunamadı.Tanımlanmış tarihte görev bulunamadı.Geçerli tanımlanmış takvim yokNum.HiçbiriNotNot düzenleyiciNot yazıyüzüNot adıNot türüNotlarNot seçenekleriİçe aktarılacak yok.Kayıt başına düşen alan sayısıGün sayısıİlerideki olayların kontrol edileceği gün sayısı (varsayılan: 0)Haftasonu günleri sayısıHafta sayısıYedekleme dosyasını açİşlemSeçeneklerOrganizasyonOsmo yedekleme dosyaları (*.bck)Osmo şimdi yeniden başlatılmak zorunda...Çıktı dosyası adıÇıktı biçimiYerel ayarları geçersiz kılÖküzDolguSayfa yönü:Parola korumaParolalar eşleşmiyor!KişiselTelefonlarFotoğrafFotoğraf boyutuDomuzBalıkDüzLütfen parolayı girinLütfen adres seçin.Tekrarlama etkinleştirildiğinde lütfen en az bir gün seçin.Lütfen önce dosyayı seçin.DüşeyPosta koduErtelenecek zamanYeğlenenlerÖnceki ve sonraki ayÖnceki günÖnceki ayÖnceki yılTakvimi yazdırGörülür görevler listesini yazdırYazıcı özellikleriYazdırma desteğiÖncelikProgramlamaİlk DördünSoruÇıkFareOranParolayı yeniden girKayıtYinelenen görevİşaretçi konumunu hatırlaSeçili son sayfayı hatırlaSeçili son kategoriyi hatırlaDaha sonra hatırlatHatırlatıcı seçenekleriKişiyi kaldırGörevi kaldırYineleSonraki günlerde yineleSes uyarısını yineleAlanları sıfırlaSaati sıfırlaSonuçSağYayYedek kaydetHer değişiklikten sonra veriyi kaydetNotu kaydetGörevleri kaydetAkrepAraSaniyeİkinci tarih ve saatİkinci adSaniyeCSV dosyasını seçICS dosyası seçinBir yazıyüzü seçin...Renk seçTarih ve saat seçGün rengini seçinAlanları seçÇıktı dosyasını seçFotoğraf seçSeçili kişi kaldırılacak.Seçili günlük not kaldırılacak.Seçili dosya zaten var! Üzerine yazılsın mı?Seçili aySeçili ay ve yılSeçili not kaldırılacak.Seçili görev kaldırılacak.Seçili yılSeçiciVeri dosyaları ve ayarlar için salt yolu ayarlaŞimdiki tarihi ayarlaŞimdiki saati ayarlaSaati ayarlaKoyunOsmo'yu gösterDoğum günlerini gösterTakvimi gösterKişinin yerini harita üzerinde gösterKişileri gösterGün adlarını gösterYüksek öncelikte olan görevleri koyu gösterGünlük bilgi panelinde gösterNotları gösterSeçenekleri gösterKüçük takvim penceresini gösterGörevi gösterGörevleri gösterHafta sayısını gösterTüm-yıl takviminde basit görünümAynı anda iki veya daha çok çalışan OSMO kopyası veri kayıplarına sebep olabilir.KüçükYılanSes oynatıcıİmla denetimi diliİmla denetimi desteğiBaşlangıçKüçültülmüş başlatBaşlamışBölgeİstatistiklerTekrar (dakika)Üstü çizgiliÜstü çizgili geçmiş günlük notlarÖzetSistem tepsisiSekme konumuEtiketlerGörevGörev ayrıntılarıGörev değiştirilmiş ya da kaldırılmış.Görev bilgisi yazıyüzüGörevlerGörev listesiGörev seçenekleriBoğa%s örüntüsü, e-posta adresi ile değiştirilecek%s örüntüsü, ses dosyasının adı ile değiştirilecek%s örüntüsü, site adresi ile değiştirilecekBu liste temizlenecek ve tüm girişler kaybedilecek.Not değiştirildi.KalınİnceHesaplayıcı sadece 1 yıldan sonraki tarihleri destekliyor.Bu bir Osmo yedekleme dosyası değilKaplanZamanZaman biçimiZaman dönemiEklenecek ya da çıkarılacak zamanZaman çizelgesiSon (saat)BugünBugüne uzaklıkGünlük not panelini aç-kapaİmla denetimi geçişiYarınÜstÇevirmenlerTürAltı çizgiliBilinmeyenKullanılan tarih dönemiİlk kaydı başlık olarak kullanTarih ve saat için sistem biçimini kullanGeçerliDeğerBaşakGörünür sütunlarGörünür olaylarSiteSite 2Site 3Site 4Küçülen HilâlKüçülen Şişkin EvreUyarıDalgaBüyüyen HilâlBüyüyen Şişkin EvreAğ tarayıcıHafta sayısıHafta Pazartesi ile başlasınHaftasonu günleriHafta sonu günleri rengiHaftaBeyaz karakterlerKelimeİşİş adresiŞehir (iş)Ülke (iş)İş telefonuİş telefonu 2İş telefonu 3İş telefonu 4Posta kodu (iş)Bölge (iş)YYYY-GG-AAYYYY-AA-GGYılYıl bilgisiYılEvetBurçlararama alanını etkinleştireklekişi eklenot eklegörev eklegünlük nota artalan rengi atabüyük-küçük harf duyarlıkategori süzgecini değiştirgünü değiştirayı değiştirarama kipini değiştiryılı değiştirseçimin özniteliklerini temizlekişi ayrıntıları panelini kapatdüzenleyiciyi kapattüm-yıl takvimini kapatnot düzenleyiciyi kapatgörev bilgi panelini kaparderlendiği tarihkişi eklendikişi dışa aktarıldıtarih hesaplayıcıgüngünlük not gezginigün kaldı, yıl sonuna kadar kişi düzenlenot adını ve kategorisini düzenlegörevi düzenleŞifreleme desteği etkin değilgirişolayolay dışa aktarıldıçıkmetni bulsaatsaatiCalendar olaylarıiCalendar dışa aktarımıiCalendar dosyalarıiCalendar desteğitarihe zıpladakikadakikaaygiriş olmadı'ınnotu açveyaertelendikişiyi kaldırgünlük notu kaldırnotu kaldırgörevi kaldıraşağı yuvarlandınotu kaydetgünlük bilgi panelinde içeriği kaydırırsaniyeşimdiki tarihi seçşimdiki yılı ayarlatüm-yıl takvimini gösterçıkarseçenekler ve hakkında sekmesinde sayfayı değiştirsonraki sekmeye geçönceki sekmeye geçseçili sayfaya geçgörev dışa aktarıldıyılın son günüzaman yok sayıldıkerebugünöteki görünümkoyulaştırtakvimlerde önceki ve sonraki ay bilgisini açıp kapargizli görevleri açıp kapatırvurgulaitalikkişisel veri görünürlüğünü değiştirüstünü çizaltını çizsürümdoğumluhaftaHafta sonu günüHafta sonu günü yok sayıldıiş günüyılyıl bilgisiyaşındaosmo-0.4.2/po/pt.mo0000664000175000017500000005455413204320601011017 00000000000000d 9### # ##### $$ $ $ $$ .$ 9$C$(Z$ $$ $$$$ $$$% %%)%.%3%*:%e%n% %%%%% % %% % % & &"&'&-& >&I&]& u&&&&.&!& '!'0'7' L'X'h' q' {'' ' ' ' '' ''%' ( ( %(1(5( D( N( Y(c(h(+y( ( ( ((()))$)*)1):)U)\)e)n) w) ) ) ) )))) ))****$* (*3*D*M* R*]* q*|* * *************++ +$+ )+ 6+ @+ M+ X+ e+ r+ + +++++ ++ +++++++,, ,+,2,B,K,R, Y, f,t, z,, , ,,,,,, , ,,,, ,--!-'- .-9- >-L- U-a-j-s- |- -----*--"-.. ". ,.6.<.O.h.w.o.. // !/./H/ X/f/i/}//// ///// / // 00 #0 /0<0E0J0N0T0f0m00 0 0 000 0 0 00001 1"1*1:1J1 [1 h1v1 1!11112'282>2 M2 [2i2%x22 2 2 22!2J 3W3]3c3s3{33 333 3 33 333 444/4541:4l4 r4~44 44444 4 444 5555-51575=5C5 K5 W5c5 x5555 5 5 5 5 5 5 5 5 6 6 6(6 -676=6 A6M6c6 g6s6|6#66 6 66 667 .7;7M7 c7o7"777*7 78 8 &848 98 C8N8T8 d8q8 8 88 8888 8 8 8 8899*9B9V9$_9999909:$:,: 5: @:K:n^:;;;<<'<!8<Z<q<x< ~<<<<<<!< = ==$=+-= Y=&g== ======= = >$> A>"L>"o> > > > > >>>???$? 8?E?_?y????.?? @)@A@*G@ r@~@ @ @@@ @ @ @@@ AA) AJA_AuAAA A AAAA0A B !B .B+:BfBxBBBBBBBB B B BB CC +C 9CGC]C|C CCCCCCC CC D D'D,DCDHD PD ZDdDvD~DD DDDDDDDDD EEEE4EJE_EpEEEEEEEEEF!F6FNFmFFFFFFF FFGGG%G.G=GNGUG]G}GGGGGGG G GGGGGGHH H &H2H 7HCH LH ZH dH pH }H HHHHH*HHII$I)I AINITIdIIII5J MJYJ iJ!wJJJJJJJ JK KK!K(KBKQK aK nK |K K KKKKKKKK'KL &L4LHL YLcL iL tLL L LLL LLLLM +M8M MMnM,M6M#M)N2NHN\NcNyNNN.N(N OO.O>O"\OVOOOOOP P P(PEPLPcP}PP'PPPPPPQ8 QBQHQXQ vQ QQQQQ Q Q Q'Q RRRR0R8RGRVReR kRyRRRRRRRS$S63BV|&h -\B|l7Ai?;=L+{m[ wfhr(" Im*5saCP#6}QFfK Z]k+LpMC:; gs/&yAK$[voJ24, @i!w9@1uO$k-./5Vc4Ud<I>bJn:_ze) {~38.RS\ baD}_vEl^nu^%,XWp1`Uq7HA handy personal organizerAboutAdd contactAdd headerAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAgeAlgorithmAllAll FilesAll fieldsAll itemsAlternative time unitsAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesAt least one module must be visible.AuthorizationBackup file saved successfully!BestBirthdayBirthday dateBirthdays listBlogBoldBottomCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCancerCannot create file.Cannot open file.Cannot read file.CapricornCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CityClearClear attributesClear textClose contact panelClose description panelClose editorClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCurrent dateCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDayDay categoriesDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientEdit contactEdit entryEdit noteEdit taskEnable block cursorEnable system trayEnable tooltipsEncryptionEnter passwordErrorExportExport contactsFastFaxField typeFields to exportFilenameFindFirst NameFirst date and timeFirst nameFowlFrom (hour)Full MoonFull-year calendarGeminiGeneralGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooImportImport contactsIncorrect password!InfoInformationInsertInsert timelineInternetInvertItalicJump to dateKey shortcutsLargeLast NameLast Quarter MoonLast changesLast nameLeftLeoLibraLicenseLowMM-DD-YYYYMarked daysMediumMinuteMinutesMiscellaneousModify ICAL parametersMonkeyMonthMonthsMoon phaseNameName day dateNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.NoneNoteNote fontNote nameNotesNothing to import.Number fields per recordNumber of daysNumber of weekend daysOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Output filenameOutput formatOxPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlease enter the passwordPostcodePreferencesPrevious dayPrevious monthPrevious yearPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRemember last selected pageRemove contactRemove taskReset fieldsReset timeResultRightSagittariusSave backupSave noteScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected file exist! Overwrite?Selected note will be removed.Selected task will be removed.Set current dateSet current timeSheepShow birthdaysShow calendarShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeStart minimisedStartedStateStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTaskTask detailsTask info fontTasksTasks optionsTaurusThe note has changed.ThickThinThis calculator only supports dates after year 1.TigerTime formatTime to add or subtractTimelineTo (hour)TodayToggle day note panelTomorrowTopTranslatorsUnderlineUnknownUse first record as headerValidValueVirgoVisible columnsWWWWWW 2WWW 3WWW 4WarningWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday till end of yeardays till end of yearedit contactedit note name and categoryedit taskentryentriesexitfind texthourhourshoursiCalendar filesjump to dateminuteminutesmonthmonthsno entriesofopen noteorremove contactremove day noteremove noteremove taskrounded downsave notesecondsecondsselect current dateset current yearshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagethe last day of the yeartoggle calendars for the previous and next monthtoggle hidden tasksversionwas bornweekweeksyearyearsyear oldyears oldProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-06 09:53+0000 Last-Translator: Bruno Castro Alves Language-Team: Portuguese Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Uma pequena grande agenda!SobreAdicionar contactoAdicionar cabeçalhoAdicionar a notaAdicionar TarefaAdicionar ou subtrair de uma dataInformação adicionalMoradaIdadeAlgoritmoTodosTodos os ficheirosTodos os camposTodos os itensUnidades de tempo alternativasO OSMO já está a ser executado.AparênciaAquárioTem a certeza?CarneiroPelo menos um módulo tem que estar activo.OrganizaçãoArquivo de backup salvado com sucesso!ÓptimoAniversárioData de aniversárioLista de aniversáriosBlogNegritoFundoFicheiro CVS (*.cvs)CalendárioFicheiros de calendário (*.ics)Tipo de letra do calendárioCaranguejoNão é possível criar o ficheiroNão é possível abrir o ficheiroNão é possível ler o ficheiroCapricórnioCategoriasCategoriaTelemóvelTelemóvel n.º 2Telemóvel n.º 3Telemóvel n.º 4CidadeLimparLimpar os atributosLimpar textoFechar o painel ContactosFechar painel informativoFechar o editorFechar painel de notasCorCor das tags dos contactosCor dos itens que expiram nos próximos 7 diasCor dos itens que expiram hojeCor dos itens que expiraramCor das hiperligaçõesCoresFuncionalidades escolhidas na compilaçãoCompressãoDetalhos do contactoContactosContinuar?ContribuidoresPaísData actualData actualCorrente anoCor do dia seleccionadoEspessura do contornoDD-MM-AAAADataData e hora de onde subtrair ou adicionarCalculadora de datasTipo de letra da dataFormato da dataDiaCategorias do diaNotas do diaDia númeroTarefas do diaDiasDias até ao aniversárioApagar tarefas completas sem pedir confirmaçãoApagar a notaDepartamentoDescriçãoDesactivar o sublinhado nas hiperligaçõesDeseja continuar?Deseja guardar?CãoFeitoFeito!DragãoData de términoDuração entre duas datasEmailEmail n.º 2Email n.º 3Email n.º 4Cliente de emailEditar contactoEditar entradaEditar a notaEditar TarefaActivar preenchimentoActivar área de notificaçãoActivar balões de sugestõesEncriptaçãoInsira a palavra-passeErroExportarExportar contactosRápidoFaxTipo de campoCampos a exportarNome do ficheiroPesquisarNomeData e hora de inícioNomeGalinhaDe (hora)Lua CheiaCalendário anualGémeosGeralBomGráficosGrupoGruposLebreTipo de encriptaçãoProgramas externosEsconderOcultar tarefas completasOcultar a coluna GruposAltaDestacarMoradaMorada de residênciaCidade de residênciaPaís de residênciaTelefone de casaTelefone de casa 2Telefone de casa 3Telefone de casa 4Código-postal de residênciaDistrito de residênciaCavaloHoraHorasContacto da rede AOLContacto da rede Gadu-GaduContacto da rede ICQContacto da rede JabberContacto da rede MSN MessengerContacto da rede SkypeContacto da rede TlenContacto da rede YahooImportarImportar contactosPalavra-passe incorrectaInfoInformaçãoInserirInserir cronogramaInternetInverterItálicoIr para a dataTeclas de atalhoGrandeApelidoÚltima lua em quarto-crescenteÚltimas alteraçõesApelidoEsquerdaLeãoBalançaLicençaBaixaMM-DD-AAAADias marcadosMédiaMinutoMinutosOutrasAlterar os parâmetros ICALMacacoMêsMesesFase da luaNomeDia do nomeLua NovaNovo contactoNova notaNova tarefaPróximo diaPróximo mêsPróximo anoAlcunhaNãoSem datas de aniversárioSem dataNão será possível recuperar mais dados.Sem mudança do mêsFicheiro sem entradas.NadaNotaTipo de letra das notasNome da notaNotasNada a importarNúmero de campos por registoNúmero de diasFim-de-semana númeroO OSMO foi desenvolvido tendo em mente a conveniência do usuário, por isso existem muitos atalhos de teclado. Aqui está a lista completa:Abrir arquivo de backupOperaçõesConfiguraçõesOrganizaçãoArquivo de backup do Osmo (*.bck)Nome do destinoFormato de destinoBoiProteção por senhaPalavras-passe não coincidem!PessoalTelefonesFotoTamanho da fotoPorcoPeixesPor favor, insira a senhaCódigo PostalConfiguraçõesDia anteriorMês anteriorAno anteriorPrioridadeProgramaçãoQuarto CrescentePerguntaSairRatoRácioReinsira a palavra-passeRegistoRecordar a última página seleccionadaApagar contactoApagar tarefaReiniciar os camposReiniciar a horaResultadoRightSagitárioSalvar backupGuardar a notaEscorpiãoPesquisarSegundoData e hora de términoNome do meioSegundosSeleccione o ficheiro CVSSeleccione o ficheiro ICSSeleccione o tipo de letraEscolher corSeleccione os camposSeleccione o ficheiro de destinoSeleccione a fotoOs contactos seleccionados serão removidos.O ficheiro seleccionado já existe. Deseja substituir?A nota seleccionada será removida.As tarefas seleccionadas serão removidasDefinir a data actualDefinir hora actualOvelhaMostrar aniversáriosMostrar calendárioMostrar contactosMostrar o nome dos diasMostrar tarefas com prioridade alta em negritoMostrar no painel de informação do diaMostrar notasMostrar opçõesMostrar tarefasMostrar o número das semanasVista simples no calendário anualA execução simultânea de duas ou mais cópias do OSMO pode originar perda de dados.PequenaCobraIniciar minimizadoIniciadaConcelhoIntervalo (em minutos)RiscadoRiscar notas do dia passadasResumoÁrea de notificaçãoPosição dos separadoresTarefaDetalhes da tarefaTipo de letra da informação da tarefaTarefasConfigurações das tarefasTouroA nota foi alteradaGrossoFinoEsta calculadora permite apenas datas a partir do ano 1.TigreFormato da dataTempo a adicionar ou subtrairCronogramaPara (hora)HojeMudar para painel Notas do DiaAmanhãTopoTradutoresSublinhadoDesconhecidoUsar o primeiro registo como cabeçalhoVálidoValorVirgemColunas visíveisWebsiteWebsite n.º 2Website n.º 3Website n.º 4AvisoNavegador webSemana númeroSemana começa na Segunda-FeiraFim-de-semana númeroCor dos dias de fim-de-semanaSemanasEmpresaMorada do local de trabalhoCidade do local de trabalhoPaís local de trabalhoTelefone do trabalhoTelefone do trabalho n.º 2Telefone do trabalho n.º 3Telefone do trabalho n.º 4Código-postal do local de trabalhoDistrito do local de trabalhoAAAA-DD-MMAAAA-MM-DDAnoInformação do anoAnosSimSigno do zodíacoactivar o campo de pesquisaadicionaradicionar contactoadicionar notaadicionar tarefadefinir uma cor de fundo para a nota do diamudar o filtro das categoriasmudar o diamudar o mêsmudar o modo de pesquisamudar o anolimpar atributos da selecçãofechar o painel de detalhe do contactofechar o editorFechar editor de notasfechar o painel de informação de tarefacompilado emcontacto adicionadocontactos adicionadoscontacto exportadoContactos exportadoscalculadora de datasdiadiasdia até ao final do anodias até ao final do anoeditar contactoeditar o nome e categoria da notaeditar tarefaentradaentradassairpesquisar textohorahorashoraFicheiros iCalendarmudar para outra dataminutominutosmêsmesessem entradasdeabrir notaouremover contactoapagar a nota do diaremover a notaremover tarefaarredondado por defeitoguardar contactosegundosegundosseleccionar a data actualdefinir o ano atualseleccionar o calendário anualmostrar janela de opçõessubtrairmudar a página nos separadores Configurações e Sobremudar para o próximo separadormudar para o separador anteriormudar para a página selecionadao último dia do anoalternar calendários para os anterior e próximo mesesmostrar/esconder tarefas ocultas versãonasceu asemanasemanasanoanosano de idadeanos de idadeosmo-0.4.2/po/ja.mo0000664000175000017500000011021213204320601010746 00000000000000$Y,(5 555 5 5.566676G6O6X6 \6 j6x6 66 6 6 6 686 6 77 "707G7(X7 77 77777&7$7 8818Q8`8f8k8 t88 888888 8 88*89(9 ?9M9\9c9y999"99 99 :: : ": /: <:I: f: ::::::: ::; ;-;>;O;U;.k;!; ;;;;; <<+< 4< ><K<S< [< f< r< ~< < <<< < < < <= = =%%=K= [= e=q== == == ==== = = >>>'>+.> Z> f> q>}>>>>>>>>>>??#?,?5? >?!L? n? |? ? ? ???????!@(@;@ K@U@ m@x@|@@@@@@ @@@@@@ AA$A)A-A >AIAZA_AhAoAtA }AA A AAAA A A AABBB+B0B9B?BFBKBSB[B`BuBB BB B B B B B B B B B C CC$C)C/C 6CCC JCTC[CdClC&uCCCCC CCC DDD%DBDSDcDlDuD|DD D D DD DD D DD DE EEEE$E)E/E 3E>E GEUE ZEfEmEtE |EEEEE EE EEE EEEF FF&F/F 8F CFMFVFYFnF*vFF"F!FFGGG G +G 5G ?GIG OG]GpGG7GGGoGgH xHH HHH(HH II1I4IPDP JPWP]PtPPPPP PP PPPP Q QQ!Q &Q"3QVQeQ kQ vQQ3Q3Q0Q6$R[RqRwR1|RRRR R RRS SSS.SDSYSbS fSrS wSSSS#SSSSSS#T'T6T:T@TFTLTaTuT}TTT T TT TTTTUU U 'U 1U >U IU VU cU pU ~U U UU UUU UUUU V VV#V#,VPV_V vV VV VVV VV WW 2W>WNW`W&qW WW WWW WW XX!X2XCXSX eXrX zXX XX XXX X X X X)XY+Y[\!\\\ ]E]c]s]'] ]] ]]]]]^(^/^?^R^h^Tx^ ^ ^^ ^_ _@&_g_ n_x_ ____-_L_8`?`?^```` ` `` `a aa&a *aKaaa ta2~aaaaa b-b'Ib!qbb-b!b b! c +c 8c EcRcacpcccc0ccc d dd'd$@dedd$dddd1d'-e$Uezee eeeeee eff f f #f/fAfTfdfwf f f fff ff-f g*g @gMg`g vggggg gggghhhh4h-;hihyhhhhhhhhh hiii&i=iVioii6iiij$j4j DjQjXj_j!{jj<jjk +k5k Qk [kekkk kkk kkkk kl$l`gn 6  /H9GGʃH![}FB҄ -!4V iv}$$݅  *&-Q *܆,AZpw{LJ   "5K[tňވ   &0I0_$Љ! 3 @M fs*֊!6 FSos$Ћ$ (>QUlЌ!Ԍ 4M] mz0ԍ-'4\KcȎ! )ELSl*ɏ!0CS Zdw J+GI |SxE r5iY#o Hg)uJ0R2hO:*Q\T3ugpL_AU?lG -j;t,lA3ia!!+Z"DR\ksdNxmAFM)E,h9=I|D$/F&dln>Xoj my :NVFK(/]ws&%p ' rt|Z6BM@~TKv^z=^ vOV6RsU[-S [x5c!0C: f>][<7b?B X9p$DPr]t^48JCWG0-,+qdea8Kh_yyX~1)kb=*fH>(c2'Q{P *Ck e/7Tj59P1B@n$ 7#OHqz}{8b`}Qo~\wc1n3IEm qLSLMN'W_<VY(#`Y%&U.4i";"g%<@.f6zwv?u{;.`aeZ}W420 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled ondate calculatorday notes browserday of the monthday of the month without leading zerosedit contactedit note name and categoryedit taskencryption support is disabledexitfind textfull month namefull weekday namehoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminutesno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornyear infoyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.10 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-03-25 17:44+0900 Last-Translator: YoN Language-Team: Japanese Puppy Linux Team Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=0; 0 はできませんかんたん個人管理ツールバージョン情報コンタクトを追加ヘッダを追加仕事リストでダブルクリックして新しい仕事を追加メモを追加仕事を追加日付から足す、あるいは引く追加情報住所詳細設定年齢アラームコマンドアラーム警告アラーム警告!アルゴリズム全て全ファイル全フィールド全てのアイテム全てのメモ全てのデータはバックアップファイルの内容に置換されます。Alt+矢印Alt+a, InsertAlt+e, Ctrl+EnterAlt+r, Delete別の時間単位表示方式もう1つの OSMO のコピーが既に起動しています。外観水瓶座よろしいですか?牡羊座矢印矢印上/下矢印キー一日のメモブラウザで昇順ソート少なくとも1つのモジュールが見えなくてはなりません。承認利用可能なモジュールバックアップファイルの保存に成功しました!バックアップサポート基本最高誕生日誕生日誕生日マーカの色誕生日誕生日リストブログ太字下iCal イベントをブラウズメモをブラウズバグトラッカバイトCSVファイル (カンマ区切りの値) (*.csv)カレンダーCalendar ファイル (*.ics)カレンダのフォントカレンダーメモカニ座バックアップを作成できません!ファイルを作成できません。ファイルを開けません。メモを開けません。選択した操作は実行できません。ファイルを読めません。山羊座大文字小文字を区別するカテゴリカテゴリ携帯電話携帯電話 2携帯電話 3携帯電話 4期日を次の日付に変更期日を前の日付に変更文字最後の実行からイベントをチェック干支円市町村クリア属性をクリアテキストをクリアコンタクトパネルを閉じる説明パネルを閉じるエディタを閉じる見つけるエントリを閉じるメモパネルを閉じる色コンタクトタグの色今後7日間にする予定のアイテムの色今日する予定のアイテムの色過去の予定のアイテムの色リンクの色色コラムコンパイル済み機能圧縮コンタクトの詳細コンタクト続けますか?貢献者国作成Ctrl+EnterCtrl+PageDnCtrl+PageUpCtrl+スペースCtrl+上/下キー現在の日付現在日マーカ現在日マーカの色現在の月現在時刻現在の年カーソルの色カーソルの幅DD-MM-YYYY日付日付と時刻を足す、あるいは引く日付電卓日付のフォント日付形式日付形式構文日付ヘッダ形式最終日日日付セレクタ日のカテゴリ日カテゴリー日の名前一日のメモ日のメモマーカ一日のメモ日数一日の仕事日誕生日までの日数削除完了した仕事を確認しないで削除メモを削除部署説明リンクの下線を無効無効本当に続けますか?保存しますか?ドキュメント戌終了完了!辰期日2つの日付の期間EメールアドレスEメールアドレス 2Eメールアドレス 3Eメールアドレス 4Eメールクライアントエラー:設定ファイルを作成できませんカテゴリーを編集コンタクトを編集エントリを編集メモを編集仕事を編集エディタ楕円有効補助カレンダを有効ブロックカーソルを有効音声通知を有効一日のメモのスペルチェッカーを有効にするシステムトレイを有効ツールチップを有効暗号化暗号化メモサポート暗号化終わりEnterパスワードを入力エラー印刷エラーEscイベントイベントマーカイベントマーカの色イベント最大長イベントエクスポートコンタクトをエクスポートタスクをエクスポートiCal ファイルにエクスポート早いFAX機能要求フィールド形式エクスポートするフィールドファイルファイル名フィルタ見つける終了名 (ファーストネーム)最初の日付と時刻名 (ファーストネーム)フォントサイズフォント酉フリーハンド円(時) から満月完全な日付年間カレンダ双子座一般全体的な通知コマンド良グラフィックグループグループ卯ハッシュ法ヘルパ隠す完了した仕事を隠すグループコラムを隠す高ハイライト自宅住所 (個人)市町村 (個人)国 (個人)電話番号 (個人)電話番号 2 (個人)電話番号 3 (個人)電話番号 4 (個人)郵便番号 (個人)都道府県 (個人)Home/End横午時時IM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM Yahoo仕事がオフラインで終了したらアラームを無視する一日のメモイベントを無視する週末を無視インポートコンタクトをインポートインポート形式間違ったパスワードです!情報情報入力ファイル名挿入現在の日付と時刻を挿入セパレータを挿入時刻ラインを挿入インターネット間隔反転斜体アイテムのフォントサイズその日にジャンプキーショートカット横長大姓 (ラストネーム)下弦の月最近の変更姓 (ラストネーム)レイアウトうるう年左左,右獅子座てんびん座ライセンス行行低MM-DD-YYYYMM/DD/YYメーリングリストマークマークした日中分分その他修正ICAL パラメータを修正申月月の名前月月齢名前聖名祝日聖名祝日の日付名前のフォントサイズ聖名祝日新月新しいコンタクト新規メモ新しい仕事明日来月来年ニックネームいいえ誕生日が定義されていません日付なしこれ以上、データのリカバリーはできません。月は変更しない選択ファイルに記録は見つかりません。定義データ付きタスクが見つかりませんでした。有効なカレンダーが定義されていませんNo.なしメモメモエディタメモのフォントメモ名メモ形式メモメモオプションインポートするものはありません。記録毎の番号フィールド日数先のイベントをチェックする日数(初期値: 0)週末日数週数OSMOはユーザの利便性を考慮して作られ、たくさんのキーショートカットがあります。以下は全リストです:バックアップファイルを開く演算オプション組織Osmo バックアップファイル (*.bck)今すぐ Osmo を再起動しなければなりません...有効にするには Osmo を再起動しなければなりません...出力ファイル名出力形式ロケール設定を上書き丑間隔印刷の向き:PageUp/PageDnパスワード保護パスワードが一致しません!パーソナル電話番号写真写真のサイズ亥魚座平文パスワードを入力して下さい住所を選択して下さい。反復が有効な時は少なくとも1日を選択して下さい。最初にファイルを選択して下さい。縦長郵便番号延期時間設定前月と翌月前日前月前年カレンダーを印刷見える仕事リストを印刷印刷プロパティ印刷サポート重要度プログラミング上弦の月質問終了子比率パスワードを再入力読み込み専用記録反復する仕事カーソル位置を記憶最後の選択ページを記憶最後の選択カテゴリを記憶後で通知するお知らせオプションコンタクトを削除仕事を削除繰り返す次の日で繰り返す音声アラームを繰り返すフィールドをリセット時刻をリセット結果右射手座バックアップを保存修正ごとにデータを保存メモを保存タスクを保存蠍座検索秒2番目の日付と時刻姓 (セカンドネーム)秒CSVファイルを選択ICS ファイルを選択フォントを選択...色を選択日付と時刻を選択日付の色を選択フィールドを選択出力ファイルを選択写真を選択選択したコンタクトは削除されます。選択した一日のメモは削除されます。選択されたファイルは存在します!上書きしますか?選択された月選択された月と年選択したメモは削除されます。選択した仕事は削除されます。選択された年選択セレクタ設定とデータファイルに絶対パスをセット現在の日付をセット現在の時刻をセットデフォルトの形式をセット時間セット未Osmo を表示誕生日を表示カレンダーを表示地図でコンタクト場所を表示コンタクトを表示誕生日名を表示重要度の高い仕事を太字で表示一日の情報パネルに表示メモを表示オプションを表示小さいカレンダーウィンドウを表示仕事を表示仕事を表示週数を表示年間カレンダに簡単表示2つ以上の OSMO のコピーを同時に使うとデータ損失の原因となります。小巳サウンドプレーヤスペーススペルチェッカー言語スペルチェッカーサポート開始アイコン化で開始開始都道府県統計(分) 進めて取消線以前の日のメモに取消線概要構文システムトレイタブ位置タグ仕事仕事の詳細仕事は、変更あるいは削除されました。仕事情報のフォント仕事仕事リスト仕事オプション牡牛座「%s」パターンはEメールアドレスに置き換えられます「%s」パターンは音声ファイル名に置き換えられます「%s」パターンはウェブアドレスに置き換えられますリストはクリアされ、全てのエントリは失われます。メモは変更されました。太く細くこの電卓は1年目以降の日付だけをサポートします。これは Osmo バックアップファイルではありません寅時間時間形式期間足す、あるいは引く時間タイムライン(時) まで今日今日からの日数一日のメモパネルを切替えスペルチェッカーを切替え明日上翻訳者タイプ下線不明日付ピリオドを使う最初の記録をヘッダとして使う日付と時間にシステム形式を使う有効値縦乙女座目に見えるコラム誕生日ブラウザでコラムを表示表示イベントホームページホームページ 2ホームページ 3ホームページ 4欠けていく三日月欠けていく凸月警告波満ちていく三日月満ちていく凸月ウェブブラウザ週数週を月曜日から始める週末日週末日の色週空白文字単語勤務先住所 (勤務先)市町村 (勤務先)国 (勤務先)電話番号 (勤務先)電話番号 2 (勤務先)電話番号 3 (勤務先)電話番号 4 (勤務先)郵便番号 (勤務先)都道府県 (勤務先)YYYY-DD-MMYYYY-MM-DD年年情報年はい十二宮省略した月の名前省略した曜日名検索フィールドをアクティブにする足すコンタクトを追加メモを追加仕事を追加一日のメモの背景色を指定大文字小文字を区別カテゴリフィルタを変更日を変更月を変更検索モードを変更年を変更選択属性をクリアするコンタクト詳細パネルを閉じるエディタを閉じる年間カレンダを閉じるメモエディタを閉じる仕事情報パネルを閉じるコンパイル日付電卓一日のメモブラウザ日ゼロを前に置かない日コンタクトを編集メモ名とカテゴリーを編集仕事を編集暗号化サポートは無効です終了テキストを見つける完全な月の名前完全な曜日名時iCalendar イベントiCalendar のエクスポートiCalendar ファイルiCalendar サポート日付にジャンプ分エントリーはありませんのメモを開くまたは延期コンタクトを削除一日のメモを削除メモを削除仕事を削除四捨五入メモを保存日毎情報パネルの内容をスクロール現在の日付を選択現在の年を設定バージョン情報ウィンドウを表示年間カレンダを表示オプションウィンドウを表示引くオプションタブとバージョン情報タブでページを切替え次のタブに切替え前のタブに切替え選択ページに切替えエクスポートしたタスク大晦日時間は無視されます時間今日表示方式を切替え太字を切替え前月と翌月のカレンダを切替え隠された仕事を切替えハイライトを切替え斜体を切替え可視個人データを切替え取消線を切替え下線を切替えバージョン誕生年情報世紀のある年世紀のない年osmo-0.4.2/po/fi.po0000664000175000017500000010341713204320601010766 00000000000000# Finnish translation of Osmo. # This file is distributed under the same license as the Osmo package. # Toivo Miettinen , 2009. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2009-01-04 16:32+0200\n" "Last-Translator: Toivo Miettinen \n" "Language-Team: Finnish \n" "Language: fi\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" msgid "Colors" msgstr "Värit" msgid "Color of contact tags" msgstr "Yhteystietotagien väri" msgid "Color of links" msgstr "Linkkien väri" msgid "Font size" msgstr "" msgid "Name font size" msgstr "Nimifontin koko" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Kuvan koko" msgid "Small" msgstr "Pieni" msgid "Medium" msgstr "Keskikokoinen" msgid "Large" msgstr "Iso" msgid "Hide group column" msgstr "Piilota ryhmäsarake" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Ikä" msgid "Birthday date" msgstr "Syntymäpäivän ajankohta" msgid "Zodiac sign" msgstr "Horoskooppitunnus" msgid "Contacts" msgstr "Yhteystiedot" msgid "Appearance" msgstr "Ulkoasu" msgid "Miscellaneous" msgstr "Sekalaista" msgid "Groups" msgstr "Ryhmät" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Algoritmi" msgid "Hashing" msgstr "Hajauttaminen" msgid "Compression" msgstr "Tiivistäminen" msgid "Ratio" msgstr "Suhde" msgid "Fast" msgstr "Nopea" msgid "Good" msgstr "Hyvä" msgid "Best" msgstr "Paras" msgid "Type" msgstr "Tyyppi" msgid "Category" msgstr "Kategoria" msgid "Last changes" msgstr "Uusimmat muutokset" msgid "Created" msgstr "Luotu" msgid "Remember the last selected category" msgstr "Muista viimeksi valittu kategoria" msgid "Use system format for date and time" msgstr "Näytä päiväys ja aika järjestelmän muodossa" msgid "Notes" msgstr "Merkinnät" msgid "Encryption" msgstr "Salaus" msgid "Visible columns" msgstr "Näkyvät sarakkeet" msgid "Categories" msgstr "Kategoriat" msgid "Notes options" msgstr "Merkintöjen valinnat" msgid "Jump to date" msgstr "Hyppää päivään" msgid "Day" msgstr "Päivä" msgid "Month" msgstr "Kuukausi" msgid "Year" msgstr "Vuosi" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Valitsefontti..." msgid "None" msgstr "Ei mikään" msgid "All items" msgstr "Kaikki aiheet" msgid "Question" msgstr "Kysymys" msgid "Information" msgstr "Tiedot" msgid "Error" msgstr "Virhe" msgid "Warning" msgstr "Varoitus" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Valittu tiedosto on olemassa! Korvataanko se?" msgid "Selected contact will be removed." msgstr "Valittu yhteystieto poistetaan." msgid "Are you sure?" msgstr "Oletko varma?" msgid "No date" msgstr "Ei ajankohtaa" msgid "Select photo" msgstr "Valitse kuva" msgid "Address" msgstr "Osoite" msgid "Postcode" msgstr "Postinumero" msgid "City" msgstr "Postitoimipaikka" msgid "State" msgstr "Lääni t. osavaltio" msgid "Country" msgstr "Country" msgid "Edit contact" msgstr "Muokkaa yhteystieto" msgid "Add contact" msgstr "Lisää yhteystieto" msgid "Personal" msgstr "Henkilökohtaista" msgid "Group" msgstr "Ryhmä" msgid "Home" msgstr "Koti" msgid "Work" msgstr "Työpaikan " msgid "Phones" msgstr "Puhelimet" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Lisätietoja" msgid "_OK" msgstr "" msgid "no entries" msgstr "ei kirjauksia" msgid "entry" msgid_plural "entries" msgstr[0] "kirjaus" msgstr[1] "kirjausta" msgid "Calendar notes" msgstr "Kalenteri merkinnät" msgid "Search" msgstr "Haku" msgid "Filter" msgstr "Suodatin" msgid "Current month" msgstr "Nykyinen kuukausi" msgid "Selected month" msgstr "Valittu kuukausi" msgid "Current year" msgstr "Kuluva vuosi" msgid "Selected year" msgstr "Valittu vuosi" msgid "Selected month and year" msgstr "Valittu kuukausi ja vuosi" msgid "All notes" msgstr "Kaikki merkinnät" msgid "Case sensitive" msgstr "Sama kirjainkoko" msgid "Strikethrough past day notes" msgstr "Yliviivaa menneet päivämerkinnät" msgid "Date" msgstr "Ajankohta" msgid "Note" msgstr "Merkintä" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rotta" msgid "Ox" msgstr "Härkä" msgid "Tiger" msgstr "Tiikeri" msgid "Hare" msgstr "Jänis" msgid "Dragon" msgstr "Lohikäärme" msgid "Snake" msgstr "Käärme" msgid "Horse" msgstr "Hevonen" msgid "Sheep" msgstr "Lammas" msgid "Monkey" msgstr "Apina" msgid "Fowl" msgstr "Kukko" msgid "Dog" msgstr "Koira" msgid "Pig" msgstr "Sika" msgid "Unknown" msgstr "Tuntematon" msgid "Aquarius" msgstr "Vesimies" msgid "Pisces" msgstr "Kalat" msgid "Aries" msgstr "Oinas" msgid "Taurus" msgstr "Härkä" msgid "Gemini" msgstr "Kaksoset" msgid "Cancer" msgstr "Rapu" msgid "Leo" msgstr "Leijona" msgid "Virgo" msgstr "Neitsyt" msgid "Libra" msgstr "Vaaka" msgid "Scorpio" msgstr "Skorpioni" msgid "Sagittarius" msgstr "Jousimies" msgid "Capricorn" msgstr "Kauris" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Välilehtien paikka" msgid "Left" msgstr "Vasemmalla" msgid "Right" msgstr "Oikealla" msgid "Top" msgstr "Yläreunassa" msgid "Bottom" msgstr "Alareunassa" msgid "Disable underline in links" msgstr "Älä alleviivaa linkkejä" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Ainakin yhden moduulin tulee olla näkyvä." msgid "Calendar" msgstr "Kalenteri" msgid "Tasks" msgstr "Tehtävät" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "Ajan muoto" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "Ajan muoto" msgid "hours" msgstr "tunnit" msgid "Spell checker language" msgstr "" msgid "Enable tooltips" msgstr "Ota työkaluvihjeet käyttöön" msgid "Remember last selected page" msgstr "Muista viimeksi valittu sivu" msgid "Save data after every modification" msgstr "Tallenna data jokaisen muutoksen jälkeen" msgid "Web browser" msgstr "Web selain" msgid "E-mail client" msgstr "Sähköpostiohjelma" msgid "Sound player" msgstr "" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "Ota käyttöön ilmaisinalue" msgid "Start minimised" msgstr "Käynnistä pienennettynä" msgid "Ignore day note events" msgstr "" msgid "General" msgstr "Yleiset" msgid "Hide" msgstr "Piilota" msgid "Helpers" msgstr "Apurit" msgid "System tray" msgstr "Ilmaisinalue" msgid "Preferences" msgstr "Asetukset" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "kuukausi" msgstr[1] "kuukautta" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "Päivämerkinnän tunnus" msgid "Event marker" msgstr "Tapahtumatunnus" msgid "Circle" msgstr "Pallukka" msgid "Ellipse" msgstr "Soikio" msgid "Wave" msgstr "Aalto" msgid "Current day marker" msgstr "Tämän päivän tunnus" msgid "Arrow" msgstr "Nuoli" msgid "Free-hand circle" msgstr "Kaunokirjoituspallukka" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Viikonlopun päivien väri" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Kohdistimen väri" msgid "Event marker color" msgstr "Tapahtumatunnuksen väri" msgid "Current day marker color" msgstr "Tämän päivän tunnusväri" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "Ajankohdan fontti" msgid "Calendar font" msgstr "Kalenterin fontti" msgid "Note font" msgstr "Merkinnän fontti" msgid "Enable block cursor" msgstr "Ota käyttöön lohkokohdistin" msgid "Cursor thickness" msgstr "Kohdistimen paksuus" msgid "Thin" msgstr "Ohut" msgid "Thick" msgstr "Paksu" msgid "Edit category" msgstr "" msgid "Color" msgstr "Väri" msgid "Name" msgstr "Nimi" msgid "Select ICS file" msgstr "Valitse ICS tiedosto" msgid "All Files" msgstr "Kaikki tiedostot" msgid "Calendar files (*.ics)" msgstr "Kalenteri tiedostot (*.ics)" msgid "Modify ICAL parameters" msgstr "Määritä ICAL parametrit" msgid "Filename" msgstr "Tiedostonimi" msgid "Options" msgstr "Valinnat" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Kelvollinen" msgid "Description" msgstr "Kuvaus" msgid "Full date" msgstr "" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "Viikon 1. päivä on maanantai" msgid "Show day names" msgstr "Näytä päivien nimet" msgid "No month change" msgstr "Älä vaihda kuukautta" msgid "Show week numbers" msgstr "Näytä viikon numero" msgid "Simple view in full-year calendar" msgstr "Yksinkertainen näkymä koko vuoden kalenterissa" msgid "Enable auxilary calendars" msgstr "Ota käyttöön apukalenterit" msgid "Ascending sorting in day notes browser" msgstr "Nouseva järjestys päivämerkintäselaimessa" msgid "Enable spell checker in day notes" msgstr "" msgid "Current time" msgstr "Kellonaika nyt" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Päivä numero" msgid "Today distance" msgstr "Tämän päivän etäisyys" msgid "Marked days" msgstr "Merkityt päivät" msgid "Week number" msgstr "Viikon numero" msgid "Weekend days" msgstr "Viikonlopun päivät" msgid "Day category" msgstr "Päivä kategoria" msgid "Moon phase" msgstr "Kuun vaihe" msgid "Day notes" msgstr "Päivämerkinnät" msgid "Day categories" msgstr "Päiväkategoriat" msgid "iCalendar files" msgstr "iCalendar tiedostot" msgid "Show in day info panel" msgstr "Näytä päiväinfo-paneelissa" msgid "Tasks list" msgstr "" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "N:o" msgid "Summary" msgstr "Kooste" msgid "Due date" msgstr "Eräpäivä" msgid "Priority" msgstr "Prioriteetti" msgid "Error printing" msgstr "Virhe tulostettaessa" msgid "No birthdays defined" msgstr "Ei määritettyjä syntymäpäiviä " msgid "Birthdays list" msgstr "Syntymäpäiväluettelo" msgid "Days to birthday" msgstr "Päivää syntymäpäivään" msgid "today" msgstr "tänään" msgid "Select CSV file" msgstr "Valitse CSV tiedosto" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (comma-separated values) tiedostot (*.csv)" msgid "Please select file first." msgstr "Valitse tiedosto ensin." msgid "Import contacts" msgstr "Imptait yhteystiedot" msgid "Import type" msgstr "Nouda tyyppi" msgid "File" msgstr "Tiedosto" msgid "Input filename" msgstr "Anna tiedostonimi" msgid "Import" msgstr "Nouda" msgid "Nothing to import." msgstr "Ei noudettavaa." msgid "contact added" msgid_plural "contacts added" msgstr[0] "yhteystieto lisätty" msgstr[1] "yhteystietoa lisätty" msgid "of" msgstr " / " msgid "Record" msgstr "Merkintä" msgid "Number fields per record" msgstr "Numerokenttää per merkintä" msgid "Use first record as header" msgstr "Käytä ensimmäistä merkintää otsikkona" msgid "Field type" msgstr "Kentän tyyppi" msgid "Value" msgstr "Arvo" msgid "No records found in selected file." msgstr "Valitussa tiedostossa ei ole merkintöjä." msgid "Cannot read file." msgstr "En voi lukea tiedosto." msgid "Cannot open file." msgstr "En voi avaa tiedosto." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Näytä kalenteri" msgid "Show tasks" msgstr "Näytä tehtävät" msgid "Show contacts" msgstr "Näytä yhteystiedot" msgid "Show notes" msgstr "Näytä merkinnät" msgid "Show options" msgstr "Näytä valinnat" msgid "Quit" msgstr "Lopeta" msgid "Show small calendar window" msgstr "Näytä pieni kalenteri-ikkuna" msgid "Check for events since last run" msgstr "Tarkista edellisen käytön jälk. tapahtumat" msgid "Number of days to check forward for events (default: 0)" msgstr "Etsi tapahtumia eteenpäin pv (oletus: 0)" msgid "Set absolute path for settings and data files" msgstr "Aseta absoluuttinen polku asetuksille ja datatiedostoille" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "VIRHE: En voi luoda configurointitiedostostoja" msgid "Another copy of OSMO is already running." msgstr "Toinenkin Osmo on jo käynnissä." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Useamman kuin yhden OSMOn samanaikainen käyttö voi aiheuttaa tietojen " "menetyksen." msgid "Do you really want to continue?" msgstr "Haluatko varmasti jatkaa?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Matala" msgid "High" msgstr "Korkea" msgid "Done!" msgstr "Valmis!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "yhteystieto viety" msgstr[1] "yhteystietoa viety" msgid "Cannot create file." msgstr "En voi luoda tiedostoa." msgid "Select output file" msgstr "Valitse kohdetiedosto" msgid "Export contacts" msgstr "Vie yhteystiedot" msgid "Output format" msgstr "Kohdeformaatti" msgid "Add header" msgstr "Lisää otsikko" msgid "Fields to export" msgstr "Vietävät kentät" msgid "All" msgstr "Kaikki" msgid "Invert" msgstr "Käänteinen" msgid "Select fields" msgstr "Valitse kentät" msgid "Output filename" msgstr "Kohdetiedoston nimi" msgid "Export" msgstr "Vie" msgid "Color of items that are due today" msgstr "Tämän päivän aiheiden väri" msgid "Color of items that are due in the next 7 days" msgstr "Seuraavien 7 päivän aiheiden väri" msgid "Color of items that are past due" msgstr "Menneiden aiheiden väri" msgid "Task info font" msgstr "Tehtäväinfon fontti" msgid "Show in bold tasks with high priority" msgstr "Näytä lihavoinnilla tehtävät joilla korkea prioriteetti" msgid "Hide completed tasks" msgstr "Piilota suoritetut tehtävät" msgid "Delete completed tasks without confirmation" msgstr "Poista valmiit tehtävät kysymättä" msgid "Add new task when double clicked on tasks list" msgstr "Lisää uusi tehtävä kaksoisnapsauttamalla tehtäväluettelossa" msgid "Postpone time" msgstr "Lykkäämisaika" msgid "minutes" msgstr "minuuttia" msgid "0 for disable" msgstr "0 älä käytä" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "Globaali ilmoituskäsky" msgid "Tasks options" msgstr "Tehtävien valinnat" msgid "Reminder options" msgstr "Muistuttajan valinnat" msgid "Insert timeline" msgstr "Lisää aikajana" msgid "Timeline" msgstr "Aikajana" msgid "From (hour)" msgstr "Alkaen (tunti)" msgid "Step (minutes)" msgstr "Askel (minuuttia)" msgid "To (hour)" msgstr "Saakka (tunti)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Valitse ainakin yksi päivä kun toistuminen on käytössä." msgid "Set time" msgstr "Aseta aika" msgid "Hour" msgstr "Tunti" msgid "Minute" msgstr "Minuutti" msgid "Today" msgstr "Tämä päivä" msgid "Tomorrow" msgstr "Huominen" msgid "Selected task will be removed." msgstr "Valittu tehtävä poistetaan." msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Herätysvaroitus" msgid "Days" msgstr "Päivää" msgid "Hours" msgstr "Tuntia" msgid "Minutes" msgstr "Minuuttia" msgid "Alarm command" msgstr "Herätyskomento" msgid "Date period" msgstr "Ajankohtaperiodi" msgid "Months" msgstr "Kuukautta" msgid "Repeat" msgstr "Toista" msgid "Repeat in the following days" msgstr "Toista seuraavina päivinä" msgid "Time period" msgstr "Aikaperiodi" msgid "Start" msgstr "Aloita" msgid "End" msgstr "Lopeta" msgid "Interval" msgstr "Väli" msgid "Ignore alarm when task expired offline" msgstr "Hylkää herätys kun tehtävä vanhentunut yhteydettömänä" msgid "Recurrent task" msgstr "Toistuva tehtävä" msgid "Enable" msgstr "Ota käyttöön" msgid "Edit task" msgstr "Muokkaa tehtävää" msgid "Add task" msgstr "Lisää tehtävä" msgid "Basic" msgstr "" msgid "Advanced" msgstr "" msgid "New Moon" msgstr "Uusi kuu " msgid "Waxing Crescent Moon" msgstr "Uusi kuu" msgid "Quarter Moon" msgstr "Kasvava sirppi" msgid "Waxing Gibbous Moon" msgstr "Ensimmäinen neljännes" msgid "Full Moon" msgstr "Täysi kuu " msgid "Waning Gibbous Moon" msgstr "Vähenevä kupera kuu" msgid "Last Quarter Moon" msgstr "Viimeinen neljännes" msgid "Waning Crescent Moon" msgstr "Vähenevä sirppi" msgid "Cannot create backup!" msgstr "" msgid "Save backup" msgstr "" msgid "Password protection" msgstr "" msgid "Enter password" msgstr "Anna salasana" msgid "Re-enter password" msgstr "Anna salasana uudelleen" msgid "Please enter the password" msgstr "" msgid "Passwords do not match!" msgstr "Salasanat eivät täsmää!" msgid "Backup file saved successfully!" msgstr "" msgid "Open backup file" msgstr "" msgid "Osmo backup files (*.bck)" msgstr "" msgid "This is not Osmo backup file" msgstr "" msgid "Incorrect password!" msgstr "Virheellinen salasana!" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "Etunimi" msgid "Last name" msgstr "Sukunimi" msgid "Second name" msgstr "Toinen nimi" msgid "Nickname" msgstr "Lempinimi" msgid "Tags" msgstr "" msgid "Name day date" msgstr "Nimipäivä" msgid "Home address" msgstr "Kotiosoite" msgid "Home postcode" msgstr "Postinumero " msgid "Home city" msgstr "Postitoimipaikka" msgid "Home state" msgstr "Lääni t. osavaltio" msgid "Home country" msgstr "Kotimaa" msgid "Organization" msgstr "Organisaatio" msgid "Department" msgstr "Osasto" msgid "Work address" msgstr "Työpaikan osoite" msgid "Work postcode" msgstr "Työpaikan postinumero" msgid "Work city" msgstr "Työpaikan postitoimipaikka" msgid "Work state" msgstr "Työpaikan osavaltio t. lääni" msgid "Work country" msgstr "Työpaikan maa" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Kotipuhelin" msgid "Home phone 2" msgstr "Koti puhelin 2" msgid "Home phone 3" msgstr "Koti puhelin 3" msgid "Home phone 4" msgstr "Koti puhelin 4" msgid "Work phone" msgstr "Työpuhelin" msgid "Work phone 2" msgstr "Työpuhelin 2" msgid "Work phone 3" msgstr "Työpuhelin 3" msgid "Work phone 4" msgstr "Työpuhelin 4" msgid "Cell phone" msgstr "Matkapuhelin" msgid "Cell phone 2" msgstr "Matkapuhelin 2" msgid "Cell phone 3" msgstr "Matkapuhelin 3" msgid "Cell phone 4" msgstr "Matkapuhelin 4" msgid "E-Mail" msgstr "S-posti" msgid "E-Mail 2" msgstr "S-posti 2" msgid "E-Mail 3" msgstr "S-posti 3" msgid "E-Mail 4" msgstr "S-posti 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Kuva" msgid "New contact" msgstr "Uusi yhteystieto" msgid "Remove contact" msgstr "Poista yhteystieto" msgid "Show birthdays" msgstr "Näytä syntymäpäivät" msgid "Show contact location on the map" msgstr "" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Tietoja OSMOsta" msgid "Clear" msgstr "Tyhjennä" msgid "First Name" msgstr "Etunimi" msgid "Last Name" msgstr "Sukunimi" msgid "All fields" msgstr "Kaikki kentät" msgid "Contact details" msgstr "Yhteystietojen yksityiskohdat" msgid "Close contact panel" msgstr "Sulje yhteystietopaneeli" msgid "The note has changed." msgstr "Merkintä on muuttunut." msgid "Do you want to save it?" msgstr "Haluatko tallentaa sen?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Sanat" msgid "Lines" msgstr "Viivat" msgid "Characters" msgstr "Merkit" msgid "White characters" msgstr "Tyhjät merkit" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "Muutettu" msgid "New note" msgstr "Uusi merkintä" msgid "Edit note" msgstr "Muokkaa merkintää" msgid "Delete note" msgstr "Poista merkintä" msgid "Save note" msgstr "Tallenna merkintä" msgid "Find" msgstr "Etsi" msgid "Toggle spell checker" msgstr "" msgid "Bold" msgstr "Lihavoitu" msgid "Italic" msgstr "Kursivoitu" msgid "Underline" msgstr "Alleviivattu" msgid "Strikethrough" msgstr "Yliviivattu" msgid "Highlight" msgstr "Korostettu" msgid "Clear attributes" msgstr "Tyhjennä määritteet" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Lisää nykyinen päiväys ja aika" msgid "Insert separator" msgstr "Lisää erotin" msgid "Statistics" msgstr "Tilastot" msgid "Close editor" msgstr "Sulje muokkain" msgid "Note name" msgstr "Merkinnän nimi" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "aakkoskoosta riippuva" msgid "Close find entry" msgstr "Sulje hakusyöte" msgid "Edit entry" msgstr "Muokkaa kirjaus" msgid "Remember cursor position" msgstr "" msgid "Selected note will be removed." msgstr "Valittu merkintä poistetaan." msgid "No further data recovery will be possible." msgstr "Tämän jälkeen tietoja ei voida palauttaa." msgid "Add note" msgstr "Lisää merkintä" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "" msgid "Note type" msgstr "" msgid "Cannot open the note." msgstr "" msgid "encryption support is disabled" msgstr "" msgid "Authorization" msgstr "Käyttövaltuudet" msgid "year" msgid_plural "years" msgstr[0] "vuosi" msgstr[1] "vuotta" msgid "day" msgid_plural "days" msgstr[0] "päivä" msgstr[1] "päivää" msgid "hour" msgid_plural "hours" msgstr[0] "tunti" msgstr[1] "tuntia" msgid "minute" msgid_plural "minutes" msgstr[0] "minuutti" msgstr[1] "minuuttia" msgid "second" msgid_plural "seconds" msgstr[0] "sekunti" msgstr[1] "sekuntia" msgid "or" msgstr "tai" msgid "rounded down" msgstr "pyöristetty pienempään" msgid "week" msgid_plural "weeks" msgstr[0] "viikko" msgstr[1] "viikkoa" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgid "This calculator only supports dates after year 1." msgstr "Laskin käsittelee vain vuoden 1 jälkeen olevia ajankohtia." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "Aikalaskin" msgid "Current date" msgstr "Nykyinen päiväys" msgid "Set current date" msgstr "Aseta päiväys" msgid "Second" msgstr "Sekunti" msgid "Set current time" msgstr "Aseta aika" msgid "Reset time" msgstr "Palauta oletusaika" msgid "First date and time" msgstr "Ensimmäinen päiväys ja aika" msgid "Second date and time" msgstr "Toinen päiväys ja aika" msgid "Alternative time units" msgstr "Vaihtoehtoiset aikayksiköt" msgid "Result" msgstr "Tulos" msgid "Duration between two dates" msgstr "Aika kahden ajankohdan välillä" msgid "Operation" msgstr "Toiminto" msgid "add" msgstr "lisää" msgid "subtract" msgstr "vähennä" msgid "Date and time to add or subtract from" msgstr "Ajankohta ja aika johon lisätään tai josta vähennetään" msgid "Years" msgstr "Vuotta" msgid "Weeks" msgstr "Viikkoa" msgid "Seconds" msgstr "Sekuntia" msgid "Ignore weekend days" msgstr "" msgid "Reset fields" msgstr "Palauta oletusarvot kenttiin" msgid "Time to add or subtract" msgstr "Aika joka lisätään tai vähennetään" msgid "Add to or subtract from a date" msgstr "Lisää tai vähennä ajankohtaan/ajankohdasta" msgid "Cannot perform selected operation." msgstr "En voi suorittaa valittua tehtävää." msgid "Task has been modified or removed." msgstr "Tehtävää on muutettu tai se on poistettu." msgid "Remind me later" msgstr "Muistuta myöhemmin" msgid "Done" msgstr "Valmis" msgid "Show task" msgstr "Näytä tehtävä" msgid "Alarm warning!" msgstr "Hälytys varoitus!" msgid "postponed" msgstr "lykätty" msgid "Day note" msgstr "Päivämerkintä" msgid "Events" msgstr "Tapahtumat" msgid "Event" msgstr "Tapahtuma" msgid "Task" msgstr "Tehtävä" msgid "Birthday" msgstr "Syntymäpäivä" msgid "Show Osmo" msgstr "Näytä Osmo" msgid "event" msgid_plural "events" msgstr[0] "tapahtuma" msgstr[1] "tapahtumaa" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "iCalendar-tapahtumat" msgid "Time" msgstr "" msgid "The list will be cleared and all entries will be lost." msgstr "Luettelo tyhjennetään ja kaikki merkinnät menetetään." msgid "event exported" msgid_plural "events exported" msgstr[0] "tapahtuma viety" msgstr[1] "tapahtumaa viety" msgid "iCalendar export" msgstr "iCalendar viety" msgid "Day Selector" msgstr "Päivä Valitsin" msgid "Use date period" msgstr "Käytä aikaperiodia" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "" msgid "tasks exported" msgstr "" msgid "was born" msgstr "syntynyt" msgid "year old" msgid_plural "years old" msgstr[0] "vuotta " msgstr[1] "vuotta" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "päivä vuoden loppuun" msgstr[1] "päivää vuoden loppuun" msgid "the last day of the year" msgstr "vuoden viimeinen päivä" msgid "Day tasks" msgstr "Päivätehtävät" msgid "Selected day note will be removed." msgstr "Valitun päivän merkintä poistetaan." msgid "Continue?" msgstr "Jatketaanko?" msgid "Previous year" msgstr "Edellinen vuosi" msgid "Previous month" msgstr "Edellinen kuukausi" msgid "Previous day" msgstr "Edellinen päivä" msgid "Next day" msgstr "Seuraava päivä" msgid "Next month" msgstr "Seuraava kuukausi" msgid "Next year" msgstr "Seuraava vuosi" msgid "Full-year calendar" msgstr "Koko-vuoden kalenteri" msgid "Print calendar" msgstr "Tulosta kalenteri" msgid "Toggle day note panel" msgstr "Vaihda päivämerkintä-paneeli" msgid "Select day color" msgstr "Valitse päivän väri" msgid "Browse notes" msgstr "Selaa merkintöjä" msgid "Browse iCal events" msgstr "Selaa iCal tapahtumia" msgid "Export to iCal file" msgstr "Vie iCal tiedostoon" msgid "Previous and next month" msgstr "Edellinen ja seuraava kuukausi" msgid "Close note panel" msgstr "Sulje merkintä-paneeli" msgid "Clear text" msgstr "Tyhjennä teksti" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Valitse väri" msgid "Name day" msgstr "" msgid "Printing properties" msgstr "" msgid "Month name" msgstr "" msgid "Day name" msgstr "" msgid "Fonts" msgstr "" msgid "Birthdays" msgstr "" msgid "Namedays" msgstr "" msgid "Visible events" msgstr "" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "" msgid "Portrait" msgstr "" msgid "Landscape" msgstr "" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Karkausvuosi" msgid "Yes" msgstr "Kyllä" msgid "No" msgstr "Ei" msgid "Chinese year animal" msgstr "Kiinalaisen vuoden eläin" msgid "Number of days" msgstr "Päiviä" msgid "Number of weeks" msgstr "Viikkoja" msgid "Number of weekend days" msgstr "Viikonlopuksi osuvia päiviä" msgid "Year info" msgstr "Vuosi-info" msgid "Alternative view" msgstr "Vaihtoehtoinen näkymä" msgid "Started" msgstr "Aloitettu" msgid "Finished" msgstr "Valmis" msgid "New task" msgstr "Uusi tehtävä" msgid "Remove task" msgstr "Poista tehtävä" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "Tulosta näkyvien tehtävien luettelo" msgid "Task details" msgstr "Tehtävän yksityiskohdat" msgid "Close description panel" msgstr "Sulje kuvauspaneeli" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "siirry edelliseen välilehti" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "siirry seuraavaan välilehteen" msgid "switch to selected page" msgstr "siirry valitulle sivulle" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "vaihda sivua valinnat- ja tietoja välilehdissä" msgid "exit" msgstr "poistu" msgid "Space" msgstr "" msgid "select current date" msgstr "valitse nykyinen päiväys" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "vaihda henkilököhtaisten tietojen näkyminen" msgid "Arrows" msgstr "" msgid "change day" msgstr "vaihda päivä" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "vieritä sisältöä päiväinfo -paneelissa" msgid "change month" msgstr "vaihda kuukausi" msgid "Home/End" msgstr "" msgid "change year" msgstr "vaihda vuosi" msgid "toggle calendars for the previous and next month" msgstr "vaihda kalentereissa edellinen ja seuraava kuukausi" msgid "day notes browser" msgstr "päivämerkintöjen selain" msgid "assign background color to day note" msgstr "lisää taustaväri päivämerkintään" msgid "date calculator" msgstr "aikalaskin" msgid "show full-year calendar" msgstr "näytä koko vuoden kalenteri" msgid "jump to date" msgstr "hypähdä päivään" msgid "Delete" msgstr "" msgid "remove day note" msgstr "poista päivämerkintä" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "" msgid "set current year" msgstr "" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "lisää tehtävä" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "muokkaa tehtävää" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "poista tehtävä" msgid "toggle hidden tasks" msgstr "vaihda piilotetut tehtävät" msgid "activate search field" msgstr "ota käyttöön hakukenttä" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "vaihda kategoriasuodatin" msgid "close task info panel" msgstr "sulje tehtäväinfo-paneeli" msgid "Insert" msgstr "Lisää" msgid "add contact" msgstr "lisää yhteystieto" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "muokkaa yhteystieto" msgid "remove contact" msgstr "poista yhteystieto" msgid "change search mode" msgstr "vaihda hakutapaa" msgid "close contact details panel" msgstr "sulje yhteystiedon yksityiskohtien paneeli" msgid "Enter" msgstr "" msgid "open note" msgstr "avaa merkintä" msgid "add note" msgstr "lisää merkintä" msgid "remove note" msgstr "poista merkintä" msgid "edit note name and category" msgstr "muokkaa merkinnän nimeä ja kategoriaa" msgid "close note editor" msgstr "sulje merkintäeditori" msgid "save note" msgstr "tallenna merkintä" msgid "find text" msgstr "etsi teksti" msgid "clear selection attributes" msgstr "tyhjennä valinta määritteet" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "" msgid "Selector" msgstr "Valitsin" msgid "Editor" msgstr "Muokkain" msgid "A handy personal organizer" msgstr "Kätevä henkilökohtainen järjestelijä" msgid "compiled on" msgstr "Koostettu" msgid "Programming" msgstr "Ohjelmointi" msgid "Graphics" msgstr "Grafiikka" msgid "Contributors" msgstr "Avustajat" msgid "Translators" msgstr "Kääntäjät" msgid "Mailing lists" msgstr "" msgid "Bug tracker" msgstr "" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "" msgid "Compiled-in features" msgstr "Sisällytetyt ominaisuudet" msgid "iCalendar support" msgstr "iCalendar tuki" msgid "Encrypted notes support" msgstr "" msgid "Backup support" msgstr "" msgid "Printing support" msgstr "" msgid "Spell checker support" msgstr "" msgid "version" msgstr "versio" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Näppäinoikotiet" msgid "License" msgstr "Lisenssi" osmo-0.4.2/po/gl_ES.mo0000664000175000017500000011135013204320601011351 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^o^_$`-` 3`A`BS` ```````aa a 1a;a@aSacavaMa aaa b b,b.>b mbwb bbbbb'b(b cc/.c&^ccc ccc ccccd!d*d9dYd2_d ddddd+d" e!Ceee3ee e#e f ff/fBfUf-hf-f f3fgg'g.g5g DgQgpgggggg3g"'h"Jhmhhhh hh h h hhh h i i !i-i @iLiai }i i i ii ii"iijj+jFjcjujzjjj j jj jjkkk2k1;k mk {k k%k kkk kkkkl ll4l =l Hl Sl^l:rllll l llm mm2mMm2lm(mmm"mn nnn-n @nan enpnn!n nnnnnoo!o @oNo`oiozoo oooooooo o o pp-p6p#Nr %'݋ % B!N(p$Ќ7)+@lr  Ѝ *9 A KX[knwˎ 4%6Pi#Ï7ʏ.H[o?##"Fc)đ,?.!nȒؒ`"O hR5Zbx)'9[z-V6v \h^YT0m}g`yCJ .E mqFqf\ 3MQ^2(|kBJDQYXZ56l}k?8,]m)~nDU*3_Sit8Uv:o-ar7n;&;cx-]aB=!Ifk{0 &4V,p1(I qaj~J+*TjlOUMuude{iYc%VZR@W7QzS<c]j0K4$wL!s%4C5OE=|:<;ve_x7G!b9h9AF$^.2SP) =PDGw@,&\Pz(g pI+?">#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-06 09:53+0000 Last-Translator: xesusmosquera Language-Team: Galician (Spain) Language: gl_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 para desactivarUn organizador persoal moi prácticoSobreNovo contactoEngadir cabeceiraEngadir unha nova tarefa ao premer dúas veces na lista de tarefasEngadir notaEngadir unha tarefaSumar ou restar dunha dataInformación adicionalEnderezoAvanzadoIdadeOrde da alarmaAlarma de avisoAlarma de aviso!AlgoritmoTodoTodos os ficheirosTodos os camposTodos os elementosTodos as notasTodos os datos van seren substituídos cos do ficheiro da copia de seguranza.Alt+FrechasAlt+A, InserirAlt+E, Ctrl+IntroAlt+R, Supr.Unidades alternativas de tempoVista alternativaXa está a executarse outra instancia de OSMO.AparenciaAcuarioEstá seguro?AriesFrechaFrechasFrechas arriba/abaixoOrdenación ascendente en notas do díaPolo menos un módulo debe ser visíbel.AutorizaciónMódulos dispoñíbeisA copia de seguranza foi gardada correctamente!Compatibilidade con copia de seguranzaBásicoMellorAniversarioData de nacementoCor da marca de aniversarioAniversariosLista de aniversariosBlogueNegriñaAbaixoExaminar actividades de iCalendarExaminar notasSistema de seguimento de fallosBytesArchivos CSV (valores separados por comas) (*.csv)CalendarioFicheiros de calendario (*.ics)Tipo de letra do calendarioNotas do calendarioCancroNon é posíbel crear a copia de seguranza!Non foi posíbel crear o ficheiro.Non é posíbel abrir o ficheiro.Non é posíbel abrir a nota.Non é posíbel realizar a operación seleccionada.Non é posíbel ler o ficheiro.CapricornioSensíbel a maiúsculas/minúsculasCategoríasCategoríaTeléfono móbilTeléfono móbil 2Teléfono móbil 3Teléfono móbil 4Cambiar a data de caducidade ao día seguinteCambiar a data de caducidade ao día anteriorCaracteresComprobar as actividades desde a última execuciónAnimal do calendario chinoCírculoCidadeLimparLimpar formatoLimpar textoPechar os detalles do contactoPechar o panel de descriciónPechar o editorPechar a barra de buscasPechar o panel de notasCorCor das etiquetas dos contactosCor dos elementos que caducan nos próximos 7 díasCor dos elementos que caducan hoxeCor dos elementos que xa caducaronCor das ligazónsCoresColumnaCaracterísticas compiladasCompresiónDetalles do contactoContactosContinuar?ColaboradoresPaísCreadoCtrl+IntroCtrl+Av.Páx.Ctrl+Re.Páx.Ctrl+EspazoCtrl+Arriba/AbaixoData actualMarca de data actualCor da marca de data actualMes actualHora actualAno actualCor do cursorGroso do cursorDD-MM-AAAADataData e hora da que sumar ou restarCalculadora de datasTipo de letra da dataFormato da dataSintaxe do formato da dataFormato da cabeceira de dataPeríodo de datasDíaSeleccionar díaCategorías de díasCategoría de díasNome do díaNota do díaMarca para nota do díaNotas do díaNúmero do díaTarefas do díaDíasDías ata o aniversarioEliminarEliminar as tarefas completadas sen confirmaciónEliminar notaDepartamentoDescriciónDesactivar o subliñado nas ligazónsDesactivadoQuere continuar?Quere gardala?DocumentoCanFeitoFeito!DragónData de caducidadeTempo entre dúas datasCorreo-eCorreo-e 2Correo-e 3Correo-e 4Cliente de correo-eERRO: Non foi posíbel crear o ficheiro de configuración.Editar a categoríaEditar o contactoEditar a entradaEditar notaEditar tarefaEditorElipseActivarAmosar calendarios auxiliaresActivar o cursor de bloqueActivar a notificación sonoraActivar o corrector ortográfico nas notas do díaAmosar a icona na área de notificaciónAmosar consellosCifradoCompatibilidade con notas cifradasCifradoFinIntroEscriba un contrasinalProduciuse un erroProduciuse un erro de impresiónEscActividadeMarca de actividadesCor da marca de actividadesLonxitude máxima das actividadesActividadesExportarExportar contactosExportar tarefasExportar a ficheiro iCalRápidoFaxPeticións de característicasTipo de campoCampos a exportarFicheiroNome de ficheiroFiltroBuscarTerminadoNomeData e hora de inicioNomeTamaño da letraTipos de letraGaloCírculo a man alzadaDesde (hora)Lúa cheaData completaCalendario de ano completoXemelgosXeralOrde global de notificaciónBoGráficosGrupoGruposLebreResumoAxudantesAgocharAgochar as tarefas completadasAgochar a columna de gruposAltaResaltadoParticularEnderezo particularCidade de residenciaPaís de residenciaTeléfono particularTeléfono particular 2Teléfono particular 3Teléfono particular 4Código postal particularEstado de residenciaInicio/FinHorizontalCabaloHoraHorasMI AOLMI Gadu-GaduMI ICQMI JabberMI MSNMI SkypeMI TlenMI YahooIgnorar as alarmas cando a tarefa caduca sen conexiónIgnorar eventos de nota del díaIgnorar días en fin de semanaImportarImportar contactosTipo de importaciónContrasinal incorrecto!InformaciónInformaciónNome do ficheiro de entradaInserirInserir a data e a hora actualInserir separadorInserir liña de tempoInternetIntervaloInverterCursivaTamaño da letra dos elementosIr á dataAtallos de tecladoHorizontalGrandeApelidosCuarto minguanteÚltimo cambioApelidosDeseñoAno bisestoEsquerdaEsquerda, dereitaLeoLibraLicenzaLiñaLiñasBaixaMM-DD-AAAAMM/DD/AARoldas de correoMarcaDías marcadosMedianaMinutoMinutosVariosModificadoModificar parámetros de ICALMonoMesNome do mesMesesFase luarNomeDía do santoData do día do santoTamaño da letra dos nomesSantoralLúa novaNovo contactoNova notaNova tarefaDía seguinteMes seguinteAno seguinteAlcumeNonNon se definiron aniversariosSen dataDespois non se poderá recuperar os datos.Non cambiar de mesNon se atopou ningún rexistro no ficheiro seleccionado.Non hai tarefas con data definida.Non se definiron calendarios válidosNúm.NingúnNotaEditor de notasTipo de letra das notasNome da notaTipo de notaNotasOpcións das notasNada para importar.Numero de campos por rexistroNúmero de díasNúmero de días para comprobar actividades cara adiante (o predeterminado é: 0)Días en fin de semanaNúmero de semanasOSMO foi deseñado para seren de uso moi doado, por iso existen multitude de atallos de teclado. Esta é a lista completa:Abrir o ficheiro da copia de seguranzaOperaciónOpciónsOrganizaciónFicheiros de copia de seguranza de Osmo (*.bck)Osmo debe ser reiniciado agora...Osmo debe ser reiniciado para que tena efecto.Nome do ficheiro de saídaFormato de saídaIgnorar a configuración do sistemaBoiEspazadoOrientación da páxina:Re.Páx./Av.Páx.Protección con contrasinalOs contrasinais non coinciden!PersoalTeléfonosFotografíaTamaño da fotoPorcoPeixesSinxeloEscriba o contrasinalEscolla o enderezo.Seleccione polo menos un día se a tarefa é repetitiva.Seleccione antes o ficheiro.VerticalCódigo postalAtraso de aviso pospostoPreferenciasMes anterior e seguinteDía anteriorMes anteriorAno anteriorImprimir calendarioImprimir a lista de tarefas visíbeisPropiedades da impresiónCompatibilidade con impresiónPrioridadeDesenvolvementoCuarto crecentePreguntaSaírRataRelaciónEscriba, outra vez, o contrasinalSó lecturaRexistroTarefa repetitivaLembrar a posición do cursorLembrar a última páxina seleccionadaLembrar a última categoría seleccionadaLembrarmo máis adianteOpcións de lembranzasRetirar o contactoRetirar tarefaRepetirRepetir nos días seguintesRepetir a alarma sonoraRestabelecer os camposRestabelecer a horaResultadoDereitaSaxitarioGardar copia de seguranzaGardar os datos despois de cada modificaciónGardar notaGardar as tarefasEscorpionBuscarSegundoData e hora de finSegundo nomeSegundosSeleccione ficheiro CSVSeleccionar ficheiro ICSSeleccione un tipo de letra...Seleccionar corSeleccione data e horaSeleccionar a cor do díaSeleccione camposSeleccione o ficheiro de saídaSeleccione unha fotoO contacto seleccionado vai seren retirado.A nota do día seleccionado será eliminada.O ficheiro seleccionado xa existe. Quere sobrescribilo?Mes seleccionadoMes e ano seleccionadoA nota seleccionada vai seren retirada.As tarefas seleccionadas van seren retiradas.Ano seleccionadoSelecciónSeleccionarEstabeleza a ruta absoluta para os ficheiros de datos e configuraciónEstabelecer a data actualEstabelecer a hora actualEstabelecer o formato predeterminadoEstabelecer a horaOvellaAmosar OsmoAmosar aniversariosAmosar o calendarioAmosar a localización dos contactos no mapaAmosar os contactosAmosar o nome do díaAmosar o botón de saída na barra de ferramentasAmosar en negriña as tarefas con prioridade altaAmosar no calendarioAmosar as notasAmosar as opciónsAmosar os segundosAmosar unha xanela pequena co calendarioAmosar a tarefaAmosar as tarefasAmosar o número de semanaVista simple do calendario anualUsar simultaneamente dúas ou máis instancias de OSMO pode provocar a perda de datos.PequenaSerpeReprodutor de sonEspazoIdioma do corrector ortográficoCompatibilidade con verificación ortográficaInicioIniciar minimizadoIniciadoEstadoEstatísticasSalto (minutos)TachadoTachar notas de días pasadosResumoSintaxeÁrea de notificaciónPosición das lapelasEtiquetasTarefaDetalles da tarefaA tarefa foi modificada ou retirada.Tipo de letra para os detallesTarefasLista de tarefasOpcións das tarefasTauroO patrón %s vai seren substituído polo correo-eO patrón %s vai seren substituído polo nome do ficheiro de sonO patrón %s vai seren substituído polo enderezo webVaise a baleirar a lista, perderanse todas as entradas.A nota cambiou.GrosoDelgadoEsta calculadora só admite datas posteriores ao ano 1.Isto non é un ficheiro de copia de seguranza de OsmoTigreHoraFormato da horaPeríodo de tempoHora que sumar ou restarLiña de tempoAta (hora)HoxeDías ata o día de hoxeAmosar/agochar notas do díaActivar o corrector ortográficoMañáArribaTradutoresTipoSubliñadoDescoñecidoUsar un período de datasUsar o primeiro rexistro como cabeceiraUsar formato de data e hora do sistemaVálidoValorVerticalVirgoColumnas visíbeisColumnas visíbeis na lista de aniversariosActividades visíbeisWWWWWW 2WWW 3WWW 4MinguanteMinguanteAvisoOndaCrecenteCrecenteNavegadorNúmero da semanaA semana comeza o lunsDías en fin de semanaCor dos días de fin de semanaSemanasEspazosPalabrasTraballoEnderezo do traballoCidade do traballoPaís do traballoTeléfono do traballoTeléfono do traballo 2Teléfono do traballo 3Teléfono do traballo 4Código postal do traballoEstado do traballoAAAA-DD-MMAAAA-MM-DDAnoInformación do anoAnosSiSigno do zodíaconome abreviado do mesnome abreviado do día da semanaActivar o campo de buscassumarEngadir un contactoEngadir unha notaEngadir unha tarefaAsignar a cor do fondo ás notas do díaCoincidencia de maiúsculas / minúsculasCambiar o filtro de categoríasCambiar o díaCambiar o mesCambiar o modo de buscaCambiar o anoLimpar os atributos da selecciónPechar os detalles do contactoPechar o editorPechar o calendario do ano completoPechar o editor de notasPechar a información da tarefaCompilado ocontacto engadidocontactos engadidoscontacto exportadocontactos exportadosCalculadora de datasdíadíasExaminador das notas do díadía do mesdía do mes sen ceros á esquerdadía ata fin de anodías ata fin de anoEditar o contactoEditar o nome e a categoría da notaEditar a tarefaA compatibilidade para notas cifradas está desactivadaentradaentradasactividadeactividadesactividade exportadaactividades exportadasSaírBuscar por textonome do mesnome do día da semanahorahorashorasactividades de iCalendarExportación de iCalendarFicheiros de iCalendarCompatibilidade con iCalendarIr á dataminutominutosminutosmesmesessen entradasdeAbrir unha notaouPospostoRetirar o contactoRetirar as notas do díaRetirar unha notaEliminar a/unha tarearedondeado cara abaixoGardar a notaDesprazar o contido do panel de información do díasegundosegundosSeleccionar a data actualEstabelecer o ano actualAmosar a xanela «Sobre»Amosar o calendario do ano completoAmosar a xanela de opciónsrestarCambiar de páxina nas lapelas «Opcións» e «Sobre»Ir á lapela seguinteIr á lapela anteriorIr á lapela seleccionadatarefas exportadasÚltimo día do anoignorase a horaveceshoxeCambiar o tipo de vistaActivar/desactivar negriñaAmosar/agochar os calendarios para os meses anterior e seguinteCambiar o modo de pantalla completaAmosar/agochar as tarefas agochadasActivar/desactivar resaltadoActivar/desactivar itálicaCambiar a visibilidade dos datos persoaisActivar/desactivar tachadoActivar/desactivar subliñadoVersiónNado osemanasemanasdía en fin de semanadías en fin de semanadía de fin de semana ignoradodías de fin de semana ignoradosdía laborábeldías laborábeisanoanosInformación do anoano de idadeanos de idadeano con séculoano sen séculoosmo-0.4.2/po/pl.mo0000664000175000017500000011047613204320601011003 00000000000000w)7 777 7 7.7788/8?8G8P8 T8 b8p8 88 8 8 8 888 8 89 9(9?9(P9 y99 99999&9$9 :: ):5:U:d:j:o: x:: :::::: : ::*:#;,; C;Q;`;g;};;;";; ;; << < &< 3< @<M< j< <<<<<<< << = $=1=B=S=Y=.o=!= ===== >>/> 8> B>O>W> _> j> v> > > >>> > > > >? ?$?%)?O? _? i?u?? ?? ?? ???? ? @ @@@+@+2@ ^@ j@ u@@@@@@@@@@@A A'A0A9A BA!PA rA A A A AAAAAAA! B,B?B OBYB qB|BBBBBBB BBBBBB CC(C-C1C BCMC^CcClCsCxC CC C CCCC C C CCD DD/D4D=DCDJDODWD_DdDyDD DD D D D D D D D D EE E"E(E-E3E :EGE NEXE_EhEpE&yEEEEE EEF FF"F)FFFWFgFpFyFFF F F FF FF F FF FG GGG G(G-G3G 7GBG KG YGgG lG xGGGG GGGGG GG GH H H#H2H;H DHPHYHbH kH vHHHHH*HH"H!I)IDIHIMI RI ^I hI rI|I IIII7IJJo*JJ JJ JJJ(K-K =KKKdKgKoK KKKKKK KKKKKL:LXLrL{L L LL LL LLLMM-M 6M BMOMXM]MaMgM yMMMMM#MMNN "N.N5NRN eN rN }NNN N N"N N NNNNN OO&O6OFO WOdOyO OO O!O"OOP,PDPcP P PP-PPPPQQ QQ .Q w(.U%HbgWoAP[5j&7L2@?*Umr]  j~!o/S8 x[3Lq^| dg_uQlgrf/NpGb<W@b#} R]X Y`W)=ye2E9B<31i& 'F [^ {tE0"p(f}|d~I, 4v$a4Av7K\lC>(slj1? cY :pPcyz56_RZX\qDHye|>9tS$d%xVTmF.t'f;;hhXu#`aM"S@-*;C^{*0. /V?6MNO2!AT4]xi~_n 5uwNTL-mcBrsUqwIHnKkO%O+,BK}<DD { R+o:8 38Z#zGzh6)!9:,Jn'YQeF-PV JQkkJ`&=sv1+EaiIM$G0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-05 12:45+0100 Last-Translator: Piotr Mąka Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); 0 aby wyłączyćPodręczny osobisty organizerO programieDodaj kontaktDodaj nagłówekDodaj nowe zadanie poprzed dwukrotne kliknięcie na liście zadańDodaj notatkęDodaj zadanieDodaj do lub odejmij od datyDodatkowe informacjeAdresZaawansowaneWiekKomenda do wykonaniaPrzypomnienie o zadaniuPrzypomnienie!AlgorytmWszystkieWszystkie plikiWszystkie polaWszystkie zadaniaWszystkie notatkiTwoje dane zostaną zastąpione zawartością kopii zapasowejAlt+StrzałkiAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternatywne jednostki czasuAlternatywny wyglądOSMO jest już uruchomione.WyglądWodnikCzy jesteś pewny?BaranStrzałkaStrzałkiStrzałki Góra/DółSortuj rosnąco w przeglądarce notatekPrzynajmniej jeden moduł musi być widoczny.UwierzytelnianieDostępne modułyUtwórz kopię zapasowąZapisywanie kopii zapasowej powiodło się!Obsługa kopii zapasowychProsteNajlepszyUrodzinyData urodzinKolor oznaczenia urodzinUrodzinyLista urodzinBlogPogrubienieDolnaPrzeglądaj wydarzenia iCalPrzeglądaj notatkiZgłaszanie błędówBajtyPliki CSV (pola rozdzielone przecinkiem) (*.csv)KalendarzPliki kalendarza (*.ics)Czcionka kalendarzaNotatki kalendarzoweRakNie można utworzyć kopii zapasowej!Nie można utworzyć pliku.Nie można otworzyć pliku.Nie można otworzyć notatki.Nie można wykonać wybranej operacji.Nie można odczytać pliku.KoziorożecRozróżniaj wielkość znakówKategorieKategoriaTelefon komórkowyTelefon komórkowy 2Telefon komórkowy 3Telefon komórkowy 4Zmień datę na następnąZmień datę na poprzedniąZnakiSprawdź wydarzenia od ostatniego użycia programuChiński rokKółkoMiastoWyczyśćUsuń atrybutyUsuń notatkęZamknij panel kontaktuZamknij panel opisu.Zamknij edytorZamknij wyszukiwarkę tekstuZamknij panel notatekKolorKolor tagów w kontaktachKolor zadania którego ważność upływa w ciągu 7 dniKolor zadania którego ważność upływa dziśKolor zadań których ważność upłynęłaKolor odnośnikówKoloryKolumnaWkompilowana obsługaKompresjaSzczegóły wpisuKontaktyKontynuować?WspółpracaKrajUtworzonyCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpacjaCtrl+Up/DownAktualna dataOznaczenie aktualnego dniaKolor oznaczenia aktualnego dniaAktualny miesiącAktualny czasRok bieżącyKolor kursoraGrubość kursoraDD-MM-RRRRDataData i czas na której wykonujemy działanieKalkulator datCzcionka datyFormat datySkładnia formatu datyFormat daty w nagłówkuOkres dniDzieńWybór dniaKategoria dniaKategoria dniaNazwa dniaNotatkaOznaczenie notatekNotatkaNumer dniaDzisiejsze zadaniaDniDni do urodzinDeleteWykonane zadania usuń bez potwierdzaniaUsuń notatkęOddziałOpisWyłącz podkreślenia w odnośnikachNieaktywneCzy na pewno chcesz kontynuować?Czy chcesz zapisać?DokumentPiesWykonaneZrobione!SmokDataRóżnica pomiędzy datamiE-MailE-Mail 2E-Mail 3E-Mail 4Klient pocztyBŁĄD: Nie można utworzyć pliku konfiguracyjnego.Edycja kategoriiEdytuj kontaktEdytuj wpisEdytuj notatkęEdytuj zadanieEdytorElipsaAktywujPokaż dodatkowe miesiąceWypełniony kursorWłącz powiadomienie dźwiękoweSprawdzanie pisowni w notatkachWłącz obsługę zasobnika systemowegoWłącz dymkiSzyfrowanaObsługa szyfrowanych notatekSzyfrowanieKoniecEnterWprowadź hasłoBłądBłąd drukuEscWydarzenieOznaczenie wydarzeniaKolor oznaczenia wydarzeńMaksymalna dlugość napisówWydarzeniaEksportujEksportuj kontaktyEksportuj zadaniaEksport do pliku iCalSzybkiFaxPropozycje nowej funkcjonalnościTyp polaPola do wyeksportowaniaPlikNazwa plikuFiltrSzukajZakończoneImięPierwsza data i czasImięRozmiar czcionkiCzcionkiPtakOdręczne kółkoOd (godzina)PełniaPełna dataKalendarz całorocznyBliźniętaOgólneKomenda wywoływana przy każdym wydarzeniuDobryGrafikaGrupaGrupyZającHaszowanieProgramy zewnętrzneUkryjUkryj wykonane zadaniaUkryj kolumnę grupWysokiPodświetlenieDomAdres (dom)Miasto (dom)Kraj (dom)Telefon domowyTelefon domowy 2Telefon domowy 3Telefon domowy 4Kod pocztowy (dom)Województwo (dom)Home/EndPoziomyKońGodzinaGodzinyAOLGadu-GaduICQJabberMSNSkypeTlenYahooIgnoruj alarm kiedy zadanie wygasło przy wyłączonym programieIgnoruj notatki kalendarzaZignoruj dni weekendoweImportujImportuj kontaktyRodzaj importuNieprawidłowe hasło!InformacjeInformacjeNazwa plikuInsertWstaw aktualną datę i czasWstaw separatorWstaw przedziały czasoweInternetOdstępOdwróć zaznaczenieKursywaRozmiar czcionki danych personalnychIdź do dniaSkróty klawiszoweKrajobrazDużyNazwiskoOstatnia KwadraOstatnia zmianaNazwiskoUkładRok przestępnyLewaLewo, PrawoLewWagaLicencjaLiniaLinieNiskiMM-DD-RRRRMM/DD/RRLista dyskusyjnaDostawca mapZaznaczenieZaznaczone dniWyświetla kontakty zawierające podany ciąg znakówŚredniMinutaMinutyRóżneZmodyfikowanyZmień ustawienia ICALMałpaMiesiącNazwa miesiącaMiesiąceFaza księżycaNazwaImieninyData imieninRozmiar czcionki imienia i nazwiskaImieninyNówUtwórz nowy kontaktNowa notatkaNowe zadanieNastępny dzieńNastępny miesiącNastępny rokPrzezwiskoNieNie zdefiniowano żadnych urodzinBrak datyOdzyskanie danych nie będzie możliweNie zmieniaj miesiącaNie znaleziono wpisów w wybranym pliku.Nie znaleziono zadań ze zdefiniowaną datąNie zdefiniowano poprawnych kalendarzyNrBrakNotatkaEdytor notatekCzcionka notatkiNazwa notatkiRodzaj notatkiNotatkiOpcje notatekBrak danych do zaimportowania.Ilość pól na wpisLiczba dniLiczba dni uwzględniona do sprawdzenia przyszłych zdarzeń (domyślnie: 0)Liczba dni weekendowychLiczba tygodniOSMO został stworzony z myślą o wygodzie obsługi, dlatego posiada wiele skrótów klawiszowych. Oto pełna lista:Otwórz plik kopii zapasowejDziałanieOpcjeFirmaKopia zapasowa Osmo (*.bck)Osmo musi być uruchomione ponownie...Osmo musi być uruchomione ponownie...Nazwa plikuFormat wyjściowyModyfikuj ustawnienia językoweWółWcięcieOrientacja stronyPageUp/PageDnOchrona hasłemHasła nie są takie same!OsobisteTelefonyZdjęcieRozmiar zdjęciaŚwiniaRybaZwykłaProszę wprowadzić hasłoProszę wybrać adresProszę wybrać przynajmniej jeden dzień tygodnia gdy powtarzalność zadania jest włączona.Proszę wybrać plik.PortretKod pocztowyCzas opóźnieniaUstawieniaPoprzedni i następny miesiącPoprzedni dzieńPoprzedni miesiącPoprzedni rokDrukuj kalendarzDrukuj listę widocznych zadańUstawienia drukowaniaObsługa drukowaniaPriorytetProgramowaniePierwsza KwadraPytanieWyjścieSzczurWspółczynnikWprowadź ponownie hasłoTylko do odczytuWpisPowtarzalne zadaniePamiętaj pozycję kursoraZapamiętaj ostatnio wybraną zakładkęZapamiętaj ostatnio wybraną kategorięPóźniejOpcje przypominaczaUsuń kontaktUsuń zadaniePowtórzPowtórz w następujących dniachPowtórz alarm dźwiękowyWyzeruj polaWyzeruj czasOdtwórz z kopii zapasowejWynikPrawaStrzelecZapisz kopię zapasowąZapisuj dane po każdej modyfikacjiZapisz notatkęZapisz zadaniaSkorpionSzukajSekundaDruga data i czasDrugie imięSekundyWybierz plik do zapisu (CSV)Wybierz plik ICSWybierz czcionkę...Wybierz kolorWybierz datę i czasWybierz kolor dniaWybierz polaWybierz plik do zapisuWybierz zdjęcieZaznaczony kontakt zostanie usunięty.Wybrana notatka zostanie usunięta.Zaznaczony plik istnieje! Nadpisać?Zaznaczony miesiącZaznaczony miesiąc i rokWybrana notatka zostanie usunięta.Zaznaczone zadanie zostanie usunięte.Zaznaczony rokZaznaczeniePrzełącznikUstaw pełną scieżkę dla konfiguracji i plików z danymiUstaw aktualną datęUstaw aktualny czasUstaw domyślny formatUstaw czasOwcaPokaż OsmoPokaż urodzinyPokaż kalendarzPokaż adres kontaktu na mapiePokaż kontaktyPokaż nazwy dniPokaż przycisk wyjścia w pasku narzędziZadania z wysokim priorytetem wyświetlaj czcionką pogrubionąPokaż w panelu informacyjnymPokaż notatkiPokaż opcjePokaż sekundyPokaż okno z małym kalendarzemPokaż zadaniePokaż zadaniaPokaż numer tygodniaUproszczony wygląd kalendarza całorocznegoJednoczesne używanie dwóch lub więcej kopii OSMO może spowodować utratę danych.MałyWążOdtwarzacz dźwiękuSpacjaJęzyk sprawdzania pisowniObsługa sprawdzania pisowniPoczątekUruchom zminimalizowaneRozpoczęteWojewództwoStatystykiKrok (w minutach)PrzekreśleniePrzekreśl notatki minionych dniZadanieSkładniaZasobnik systemowyPozycja zakładekTagiZadanieSzczegóły zadaniaZadanie zostało zmienione lub usunięte.Czcionka opisu zadańZadaniaLista zadańOpcje zadańByk%s zostanie zastąpiony przez adres e-mail%s zostanie zastąpiony przez nazwę pliku dźwiękowego%s zostanie zastąpiony przez adres strony wwwLista zostanie usunięta i wszystkie wpisy zostaną utracone.Notatka została zmieniona.GrubyCienkiKalkulator obsługuje tylko daty po roku 1.Plik nie jest kopią zapasową OsmoTygrysCzasFormat czasuOkres czasuCzas do dodania lub odjęciaPrzedziałyDo (godzina)DzisiajIlość dni do dziśPokaż/ukryj panel notatekSprawdzanie pisowniJutroGórnaTłumaczeniaTypPodkreślenieNieznanyUżyj zakresu dniUżyj pierwszego wpisu jako nagłówekUżyj formatu systemowego dla daty i czasuPoprawnośćWartośćPionowyPannaWidoczne kolumnyWidoczne kolumny w przeglądarce urodzinWidoczne wydarzeniaWWWWWW 2WWW 3WWW 4Stary KsiężycKsiężyc GarbatyOstrzeżenieFalaMłody KsiężycKsiężyc GarbatyPrzeglądarka internetowaNumer tygodniaTydzień zaczyna się od poniedziałkuDni weekenduKolor dni weekendowychTygodnieBiałe znakiSłowaPracaAdres (praca)Miasto (praca)Kraj (praca)Telefon służbowyTelefon służbowy 2Telefon służbowy 3Telefon służbowy 4Kod pocztowy (praca)Województwo (praca)RRRR-DD-MMRRRR-MM-DDRokInformacje na temat rokuLataTakZnak zodiakuskrócona nazwa miesiącaskrócona nazwa dniaaktywuj pole wyszukiwaniadodajdodaj kontaktdodaj notatkędodaj zadanieprzypisz kolor tła do notatki dniarozróżnianie wielkości znakówzmień filtr kategoriizmień dzieńzmień miesiączmień tryb wyszukiwaniazmień rokusuń atrybuty tekstuzamknij panel z informacjami o kontakciezamknij edytorzamknij kalendarz całorocznyzamknij edytor notatkizamknij panel informacyjnyskompilowany w dniukontakt dodanykontakty dodanekontaktów dodanychkontakt wyeksportowanykontakty wyeksportowanekontaktów wyeksportowanokalkulator datdzieńdnidniprzeglądarka notatekdzień miesiącadzień miesiąca bez zer wiodącychdzień do końca rokudni do końca rokudni do końca rokuedytuj kontaktedytuj nazwę notatki i kategoriiedytuj zadanieobsługa szyfrowania jest wyłączonawpiswpisywpisówwydarzeniewydarzeniawydarzeńzdarzenie wyeksportowanezdarzenia wyeksportowanezdarzeń wyeksportowanowyjścieznajdź tekstpełna nazwa miesiącapełna nazwa dniagodzinagodzinygodzingodzinyWydarzenia iCalEksport iCalendarPliki iCalObsługa iCalendaridź do dniaminutaminutyminutminutymiesiącmiesiącemiesięcybrak wpisówzotwórz notatkęlubopóźnionyusuń kontaktusuń notkęusuń notatkęusuń zadaniezaokrąglone w dółzapisz notatkęprzewiń tekst w panelu informacyjnymsekundasekundysekundzaznacz aktualną datęustaw rok bieżącypokaż informacje o programiepokaż kalendarz całorocznypokaż opcjeodejmijzmienia stronę w zakładkach opcji i o programieprzełącz do następnej zakładkiprzełącz do poprzedniej zakładkiprzełącz do wybranej zakładkizadania wyeksportowaneostatni dzień rokuczas jest ignorowanyrazydzisiajprzełącz wygląd alternatywnyprzełącz pogrubienieprzełącz widok kalendarza dla poprzedniego i następnego miesiącaprzełącz tryb pełnoekranowypokaż/ukryj schowane wpisyprzełącz wyróżnienieprzełącz kursywępokaż/ukryj osobiste daneprzełącz przekreślenieprzełącz podkreśleniewersjaurodził siętydzieńtygodnietygodniDzień weekenduDni weekenduDni weekenduzignorowany dzień weekendowyzignorowane dni roboczezignorowanych dni roboczychdzień roboczydni roboczedni roboczychroklatalatinformacje na temat rokuroklatalatrok (cztery cyfry)rok (dwie cyfry)osmo-0.4.2/po/hu.po0000664000175000017500000011461213204320601011003 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # pasp , 2011 # Péter Polonkai , 2017 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2017-09-19 09:44+0000\n" "Last-Translator: Péter Polonkai \n" "Language-Team: Hungarian (http://www.transifex.com/pasp/osmo/language/hu/)\n" "Language: hu\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" msgid "Colors" msgstr "Színek" msgid "Color of contact tags" msgstr "kapcsolat címkék színe" msgid "Color of links" msgstr "Linkek színe" msgid "Font size" msgstr "Betűméret" msgid "Name font size" msgstr "Név betűméret" msgid "Item font size" msgstr "Elem betűméreet" msgid "Photo size" msgstr "Fotó mérete" msgid "Small" msgstr "Kicsi" msgid "Medium" msgstr "Közepes" msgid "Large" msgstr "Nagy" msgid "Hide group column" msgstr "Csoport oszlop elrejtése" msgid "Maps provider" msgstr "Térkép szolgáltató" msgid "Age" msgstr "Kor" msgid "Birthday date" msgstr "Születési idő" msgid "Zodiac sign" msgstr "Zodiákus jel" msgid "Contacts" msgstr "Kapcsolatok" msgid "Appearance" msgstr "Megjelenés" msgid "Miscellaneous" msgstr "Egyéb" msgid "Groups" msgstr "Csoportok" msgid "Visible columns in birthday browser" msgstr "Látható oszlopok a születésnap böngészőben" msgid "Algorithm" msgstr "Algoritmus" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Tömörítés" msgid "Ratio" msgstr "Arány" msgid "Fast" msgstr "Gyors" msgid "Good" msgstr "Jó" msgid "Best" msgstr "Legjobb" msgid "Type" msgstr "Típus" msgid "Category" msgstr "Kategória" msgid "Last changes" msgstr "Utolsó módosítás" msgid "Created" msgstr "Létrehozva" msgid "Remember the last selected category" msgstr "Utoljára kiválasztott kategória megjegyzése" msgid "Use system format for date and time" msgstr "A rendszer dátum és idő formátum használata" msgid "Notes" msgstr "Jegyzetek" msgid "Encryption" msgstr "Titkosítás" msgid "Visible columns" msgstr "Látható oszlopok" msgid "Categories" msgstr "Kategóriák" msgid "Notes options" msgstr "Jegyzet opciók" msgid "Jump to date" msgstr "Ugrás dátumra" msgid "Day" msgstr "Nap" msgid "Month" msgstr "Hónap" msgid "Year" msgstr "Év" msgid "_Cancel" msgstr "_Mégsem" msgid "_Jump to" msgstr "_Ugrás ide" msgid "Select a font..." msgstr "Betűtípus választása..." msgid "None" msgstr "Nincs" msgid "All items" msgstr "Minden elem" msgid "Question" msgstr "Kérdés" msgid "Information" msgstr "Információ" msgid "Error" msgstr "Hiba" msgid "Warning" msgstr "Figyelmeztetés" msgid "Show hidden files" msgstr "Rejtett fájlok mutatása" msgid "_Save" msgstr "Menté_s" msgid "_Open" msgstr "Meg_nyitás" msgid "Selected file exist! Overwrite?" msgstr "A kiválasztott fájl már létezik! Felülírja?" msgid "Selected contact will be removed." msgstr "A kiválasztott kapcsolat törölve lesz." msgid "Are you sure?" msgstr "Biztos benne?" msgid "No date" msgstr "Nincs dátum" msgid "Select photo" msgstr "Fotó kiválasztása" msgid "Address" msgstr "Cím" msgid "Postcode" msgstr "Irányítószám" msgid "City" msgstr "Város" msgid "State" msgstr "Állam" msgid "Country" msgstr "Ország" msgid "Edit contact" msgstr "Kapcsolat szerkesztése" msgid "Add contact" msgstr "Kapcsolat hozzáadása" msgid "Personal" msgstr "Személyes" msgid "Group" msgstr "Csoport" msgid "Home" msgstr "Otthoni" msgid "Work" msgstr "Munkahely" msgid "Phones" msgstr "Telefonok" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "További Információ" msgid "_OK" msgstr "_OK" msgid "no entries" msgstr "nincs bejegyzés" msgid "entry" msgid_plural "entries" msgstr[0] "bejegyzés" msgstr[1] "bejegyzés" msgid "Calendar notes" msgstr "Naptár bejegyzések" msgid "Search" msgstr "Keresés" msgid "Filter" msgstr "Szűrő" msgid "Current month" msgstr "Aktuális hónap" msgid "Selected month" msgstr "Kiválasztott hónap" msgid "Current year" msgstr "Aktuális év" msgid "Selected year" msgstr "Kiválasztott év" msgid "Selected month and year" msgstr "Kiválasztott hónap és év" msgid "All notes" msgstr "Minden jegyzet" msgid "Case sensitive" msgstr "kis/nagybetű érzékeny" msgid "Strikethrough past day notes" msgstr "A már elmúlt napok jegyzetének áthúzása" msgid "Date" msgstr "Dátum" msgid "Note" msgstr "Jegyzet" msgid "_Close" msgstr "Be_zárás" msgid "Rat" msgstr "Patkány" msgid "Ox" msgstr "Ökör" msgid "Tiger" msgstr "Tigris" msgid "Hare" msgstr "Nyúl" msgid "Dragon" msgstr "Sárkány" msgid "Snake" msgstr "Kígyó" msgid "Horse" msgstr "Ló" msgid "Sheep" msgstr "Bárány" msgid "Monkey" msgstr "Majom" msgid "Fowl" msgstr "Kakas" msgid "Dog" msgstr "Kutya" msgid "Pig" msgstr "Disznó" msgid "Unknown" msgstr "Ismeretlen" msgid "Aquarius" msgstr "Vízöntő" msgid "Pisces" msgstr "Halak" msgid "Aries" msgstr "Kos" msgid "Taurus" msgstr "Bika" msgid "Gemini" msgstr "Ikrek" msgid "Cancer" msgstr "Rák" msgid "Leo" msgstr "Oroszlán" msgid "Virgo" msgstr "Szűz" msgid "Libra" msgstr "Mérleg" msgid "Scorpio" msgstr "Skorpió" msgid "Sagittarius" msgstr "Nyilas" msgid "Capricorn" msgstr "Bak" msgid "Osmo has to be restarted to take effect." msgstr "Az Osmo újraindítása után lép életbe." msgid "Layout" msgstr "Elrendezés" msgid "Vertical" msgstr "Függőleges" msgid "Horizontal" msgstr "Vizszintes" msgid "Tabs position" msgstr "Fülek pozíciója" msgid "Left" msgstr "Baloldalt" msgid "Right" msgstr "Jobboldalt" msgid "Top" msgstr "Fent" msgid "Bottom" msgstr "Lent" msgid "Disable underline in links" msgstr "Ne húzza alá a linkeket" msgid "Show exit button in toolbar" msgstr "Kilépés gomb mutatása az eszköztáron" msgid "At least one module must be visible." msgstr "Legalább egy modulnak láthatónak kell lennie." msgid "Calendar" msgstr "Naptár" msgid "Tasks" msgstr "Feladatok" msgid "Override locale settings" msgstr "Helyi beállítások felülírása" msgid "Date format" msgstr "Dátum formátum" msgid "DD-MM-YYYY" msgstr "NN-HH-ÉÉÉÉ" msgid "MM-DD-YYYY" msgstr "HH-NN-ÉÉÉÉ" msgid "YYYY-MM-DD" msgstr "ÉÉÉÉÉ-NN-HH" msgid "YYYY-DD-MM" msgstr "ÉÉÉÉ-HH-NN" msgid "Time format" msgstr "Idő formátum" msgid "hours" msgstr "óra" msgid "Spell checker language" msgstr "Helyesírás ellenőrzés nyelve" msgid "Enable tooltips" msgstr "Buboréktippek engedélyezése" msgid "Remember last selected page" msgstr "Utoljára kiválasztott lap megjegyzése" msgid "Save data after every modification" msgstr "Adatok mentése minden egyes módosításkor" msgid "Web browser" msgstr "Web böngésző" msgid "E-mail client" msgstr "Levelező program" msgid "Sound player" msgstr "Zenelejátszó" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "A %s minta le lesz cserélve a web címre" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "A %s minta le lesz cserélve az email címre" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "A %s minta le lesz cserélve a zene fájl nevére" msgid "Enable system tray" msgstr "Tálcaikon engedélyezése" msgid "Start minimised" msgstr "Indítás kis méretben" msgid "Ignore day note events" msgstr "Napi jegyzetek kihagyása" msgid "General" msgstr "Általános" msgid "Hide" msgstr "Elrejtés" msgid "Helpers" msgstr "Segédalkalmazások" msgid "System tray" msgstr "Tálcaikon" msgid "Preferences" msgstr "Beállítások" msgid "Syntax" msgstr "Szintaxis" msgid "abbreviated weekday name" msgstr "rövidített hétköznap név" msgid "full weekday name" msgstr "teljes hétköznap név" msgid "abbreviated month name" msgstr "rövidített hónap név" msgid "full month name" msgstr "teljes hónap név" msgid "day of the month" msgstr "a hónap napja" msgid "MM/DD/YY" msgstr "NN/HH/ÉÉ" msgid "day of the month without leading zeros" msgstr "a hónap napja vezető nulla nélkül" msgid "month" msgid_plural "months" msgstr[0] "hónap" msgstr[1] "hónap" msgid "year without century" msgstr "év évszázad nélkül" msgid "year with century" msgstr "év évszázaddal együtt" msgid "Date header format" msgstr "Dátum fejléc formátum" msgid "Set default format" msgstr "Legyen alapértelmezett formátum" msgid "Date format syntax" msgstr "Dátum formátum szintaxisa" msgid "Day note marker" msgstr "Napi bejegyzés megjelölése" msgid "Event marker" msgstr "Esemény jelölése" msgid "Circle" msgstr "Kör" msgid "Ellipse" msgstr "Elipszis" msgid "Wave" msgstr "Hullám" msgid "Current day marker" msgstr "Aktuális nap megjelölése" msgid "Arrow" msgstr "Nyíl" msgid "Free-hand circle" msgstr "Szabadkézi kör" msgid "Background color" msgstr "Háttérszín" msgid "Header background color" msgstr "Fejléc háttérszíne" msgid "Header foreground color" msgstr "Fejléc előtérszíne" msgid "Weekend days color" msgstr "Hétvégi napok színe" msgid "Day color" msgstr "Nap színe" msgid "Previous/Next month's day color" msgstr "Előző/Következő hónap napjának színe" msgid "Cursor color" msgstr "Kurzor színe" msgid "Event marker color" msgstr "Esemény jelölő szín" msgid "Current day marker color" msgstr "Aktuális nap jelölő szín" msgid "Birthday marker color" msgstr "Születésnap jelölő szín" msgid "Date font" msgstr "Dátum betűtípus" msgid "Calendar font" msgstr "Naptár betűtípus" msgid "Note font" msgstr "Jegyzet betűtípus" msgid "Enable block cursor" msgstr "Tömb kurzor engedélyezése" msgid "Cursor thickness" msgstr "Kurzor vastagsága" msgid "Thin" msgstr "Vékony" msgid "Thick" msgstr "Vastag" msgid "Edit category" msgstr "Kategória szerkesztése" msgid "Color" msgstr "Szín" msgid "Name" msgstr "Név" msgid "Select ICS file" msgstr "Válasszon ICS fájlt" msgid "All Files" msgstr "Minden fájl" msgid "Calendar files (*.ics)" msgstr "Naptár fájlok (*.ics)" msgid "Modify ICAL parameters" msgstr "ICAL paraméterek módosítása" msgid "Filename" msgstr "Fájlnév" msgid "Options" msgstr "Beállítások" msgid "Disabled" msgstr "Tiltva" msgid "Valid" msgstr "Érvényes" msgid "Description" msgstr "Leírás" msgid "Full date" msgstr "Teljes dátum" msgid "Mark" msgstr "Megjelölt" msgid "Week start on Monday" msgstr "A hét kezdőnapja a Hétfő" msgid "Show day names" msgstr "Nap nevének mutatása" msgid "No month change" msgstr "Nincs hónap váltás" msgid "Show week numbers" msgstr "Hetek számának mutatása" msgid "Simple view in full-year calendar" msgstr "Egyszerű nézet a teljes évi naptárban" msgid "Enable auxilary calendars" msgstr "Külső naptárak engedélyezése" msgid "Ascending sorting in day notes browser" msgstr "Emelkedő sorrend a napi bejegyzések böngészőben" msgid "Enable spell checker in day notes" msgstr "Alárírás ellenőrzése a napi jegyzeteknél" msgid "Current time" msgstr "Jelenlegi idő" msgid "Show seconds" msgstr "Másodperc mutatása" msgid "Day number" msgstr "Napok száma" msgid "Today distance" msgstr "Mai teendők" msgid "Marked days" msgstr "Megjelölt napok" msgid "Week number" msgstr "Hetek száma" msgid "Weekend days" msgstr "Hétvégi napok" msgid "Day category" msgstr "Nap kategória" msgid "Moon phase" msgstr "Hold fázis" msgid "Day notes" msgstr "Napi jegyezetek" msgid "Day categories" msgstr "Nap kategóriák" msgid "iCalendar files" msgstr "iCalendar fájlok" msgid "Show in day info panel" msgstr "Napi információs panel megjelenítése" msgid "Tasks list" msgstr "Feladatok lista" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "No." msgid "Summary" msgstr "Összegzés" msgid "Due date" msgstr "Lejárat napja" msgid "Priority" msgstr "Prioritás" msgid "Error printing" msgstr "Hiba a nyomtatáskor" msgid "No birthdays defined" msgstr "Nincsenek születésnapok meghatározva" msgid "Birthdays list" msgstr "Születésnapok listája" msgid "Days to birthday" msgstr "Születésnapig hátralévő napok" msgid "today" msgstr "ma" msgid "Select CSV file" msgstr "CSV fájl kiválasztása" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (vesszővel elválasztott értékek) fájlok (*.csv)" msgid "Please select file first." msgstr "Kérem előbb válasszon fájlt." msgid "Import contacts" msgstr "Kapcsolatok importálása" msgid "Import type" msgstr "Importálás típusa" msgid "File" msgstr "Fájl" msgid "Input filename" msgstr "Fájnév megadása" msgid "Import" msgstr "Importálás" msgid "Nothing to import." msgstr "Nincs mit importálni." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kapcsolat hozzáadva" msgstr[1] "kapcsolatok hozzáadva" msgid "of" msgstr "/" msgid "Record" msgstr "Rekord" msgid "Number fields per record" msgstr "Mezők száma rekordonként" msgid "Use first record as header" msgstr "Az első rekord legyen a fejléc" msgid "Field type" msgstr "Mező típusa" msgid "Value" msgstr "Érték" msgid "No records found in selected file." msgstr "Nincs egyetlen rekord sem a kiválasztott fájlban." msgid "Cannot read file." msgstr "A fájl nem olvasható." msgid "Cannot open file." msgstr "A fájl nem nyitható meg." msgid "Counter" msgstr "Számláló" msgid "Show calendar" msgstr "Naptár megjelenítése" msgid "Show tasks" msgstr "Feladatok megjelenítése" msgid "Show contacts" msgstr "Kapcsolatok megjelenítése" msgid "Show notes" msgstr "Jegyzetek megjelenítése" msgid "Show options" msgstr "Opciók megjelenítése" msgid "Quit" msgstr "Kilépés" msgid "Show small calendar window" msgstr "Kis naptár ablak mutatása" msgid "Check for events since last run" msgstr "Események ellenőrzése a legutóbbi indítás óta" msgid "Number of days to check forward for events (default: 0)" msgstr "Események ellenőrzése napokban (alapértelmezett: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "Egyező kapcsolatok a megadott karakterlánccal." msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" "A felhasználói konfiguráció útvonal opció elavult. Használja az XDG " "környezeti változókat helyette." msgid "ERROR: Cannot create config files" msgstr "HIBA: A konfigurációs fájlok létrehozása sikertelen" msgid "Another copy of OSMO is already running." msgstr "Már fut egy másik OSMO példány." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Egyszerre kettő vagy több példány használata az OSMO programból " "adatvesztéshez vezethez." msgid "Do you really want to continue?" msgstr "Biztosan folytatni kívánja?" #, fuzzy, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" "Régi Osmo konfigurációs könyvtárat találtam %s. A konfigurációs fájlok és az " "adatok át lesznek másolva XDG kompatibilis könyvtárakba. A régi " "konfigurációs könyvtár törölve lesz a sikeres másolás után." #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Alacsony" msgid "High" msgstr "Magas" msgid "Done!" msgstr "Kész!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kapcsolat exportálva" msgstr[1] "kapcsolatok exportálva" msgid "Cannot create file." msgstr "Fájl létrehozása sikertelen." msgid "Select output file" msgstr "Válasszon kimeneti fájlt" msgid "Export contacts" msgstr "Kapcsolatok exportálása" msgid "Output format" msgstr "Kimenet formátuma" msgid "Add header" msgstr "Fejléc hozzáadása" msgid "Fields to export" msgstr "Mezők exportálása" msgid "All" msgstr "Mind" msgid "Invert" msgstr "Megfordítás" msgid "Select fields" msgstr "Mezők választása" msgid "Output filename" msgstr "Kimeneti fájlnév megadása" msgid "Export" msgstr "Exportálás" msgid "Color of items that are due today" msgstr "Ma esedékes elemek színe" msgid "Color of items that are due in the next 7 days" msgstr "A következő 7 napban esedékes elemek színe" msgid "Color of items that are past due" msgstr "A már elmúlt tételek színe" msgid "Task info font" msgstr "Feladatok információ betűtípus" msgid "Show in bold tasks with high priority" msgstr "Mutassa félkövérrel a magas prioritású feladatokat" msgid "Hide completed tasks" msgstr "Kész feladatok elrejtése" msgid "Delete completed tasks without confirmation" msgstr "A kész feladatok törlése megerősítés nélkül" msgid "Add new task when double clicked on tasks list" msgstr "Új feladat hozzáadás dupla kattintással a feladatok listában" msgid "Postpone time" msgstr "halasztási idő" msgid "minutes" msgstr "perc" msgid "0 for disable" msgstr "0 - letiltva" msgid "Repeat sound alarm" msgstr "Hang figyelmeztetés ismétlése" msgid "times" msgstr "idő" msgid "Global notification command" msgstr "Globális figyelmeztető parancs" msgid "Tasks options" msgstr "Feladatok beállításai" msgid "Reminder options" msgstr "Emlékeztető opciók" msgid "Insert timeline" msgstr "idővonal beszúrása" msgid "Timeline" msgstr "Idővonal" msgid "From (hour)" msgstr "Kezdete (óra)" msgid "Step (minutes)" msgstr "Lépés (perc)" msgid "To (hour)" msgstr "Vége (óra)" msgid "_Paste" msgstr "_Beillesztés" msgid "Please select at least one day when recurrency is enabled." msgstr "Kérem válasszon legalább egy napot az ismétlés engedélyezéséhez." msgid "Set time" msgstr "Idő beállítása" msgid "Hour" msgstr "Óra" msgid "Minute" msgstr "Perc" msgid "Today" msgstr "Ma" msgid "Tomorrow" msgstr "Holnap" msgid "Selected task will be removed." msgstr "A kijelölt feladat törölve lesz." msgid "Select date and time" msgstr "Válasszon dátumot és időt" msgid "Enable sound notification" msgstr "Hangjelzés engedélyezése" msgid "Enable notification dialog" msgstr "Értesítési párbeszédablak engedélyezése" msgid "Alarm warning" msgstr "Figyelmeztető jelzés" msgid "Days" msgstr "Napok" msgid "Hours" msgstr "Órák" msgid "Minutes" msgstr "Percek" msgid "Alarm command" msgstr "Figyelmeztető parancs" msgid "Date period" msgstr "Dátum periódus" msgid "Months" msgstr "Hónapok" msgid "Repeat" msgstr "Ismétlés" msgid "Repeat in the following days" msgstr "Ismétlés a következő napokban" msgid "Time period" msgstr "Idő periódus" msgid "Start" msgstr "Kezdés" msgid "End" msgstr "Vége" msgid "Interval" msgstr "Intervallum" msgid "Ignore alarm when task expired offline" msgstr "Figyelmen kivül hagyja ha a feladat már lejárt" msgid "Recurrent task" msgstr "Ismétlődő feladat" msgid "Enable" msgstr "Engedélyezve" msgid "Edit task" msgstr "Feladat szerkesztése" msgid "Add task" msgstr "Feladat hozzáadása" msgid "Basic" msgstr "Alapértelmezett" msgid "Advanced" msgstr "Bővített" msgid "New Moon" msgstr "Új Hold" msgid "Waxing Crescent Moon" msgstr "Növekvő első negyed" msgid "Quarter Moon" msgstr "Első negyed" msgid "Waxing Gibbous Moon" msgstr "Növekvő három negyed" msgid "Full Moon" msgstr "Telihold" msgid "Waning Gibbous Moon" msgstr "Csökkenő három negyed" msgid "Last Quarter Moon" msgstr "Utolsó negyed" msgid "Waning Crescent Moon" msgstr "Csökkenő első negyed" msgid "Cannot create backup!" msgstr "Biztonsági másolat létrehozása sikertelen!" msgid "Save backup" msgstr "Biztonsági másolat mentése" msgid "Password protection" msgstr "Jelszó védett" msgid "Enter password" msgstr "Jelszó megadása" msgid "Re-enter password" msgstr "Jelszó mé gegyszer" msgid "Please enter the password" msgstr "Jelszó még egyszer" msgid "Passwords do not match!" msgstr "A jelszavak nem egyeznek!" msgid "Backup file saved successfully!" msgstr "Biztonsági másolat mentése sikeres!" msgid "Open backup file" msgstr "Biztonsági másolat megnyitása" msgid "Osmo backup files (*.bck)" msgstr "Osmo biztonsági másolat fájlok (*.bck)" msgid "This is not Osmo backup file" msgstr "Ez nem Osmo biztonsági másolat fájl" msgid "Incorrect password!" msgstr "Érvénytelen jelszó!" msgid "All your data will be replaced with backup file content." msgstr "Minden adat cserélve lesz a biztonsági másolatban lévő tartalommal." msgid "Osmo has to be restarted now..." msgstr "Az Osmo most újra indul..." msgid "Please select address" msgstr "Kérem adja meg a címet" msgid "First name" msgstr "Utónév" msgid "Last name" msgstr "Vezetéknév" msgid "Second name" msgstr "Középső név" msgid "Nickname" msgstr "Becenév" msgid "Tags" msgstr "Tagek" msgid "Name day date" msgstr "Névnap" msgid "Home address" msgstr "Otthoni cím" msgid "Home postcode" msgstr "Otthoni irányítószám" msgid "Home city" msgstr "Otthoni város" msgid "Home state" msgstr "Otthoni állam" msgid "Home country" msgstr "Otthoni ország/terület" msgid "Organization" msgstr "Szervezet" msgid "Department" msgstr "Részleg" msgid "Work address" msgstr "Munkahelyi cím" msgid "Work postcode" msgstr "Munkahelyi irányítószám" msgid "Work city" msgstr "Munkahelyi város" msgid "Work state" msgstr "Munkahelyi állam" msgid "Work country" msgstr "Munkahelyi ország/terület" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Otthoni telefon" msgid "Home phone 2" msgstr "Otthoni telefon 2" msgid "Home phone 3" msgstr "Otthoni telefon 3" msgid "Home phone 4" msgstr "Otthoni telefon 4" msgid "Work phone" msgstr "Munkahelyi telefon" msgid "Work phone 2" msgstr "Munkahelyi telefon 2" msgid "Work phone 3" msgstr "Munkahelyi telefon 3" msgid "Work phone 4" msgstr "Munkahelyi telefon 4" msgid "Cell phone" msgstr "Mobiltelefon" msgid "Cell phone 2" msgstr "Mobiltelefon 2" msgid "Cell phone 3" msgstr "Mobiltelefon 3" msgid "Cell phone 4" msgstr "Mobiltelefon 4" msgid "E-Mail" msgstr "Email" msgid "E-Mail 2" msgstr "Email 2" msgid "E-Mail 3" msgstr "Email 3" msgid "E-Mail 4" msgstr "Email 4" msgid "WWW" msgstr "Honlap" msgid "WWW 2" msgstr "Honlap 2" msgid "WWW 3" msgstr "Honlap 3" msgid "WWW 4" msgstr "Honlap 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotó" msgid "New contact" msgstr "Új kapcsolat" msgid "Remove contact" msgstr "Kapcsolat eltávolítása" msgid "Show birthdays" msgstr "Születésnapok mutatása" msgid "Show contact location on the map" msgstr "A kapcsolat helyének mutatása a térképen" msgid "Backup data" msgstr "Biztonsági mentés" msgid "Restore data" msgstr "Biztonsági mentés visszaállítása" msgid "About" msgstr "Névjegy" msgid "Clear" msgstr "Töröl" msgid "First Name" msgstr "Keresztnév" msgid "Last Name" msgstr "Vezetéknév" msgid "All fields" msgstr "Összes mező" msgid "Contact details" msgstr "Kapcsolat tulajdonságai" msgid "Close contact panel" msgstr "Kapcsolat panel bezárása" msgid "The note has changed." msgstr "A jegyzet módosult." msgid "Do you want to save it?" msgstr "El szeretné menteni?" msgid "No URLs found in the selection..." msgstr "Nincs URL a kiválasztott részen..." msgid "URLs will be opened in the default browser." msgstr "URL megnyitása az alapértelmezett böngészőben" msgid "Do you want to continue?" msgstr "Valóban folytatja?" msgid "Too many links selected!" msgstr "Túl sok link kiválasztva!" msgid "links opened" msgstr "linkek megnyitva" msgid "Words" msgstr "Szavak" msgid "Lines" msgstr "Sorok" msgid "Characters" msgstr "Karakterek" msgid "White characters" msgstr "Fehér karaktereke" msgid "Bytes" msgstr "Bájtok" msgid "Document" msgstr "Dokumentum" msgid "Selection" msgstr "Kiválasztás" msgid "Modified" msgstr "Módosítva" msgid "New note" msgstr "Új jegyzet" msgid "Edit note" msgstr "Jegyzet szerkesztése" msgid "Delete note" msgstr "Jegyzet törlése" msgid "Save note" msgstr "Jegyzet mentése" msgid "Find" msgstr "Keresés" msgid "Toggle spell checker" msgstr "aláírásellenőrzés váltása" msgid "Bold" msgstr "Félkövér" msgid "Italic" msgstr "Dőlt" msgid "Underline" msgstr "Aláhúzott" msgid "Strikethrough" msgstr "Áthúzott" msgid "Highlight" msgstr "Kiemelés" msgid "Clear attributes" msgstr "Formázások törlése" msgid "Open URL links" msgstr "URL linkek megnyitása" msgid "Insert current date and time" msgstr "Aktuális dátum és idő beszúrása" msgid "Insert separator" msgstr "Elválasztó beszúrása" msgid "Statistics" msgstr "Statisztikák" msgid "Close editor" msgstr "Szerkesztő bezárása" msgid "Note name" msgstr "Jegyzet neve" msgid "Read-only" msgstr "Csak olvasható" msgid "Line" msgstr "Sor" msgid "Column" msgstr "Oszlop" msgid "case sensitive" msgstr "kis/nagybetűre érzékeny" msgid "Close find entry" msgstr "Kereső sáv bezárása" msgid "Edit entry" msgstr "Bejegyzés szerkesztése" msgid "Remember cursor position" msgstr "Kurzor pozíció megjegyzése" msgid "Selected note will be removed." msgstr "A kiválasztott jegyzet törölve lesz." msgid "No further data recovery will be possible." msgstr "Az adatok visszaállítása nem lehetséges." msgid "Add note" msgstr "Jegyzet hozzáadása" msgid "Plain" msgstr "Sima" msgid "Encrypted" msgstr "Titkosított" msgid "Note type" msgstr "Jegyzet típusa" msgid "Cannot open the note." msgstr "A jegyzet nem nyitható meg." msgid "encryption support is disabled" msgstr "titkosítási támogatás letiltva" msgid "Authorization" msgstr "Azonosítás" msgid "year" msgid_plural "years" msgstr[0] "év" msgstr[1] "év" msgid "day" msgid_plural "days" msgstr[0] "nap" msgstr[1] "nap" msgid "hour" msgid_plural "hours" msgstr[0] "óra" msgstr[1] "óra" msgid "minute" msgid_plural "minutes" msgstr[0] "perc" msgstr[1] "perc" msgid "second" msgid_plural "seconds" msgstr[0] "másodperc" msgstr[1] "másodperc" msgid "or" msgstr "vagy" msgid "rounded down" msgstr "lefelé kerekítve" msgid "week" msgid_plural "weeks" msgstr[0] "hét" msgstr[1] "hét" msgid "working day" msgid_plural "working days" msgstr[0] "munkanap" msgstr[1] "munkanapok" msgid "time is ignored" msgstr "idő kihagyva" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "Hétvégi nap" msgstr[1] "Hétvégi napok" msgid "This calculator only supports dates after year 1." msgstr "A kalkulátor csak az 1. év utántól támogatja a dátumokat" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "Hétvégi nap kihagyása" msgstr[1] "Hétvégi napok kihagyása" msgid "Date calculator" msgstr "Dátum kalkulátor" msgid "Current date" msgstr "Jelenlegi dátum" msgid "Set current date" msgstr "Jelenlegi dátum beállítása" msgid "Second" msgstr "Másodperc" msgid "Set current time" msgstr "Jelenlegi idő beállítása" msgid "Reset time" msgstr "Idő törlése" msgid "First date and time" msgstr "Első dátum és idő" msgid "Second date and time" msgstr "Második dátum és idő" msgid "Alternative time units" msgstr "Alternatív időegység" msgid "Result" msgstr "Eredmény" msgid "Duration between two dates" msgstr "Dátumok közötti idő" msgid "Operation" msgstr "Művelet" msgid "add" msgstr "növelés" msgid "subtract" msgstr "csökkentés" msgid "Date and time to add or subtract from" msgstr "Dátum és idő növelése vagy csökkentése innentől" msgid "Years" msgstr "Évek" msgid "Weeks" msgstr "Hetek" msgid "Seconds" msgstr "Másodpercek" msgid "Ignore weekend days" msgstr "Hétvégi napok kihagyása" msgid "Reset fields" msgstr "Mezők alaphelyzetbe" msgid "Time to add or subtract" msgstr "Idő növelése vagy csökkentése" msgid "Add to or subtract from a date" msgstr "Növelés vagy csökkentés a dátumhoz képest" msgid "Cannot perform selected operation." msgstr "A kiválasztott művelet nem hajtható végre." msgid "Task has been modified or removed." msgstr "A feladat módosítva vagy törölve." msgid "Remind me later" msgstr "Jegyezze meg" msgid "Done" msgstr "Kész" msgid "Show task" msgstr "Feladat megjelenítése" msgid "Alarm warning!" msgstr "Riasztó figyelmeztetés!" msgid "postponed" msgstr "halasztott" msgid "Day note" msgstr "Napi jegyzet" msgid "Events" msgstr "Események" msgid "Event" msgstr "Esemény" msgid "Task" msgstr "Feladat" msgid "Birthday" msgstr "Születésnap" msgid "Show Osmo" msgstr "Osmo megjelenítése" msgid "event" msgid_plural "events" msgstr[0] "esemény" msgstr[1] "esemény" msgid "No valid calendars defined" msgstr "Nincsenek valós naptárak meghatározva" msgid "iCalendar events" msgstr "iCalendar események" msgid "Time" msgstr "Idő" msgid "The list will be cleared and all entries will be lost." msgstr "A lista törölve lesz és minden elem el fog veszni." msgid "event exported" msgid_plural "events exported" msgstr[0] "esemény exportálva" msgstr[1] "események exportálva" msgid "iCalendar export" msgstr "iCalendar export" msgid "Day Selector" msgstr "Nap választó" msgid "Use date period" msgstr "Dátum periódus használata" msgid "_Add" msgstr "Hozzá_adás" msgid "_Clear" msgstr "_Törlés" msgid "_Remove" msgstr "_Eltávolítás" msgid "No tasks with defined date found." msgstr "Nincsenek feladatok a meghatározott dátumban." msgid "Save tasks" msgstr "Feladatok mentése" msgid "tasks exported" msgstr "feladatok exportálva" msgid "was born" msgstr "született" msgid "year old" msgid_plural "years old" msgstr[0] "éves" msgstr[1] "éves" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "nap telt el az évből" msgstr[1] "nap telt el az évből" msgid "the last day of the year" msgstr "hátralévő napok száma az évben" msgid "Day tasks" msgstr "Napi feladatok" msgid "Selected day note will be removed." msgstr "A kiválasztott nap jegyzetei törölve lesznek." msgid "Continue?" msgstr "Folytatja?" msgid "Previous year" msgstr "Előző év" msgid "Previous month" msgstr "Előző hónap" msgid "Previous day" msgstr "Előző nap" msgid "Next day" msgstr "Következő nap" msgid "Next month" msgstr "Következő hónap" msgid "Next year" msgstr "Következő év" msgid "Full-year calendar" msgstr "Egész éves naptár" msgid "Print calendar" msgstr "Naptár nyomtatása" msgid "Toggle day note panel" msgstr "Váltás a nap jegyzet panelra" msgid "Select day color" msgstr "Nap színének kiválasztása" msgid "Browse notes" msgstr "Jegyzetek keresése" msgid "Browse iCal events" msgstr "iCal esemény tallózás" msgid "Export to iCal file" msgstr "iCal fájl exportálása" msgid "Previous and next month" msgstr "Előző és következő hónap" msgid "Close note panel" msgstr "Jegyzet panel bezárása" msgid "Clear text" msgstr "Szöveg törlése" msgid "Info" msgstr "Információ" msgid "Select color" msgstr "Szín kiválasztása" msgid "Name day" msgstr "Névnap" msgid "Printing properties" msgstr "Nyomtatási beállítások" msgid "Month name" msgstr "Hónap neve" msgid "Day name" msgstr "Nap neve" msgid "Fonts" msgstr "Betűtípusok" msgid "Birthdays" msgstr "Születésnapok" msgid "Namedays" msgstr "Névnapok" msgid "Visible events" msgstr "Látható események" msgid "Padding" msgstr "Helykitöltés" msgid "Event maximum length" msgstr "Esemény maximális hossza" msgid "Page orientation:" msgstr "Lap tájolása:" msgid "Portrait" msgstr "Álló" msgid "Landscape" msgstr "Fekvő" msgid "Disable background colors" msgstr "Háttérszínek letiltása" msgid "Leap year" msgstr "Szökőév" msgid "Yes" msgstr "Igen" msgid "No" msgstr "Nem" msgid "Chinese year animal" msgstr "Kínai állat naptár" msgid "Number of days" msgstr "Napok száma" msgid "Number of weeks" msgstr "Hetek száma" msgid "Number of weekend days" msgstr "Hétvégek napjainak száma" msgid "Year info" msgstr "Év információ" msgid "Alternative view" msgstr "Alternatív nézet" msgid "Started" msgstr "Kezdete" msgid "Finished" msgstr "Befejezett" msgid "New task" msgstr "Új feladat" msgid "Remove task" msgstr "Feladat törlése" msgid "Change due date to previous date" msgstr "Esedékesség váltása az előző dátumra" msgid "Change due date to next date" msgstr "Esedékesség váltása a következő dátumra" msgid "Export tasks" msgstr "Feladatok exportálása" msgid "Print visible tasks list" msgstr "Látható feladatok listájának nyomtatása" msgid "Task details" msgstr "Feladat részletei" msgid "Close description panel" msgstr "Leírás panel bezárása" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "váltás az előző fülre" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "váltás a következő fülre" msgid "switch to selected page" msgstr "váltás a következő lapra" msgid "show options window" msgstr "beállítások ablak mutatása" msgid "show about window" msgstr "névjegy ablak mutatása" msgid "toggle fullscreen mode" msgstr "teljes képernyős mód" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "váltás a beállítások és névjegy fülek között is" msgid "exit" msgstr "kilépés" msgid "Space" msgstr "Szóköz" msgid "select current date" msgstr "aktuális dátum kiválasztása" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "személyi adatok rejtése/mutatása" msgid "Arrows" msgstr "Nyilak" msgid "change day" msgstr "nap cseréje" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "tartalom görgetése a nap információs panelen" msgid "change month" msgstr "hónap cseréje" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "év cseréje" msgid "toggle calendars for the previous and next month" msgstr "előző és következő hónap naptár váltása" msgid "day notes browser" msgstr "napi bejegyzés böngésző" msgid "assign background color to day note" msgstr "háttérszín kijelölése a napi jegyzethez" msgid "date calculator" msgstr "dátum kalkulátor" msgid "show full-year calendar" msgstr "Egész éves naptár mutatása" msgid "jump to date" msgstr "ugrás dátumra" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "napi jegyzet eltávolítása" msgid "Alt+Arrows" msgstr "Alt+Nyilak" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "szerkesztő bezárása" msgid "toggle bold" msgstr "félkövér" msgid "toggle italic" msgstr "dőlt" msgid "toggle underline" msgstr "aláhúzott" msgid "toggle strikethrough" msgstr "áthúzott" msgid "toggle highlight" msgstr "kiemelés" msgid "Arrows Up/Down" msgstr "Nyilakkal Fel/Le" msgid "toggle alternative view" msgstr "alternatív nézet" msgid "year info" msgstr "év információ" msgid "set current year" msgstr "legyen az aktuális év" msgid "close full-year calendar" msgstr "egész éves naptár bezárása" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "feladat hozzáadása" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "feladat szerkesztése" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "feladat törlése" msgid "toggle hidden tasks" msgstr "rejtett feladatok váltása" msgid "activate search field" msgstr "aktív kereső mező" msgid "Left, Right" msgstr "Bal, Jobb" msgid "change category filter" msgstr "kategória szűrő váltása" msgid "close task info panel" msgstr "feladat információs panel bezárása" msgid "Insert" msgstr "Beszúr" msgid "add contact" msgstr "kapcsolat hozzáadása" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "kapcsolat szerkesztése" msgid "remove contact" msgstr "kapcsolat törlése" msgid "change search mode" msgstr "keresési mód váltása" msgid "close contact details panel" msgstr "kapcsolat tulajdonságai panel bezárása" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "jegyzet megnyitása" msgid "add note" msgstr "jegyzet hozzáadása" msgid "remove note" msgstr "jegyzet törlése" msgid "edit note name and category" msgstr "jegyzet név és kategória szerkesztése" msgid "close note editor" msgstr "jegyzet szerkesztő bezárása" msgid "save note" msgstr "jegyzet mentése" msgid "find text" msgstr "szöveg keresése" msgid "clear selection attributes" msgstr "kijelölés formázásának törlése" msgid "open URLs" msgstr "URL megnyitása" msgid "show document statistics" msgstr "dokumentum statisztika mutatása" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "Az OSMO-t úgy tervezték, hogy szem előtt tartsa a felhasználó kényelmét, " "ezért sok gyorsbillentyű van. Itt van a teljes lista:" msgid "Note editor" msgstr "Jegyzet szerkesztő" msgid "Selector" msgstr "Elválasztó" msgid "Editor" msgstr "Szerkesztő" msgid "A handy personal organizer" msgstr "A kényelmes személyi szervező" msgid "compiled on" msgstr "fordítás ideje" msgid "Programming" msgstr "Programozó" msgid "Graphics" msgstr "Grafika" msgid "Contributors" msgstr "Közreműködők" msgid "Translators" msgstr "Fordítók" msgid "Mailing lists" msgstr "Levelező listák" msgid "Bug tracker" msgstr "Hiba követő" msgid "Feature requests" msgstr "Funkciók kérése" msgid "Available modules" msgstr "Elérhető modulok" msgid "Compiled-in features" msgstr "Támogatott lehetőségek" msgid "iCalendar support" msgstr "iCalendar támogatása" msgid "Encrypted notes support" msgstr "Titkosított jegyzetek támogatása" msgid "Backup support" msgstr "Biztonsági mentés támogatása" msgid "Printing support" msgstr "Nyomtatás támogatása" msgid "Spell checker support" msgstr "Helyesírás ellenőrzés támogatása" msgid "version" msgstr "verzió" msgid "GIT version" msgstr "GIT verzió" msgid "Key shortcuts" msgstr "Billentyű kombinációk" msgid "License" msgstr "Licenc" #~ msgid "handy personal organizer" #~ msgstr "a kényelmes személyi szervező" osmo-0.4.2/po/ro.mo0000664000175000017500000011027013204320601011000 00000000000000q\) 7 !7/7J7 P7 \7.g77777777 7 78 8!8 %8 /8 :8 D88N8 8 88 888(8 99 %93999?9F9&U9$|9 9999999 :: (:2:A:F:K:R: e: r:~:*::: :::: ;;/;"E;h; z;; ;; ; ; ; ;; ; <"<B<V<]<b<h< y<<< <<<<<.<!*= L=m=|=== === = === = = > > > &>3>F> _> m> z> >> >>%>> > >?? '?3? 7?D? S?`?i?r? ? ? ????+? ? ? @ @(@1@Q@i@r@v@{@@@@@@@@ @!@ @ A A $A .A8A?AGANAhA|A!AAA AA AB BB!B'B6B:B @BMB`BuB|BB BBBBB BBBBBBC CC ,C 7CACGCLC ]C iC sC}CCCCCCCCCCCCCDD D&D +D 8D BD OD ZD gD tD D DD DDDDD DD DDDDD&E,ECEWE^E nEzEE EEEEEEEEF FF "F /F =FGF MFWF iF vFF FF FFFFFFF FF FF FFFG GG#G:GAG GGRG YGdGiG rGGGG GGGG G GGGGG*H1H"AH!dHHHHH H H H HH HHII7(I`IwIoII JJ J'JAJ(aJJ JJJJJ JJKK!K(K .K9K=KDKJKdK:zKKKK K KK L L /L=LLLeLyLL L LLLLLL LLLLM#+MOM_MpM MMMM M MMM M M"M "N ,N7N?NFNMN bNnNvNNN NNN NN N!O"*OMOmO|OOO O OO-O!P2PCPVP_P ePoP ~P P PPP%P Q #Q .Q ;QHQ cQ mQxQ!QJQQQ RRR-RCRIRYRaR gRrR RRRR R RRR R"RSS $S /S=S3DS3xS0S6ST*T0T15TgTTT T TTT TTTTTUU U+U 0U:UBURU#mUUUUUU#UUUUUUVV.V6V;VPV dV pV|V VVVVVV V V V V W W W )W 7W BW MWXW ]WgWmW qW}WWWW WWW#W XX /X :XGX ZXfXX XXXX XX"Y7YGYPYbY&sY*Y YY YY Z %Z2ZQZ VZ`ZpZ ZZZZZZ ZZZ Z [[ [ [ #[-[<[ L[ X[ d[ q[){[[[[[[\\$ \E\\\t\\\\\\ \0\ ]$]8] I]W]w]]]] ]](]] ^ ^)^<^N^c^_ ``&` 6`;D`````````aa'a0a 6aCaTada7xa aaaaab!&bHb Wbbbib pbzbb*b'b bb(c/cDc KcVcec"|ccccccccd-d53didrddddddd!e#n^nfnjn}nnn nnnnnnnn n oo !o -o:oIo`ogovooooooooooop p"p)p :pHpYpmppppp p ppppp qq q!q(q1q9q)Bq+lqqqq qqq qqrr9rKrdrmr vrr#rrr rrrrsss $s.s 6sBs FsPsYs_shs lswssssssss ss ss st ttt!t 5tVt et qt}tttt tttt t&u+u,Du*quuuuuuuuv !v-vGv"Yv|v?vvv}v"vw ww w'w!w-x3xKxwx }xxxxxx x xx yyyy5y5Hy"~yy y y yyyyzz$2zWzqz z zz z zzzz z zz{!*{#L{p{{{{{{{ ||/|8| @|L|)\|||||||||| }} -};}Q}k}} }&}!}#}~'~(A~(j~~ ~~B~~/M` eq',*.=l{$΀݀)W'ʁӁ  8> FTenw)ɂт+0)(Z@ă߃6!'IOV hv -  $ ( 3>(R2{ DžЅ5+/5; A N \imĆ  !':N`vۇ   #3Lf-!0?Zi)$É - 7#C#g Ɗъ9"+6b$t' -6:Oct  Œƌڌތ$ 5?*U֍*A[s ӎ<'A_t'͏֏2-2`z `"O hR5Zbx)'9[z-V6v \h^YT0m}g`CJ .E mqFqf\ 3MQ^2({kBJ~DQYXZ56l|k?8,]m)~nDU*3_Sit8Uv:o-ar7n;&;cx-]aB=!Ifkz0 &4V,p1(I qaj}J+*TjlOUMuude{iYc%VZR@W7QyS<c]j0K4$wL!s%4C5OE=|:<;ve_x7G!b9h9AF$^.2SP) =PDGw@,&\Pz(g pI+?">#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.10 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2011-04-08 23:20+0200 Last-Translator: Alexandru Gavriș Language-Team: Romanian ro Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n !=1); 0 pentru dezactivareOrganizator personalDespreAdaugă contactAdaugă antetAdaugă noi sarcini cînd se dă 2click pe lista cu sarciniAdaugă însemnareAdaugă sarcinăAdaugă sau scade dintr-o datăInformații suplimentareAdresaAvansatVîrstaComandă de alarmăAvertizare de alarmăAlertă!AlgoritmToateToate fileleToate cîmpurileToate obiecteleToate însemnărileToate datele vor fi înlocuite de copia de siguranță.Alt+SăgețiAlt+a, IntroduAlt+e, Ctrl+EnterAtl+r, Șterge/DeleteUnități de timp alternativeVedere alternativăAltă copie de OSMO rulează dejaÎnfățișareVărsătorSigur?BerbecSăgeatăSăgețiSăgeată Sus/JosSortare ascendentă in însemnările zileiMăcar 1 modul trebuie să fie vizibil.AutorizareModule disponibileDocumentul de siguranță a fost salvat!Suport de sigurantăPrimarExcelentăZi de naștereData datei de naștereCuloare semnalui zilei de naștereZile de naștereLista cu zile de naștereBlogAccentuat/BoldJosRăsfoiește evenimente iCalRăsfoiește însemnărileVînător de eroriBițidocumente CSV (valori delimitate de virgulă) (*.csv)CalendarFilele calendarului (*.ics)Typefaceul calendaruluiNotițe din calendarRacCrearea siguranței imposibilăNu se poate crea document.Nu se poate deschide fișierul.Nu se poate deschide însemnarea.Nu se poate opera acțiunea aleasăNu se poate citi fișierul.CapricornCaractere sensibile CategoriiCategorieTelefon mobilTelefon mobil 2Telefon mobil 3Telefon mobil 4Modifică data scadentă cu data următoareModifică data scadentă cu data anterioarăCaractereVerifică evenimente noiAnimal din anul chinezCercOrașulCurățăAnulează atributeleCurăță textÎnchide panoulÎnchide panoul descriptivÎnchide editorÎnchide cîmpul căutăriiÎnchide secțiunea de însemnăriCuloareCuloarea etichetelor de contactCuloarea obiectelor scadente în 7 zileCuloarea obiectelor scadente aziCuloarea obiectelor scadente în...Culoarea legăturilorCuloriColoanăFuncții procesateCompresieDetaliile de contactContacteContinuă?ContributoriȚaraCreatCtrl+EnterCtrl+PaginăJosCtrl+PaginăSusCtrl+SpațiuCtrl+Sus/JosData curentăSemnalul zilei curenteCuloarea semnalului pentru ziua curentăLuna curentăTimp curentAnul curentCuloare cursoruluiGrosimea cursoruluiDD-MM-YYYYDataData și timpul adăugat sau scăzut dinCalculator de dateTypefaceul dateiFormatul dateiSyntaxa formatului zileiFormatul de antet al zileiPerioda zileiZiSelectorul zileiCategorii de zileCategoria zileiNumele ziÎnsemnarea zileiSemnal al însemnării zilniceÎnsemnările zileiNumarul zileiSarcinile zileiZileZile pînă la ziua de naștereȘtergeȘterge sarcinile completate fără confirmareȘterge însemnareDepartamentDescriereDezactiveză sublinierea din legăturiDezactivateDorești să continui?Dorești salvarea ei?DocumentCîineGataGata!DragonData scadentăDurata dintre 2 dateE-mailE-Mail 2E-Mail 3E-Mail 4Client de e-mailEROARE: Nu se pot crea fișierele de configureEditează categoriaEditează contactEditează cîmpulEditeazăEditează sarcinaEditorElipsăActiveazăActivează calendare auxiliareActivează cursorul de tip blocActivează semnal sonorActivează corectorul gramatical în însemnările zileiActiveză 'system tray'Activează ponturiEncriptatSuport de însemnări encriptateEncriptareSfîrșitEnterScrie parolaEroareEroare de printareEscEvenimentSemnal de evenimentCuloarea semnalului de evenimentLungimea maximă a evenimentuluiEvenimenteExportăExportă contacteExportă sarciniExportă către documentul iCalRapidăFaxSolicită funcțiiTipul cîmpuluiCîmpuri de exportDocumentNumele fileiFiltruCautăTerminatNumePrima data și timpulNumeDimensiune fontTypefaceuriGăinăCercuri manualeDe la (ora)Lună plinăData completăCalendar anual completGemeniGeneralitățiComanda de nofificare globalăBunăGraficăGrupGrupuriIepureAmestec/HashingAjutoareAscundeAscunde sarcinile completateAscunde grupul de coloaneMareEvidențiereAcasăAdresa de acasăOrașul natalȚara de origineTelefonul de acasăTelefonul de acasă 2Telefonul de acasă 3Telefonul de acasă 4Codul poștal de acasăJudețul natalAcasă/FinalOrizontalăCalOraZileIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnoră alarma cînd sarcinile au expiratIgnoră evenimentele cu însemnări zilniceIgnoră zilele sfdImportăImporta contacteImporta tipulParolă greșităInfoInformațiiIntrodu numele documentuluiIntroduIntrodu data și timpul curentIntrodu separatorInserează linie de timpInternetIntervatInverseazăCursivDimensiuneaa fontului pentru obiectSări la datăScurtături de tasteOrizontalMarePrenumeLuna la ultimul pătrarUltimele schimbăriPrenumeSchemăAn bisectStîngaLeft, RightLeuBalanțăLicențaRîndRînduriMicMM-DD-YYYYMM/DD/YYListe de mesajeSemnalZilele însemnateMedieMinutMinuteDiverseModificatModifică parametri ICALMaimuțăLunăNumele luniiLuniFaza luniiNumeNume ziNumește ziua dateiDimensiunea fontului pentru numeNumele zilelorLună nouăContact nouÎnsemnare nouăSarcină nouăZiua următoareLuna următoareAnul următorPoreclăNuNici o zi de naștere definităFără datăRecuperarea datelor va fi imposibilă.Nici o schimbare a luniiNici o înregistrare în fișierul selectat.Nici o sarcină cu dată definită gasităNici un calendar valid definitNr.NiciunaNotițăEditor de însemnăriTypefaceul însemnăriiNume însemnareTipul însemnăriiÎnsemnăriOpțiunile însemnărilorNimic de importatNumărul de cîmpuri/înregistrareNumăr de zileNr. de zile de verificat înainte pentru evenimente (default: 0Număr de zile de sfsNumăr de săptămîniOSMO a fost proiectat pentru a se mula preferințelor utilizatorului, a.î. sunt multe scurtături de taste. Lista completă:Deschide documentul de siguranțăOperațiuneOpțiuniOrganizațiaDocumentele de siguranță Osmo (*.bkp)Osmo necesită reinițializare...Osmo trebuie repornit pentru reinițializare.Numele filei de ieșireFormat rezultatSuprascrie reglajele localeBivolCăptușealăOrientarea paginii:PaginăSus/PaginăJosProtecția paroleiParole nepotrivite!PersonalTelefoaneFotografieDimensiunea pozeiPorcPeștiSimpluScrie parola, te rog!Selectează adresaSelectează măcar 1 zi cînd recurența e activată.Selectează documentul mai întîiPortretNr. poștalTimp amînatPreferințeLuna precedentă și următoareZiua precedentăLuna precendtăAnul precedentImprimă calendarulPrintează lista sarcinilor vizibileProprietăți de printareSuport de printarePrioritateProgramareLună la 1 pătrarÎntrebăriRenunțăȘobolanRataRescrie parolaDoar-citireÎnregistrareSarcină recurentăReține poziția cursoruluiReține ultima pagină selectatăReține ultima categorie selectatăAmintește-mi mai tîrziuOpțiuni de amintireElimină contactÎndepărtează sarcinaRepetăRepetă în zilele următoareRepetă sunetul de alarmăAnulează cîmpurileAnulează timpulRezultatDreaptaSăgetătorSalvează copiaSalvează datele după fiecare modificareSalveză însemnareSalvează sarciniScorpionCautăSecundăA doua dată și timpulAl doilea numeSecundeSelectează document CSVAlege fila ICSAlege un font...Alege culoareAlege data și timpulSelecteaza culoarea zileiSelectează cîmpurileSelectează fila de ieșireAlege pozaContactele selectate vor fi eliminate.Zilele selectate vor fi eliminateFișierul ales există! Suprascrie?Selectează lunaSelectează luna și anulÎnsemnarea selectată va fi eliminată.Sarcina selectată va fi îndepărtată.Selectează anualSelecțieSelectorStabilește calea implicită pentru setări și fișierele cu datePotrivește data curentăPotrivește timpul curentPotrivește formatul implicitPotrivește timpulOaieArată OsmoArată zile de naștereArată calendarArată amplasarea contactului pe hartăArată contacteArată numele zileiArată butonul de ieșire în bara de unelteArată boldat sarcinile cu prioritate mareArată în secțiunea de informații ale zileiArată notițeArată opțiuniArată secundeArată calendar în fereastră micăArată sarcinaArată sarciniArată numerele de saptămînăVedere simplă in modul de calendar pe anUtilizarea simultană a 2 sau mai multe copii de OSMO poate determina pierderi de date.MicăȘarpePlayer de sunetSpațiuCorector lingvisticSuport gramaticalÎnceputPornește minimizatPornitJudețulStatisticiPas (minute)TăiereTaie însemnările din ultima ziSumarSyntaxa'System tray'Poziția tabuluiEticheteSarcinăDetaliile sarciniiSarcina a fost modificată sau eliminatăFontul sarcinii infoSarciniLista de sarciniOpțiunile sarcinilorTaurTiparul %s va fi înlocuit cu adresa e-mailTiparul %s va fi înlocuit cu fișierul de sunetTiparul %s va fi înlocuit cu adresa webLista va fi curățată și toate informațiile vor fi pierdute.Însemnarea s-a modificat.GrosimeSubțireAcest calculator suportă doar datele de după anul 1.Nu este copia de siguranță OSMOTigruTimpulFormatul timpuluiPerioada oreiTimpul de adăugat sau scăzutCronologieLa (ora)AziDistanța totalăAlternează secțiunea cu însemnările zileiAlterneză corector lingvisticMîineSusTraducătoriTipSubliniereNecunoscutFolosește perioadaUtilizează prima înregistrare ca antetUtilizează formatul sistemului pentru dată, timpValidValoareVerticalăFeciorăColoane vizibileColoanele vizibile în răsfoitorul zilei de naștereEvenimente vizibileWwWWwW 2WwW 3WwW 4Lună calmăLună difuzăAtenționareValLună crescătoareLună convexăWWWNumărul săptămîniiSăptămîna începe luniZilele de final de saptămînăCuloarea zilelor de sdsSăptămîniCaractere goaleCuvinteLucruAdresa de serviciuOrașul serviciuluiȚara serviciuluiTelefonul de serviciuTelefonul de serviciu 2Telefonul de serviciu 3Telefonul de serviciu 4Codul poștal de la serviciuJudețul serviciuluiYYYY-DD-MMYYYY-MM-DDAnInformații anualeAniDaSemnul zodiacalnumele abreviat al luniinumele abreviat al sf.d.sactivează cîmpul de căutareadaugăadaugă contactadaugă însemnareadaugă sarcinăalocă culoare de fundal pentru notița zileicaractere sensibileschimbă filtrul de categoriimodifică ziuamodifică lunaschimbă modul de căutaremodifică anulșterge atributele selecțieiînchide secțiunea de detalii de contactînchide editorulînchide calendarul pe un an completînchide editorul de însemnăriînchide secțiunea de informații cu sarcinicompilat pecontact adăugatcontacte adăugatecontact exportatcontacte exportatecalculator de zilezizileinspectarea notițelor zilnice ziua luniiziua lunii fără zerozi pînă la finalul anuluizile pînă la finalul anuluimodifică contactulmodifică numele însemnării și categoriamodifică sarcinasuportul de encriptare e dezactivat.intrareintrărievenimentevenimenteeveniment exportatevenimente exportateterminăcaută textnumele complet al luniinumele complet al sf.d.sorăoreoreevenimente iCalendarexport de iCalendarFilele iCalendarsuport de iCalendartreci la ziminutminuteminutelunăluninici o intraredindeschide însemnaresauamînatelimină contactulelimină notița zileielimină însemnareelimină sarcinarotunjiresalvează însemnareaderulează conținutul din secțiunea infosecundăsecundealege data curentăstabiliește anul curentarată fereastra despreredă calendarul pe tot anularată fereastra de opțiuniscademută pagina la fila de opțiuni si despremută la fila precedentămută la pagina aleasăsarcini exportateultima zi din antimpul este ignoratoriazicomută vizualizare alternativăcomută accentuat/boldcomută calendare pentru luna precedentă și cea următoarecomută în modul completalternează sarcinile ascunsecomută evidențierecomută cursivcomută vizibilitatea datelor personalecomută tăiatcomută subliniereversiunea fost născutsăptămînăsăptamînizi de sfîrșit de săptămînă (sds)zile de sdsziua sfs e ignoratăzilele sfs sunt ignoratezi de lucruzile de lucruananiinformații anualeanianian cu secolan fără secolosmo-0.4.2/po/cs.po0000664000175000017500000011173313204320601010775 00000000000000# Translators: # Jaroslav Lichtblau , 2015 # Jaroslav Lichtblau , 2014 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2015-07-30 18:10+0000\n" "Last-Translator: Jaroslav Lichtblau \n" "Language-Team: Czech (http://www.transifex.com/projects/p/osmo/language/" "cs/)\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" msgid "Colors" msgstr "Barvy" msgid "Color of contact tags" msgstr "Barva popisku u kontaktů" msgid "Color of links" msgstr "Barva odkazů" msgid "Font size" msgstr "Velikost písma" msgid "Name font size" msgstr "Velikost písma jmen" msgid "Item font size" msgstr "Písmo položky" msgid "Photo size" msgstr "Velikost fotografie" msgid "Small" msgstr "malá" msgid "Medium" msgstr "střední" msgid "Large" msgstr "velká" msgid "Hide group column" msgstr "Skrýt sloupec skupiny" msgid "Maps provider" msgstr "Poskytovatel mapových podkladů" msgid "Age" msgstr "Věk" msgid "Birthday date" msgstr "Datum narození" msgid "Zodiac sign" msgstr "Znamení zvěrokruhu" msgid "Contacts" msgstr "Kontakty" msgid "Appearance" msgstr "Vzhled" msgid "Miscellaneous" msgstr "Ostatní" msgid "Groups" msgstr "Skupiny" msgid "Visible columns in birthday browser" msgstr "Viditelné sloupce v prohlížeči narozenin" msgid "Algorithm" msgstr "Algoritmus" msgid "Hashing" msgstr "Hash" msgid "Compression" msgstr "Komprese" msgid "Ratio" msgstr "Poměr" msgid "Fast" msgstr "Rychlá" msgid "Good" msgstr "Střední" msgid "Best" msgstr "Nejlepší" msgid "Type" msgstr "Typ" msgid "Category" msgstr "Kategorie" msgid "Last changes" msgstr "Poslední změny" msgid "Created" msgstr "Vytvořeno" msgid "Remember the last selected category" msgstr "Zapamatovat si poslední vybranou kategorii" msgid "Use system format for date and time" msgstr "Formát data a času stejný jako v systému" msgid "Notes" msgstr "Poznámky" msgid "Encryption" msgstr "Šifrování" msgid "Visible columns" msgstr "Viditelné sloupce" msgid "Categories" msgstr "Kategorie" msgid "Notes options" msgstr "Nastavení poznámek" msgid "Jump to date" msgstr "Jít na datum" msgid "Day" msgstr "Den" msgid "Month" msgstr "Měsíc" msgid "Year" msgstr "Rok" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Vybrat písmo ..." msgid "None" msgstr "Není" msgid "All items" msgstr "Všechny soubory" msgid "Question" msgstr "Dotaz" msgid "Information" msgstr "Informace" msgid "Error" msgstr "Chyba" msgid "Warning" msgstr "Varování" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Vybraný soubor existuje! Přepsat?" msgid "Selected contact will be removed." msgstr "Vybraný kontakt bude odstraněn." msgid "Are you sure?" msgstr "Opravdu pokračovat?" msgid "No date" msgstr "Žádné datum" msgid "Select photo" msgstr "Vybrat fotografii" msgid "Address" msgstr "Adresa" msgid "Postcode" msgstr "PSČ" msgid "City" msgstr "Město" msgid "State" msgstr "Stát" msgid "Country" msgstr "Země" msgid "Edit contact" msgstr "Upravit kontakt" msgid "Add contact" msgstr "Přidat kontakt" msgid "Personal" msgstr "Osobní" msgid "Group" msgstr "Skupina" msgid "Home" msgstr "Domov" msgid "Work" msgstr "Zaměstnání" msgid "Phones" msgstr "Telefony" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Další informace" msgid "_OK" msgstr "" msgid "no entries" msgstr "žádné záznamy" msgid "entry" msgid_plural "entries" msgstr[0] "záznam" msgstr[1] "záznamy" msgstr[2] "záznamů" msgid "Calendar notes" msgstr "Poznámky kalendáře" msgid "Search" msgstr "Vyhledávání" msgid "Filter" msgstr "Filtr" msgid "Current month" msgstr "Aktuální měsíc" msgid "Selected month" msgstr "Vybraný měsíc" msgid "Current year" msgstr "Příští rok" msgid "Selected year" msgstr "Vybraný rok" msgid "Selected month and year" msgstr "Vybraný rok a měsíc" msgid "All notes" msgstr "Všechny poznámky" msgid "Case sensitive" msgstr "Rozlišuje velikost písmen" msgid "Strikethrough past day notes" msgstr "Přeškrtnout prošlé poznámky" msgid "Date" msgstr "Datum" msgid "Note" msgstr "Poznámka" msgid "_Close" msgstr "" msgid "Rat" msgstr "Krysa" msgid "Ox" msgstr "Buvol" msgid "Tiger" msgstr "Tygr" msgid "Hare" msgstr "Zajíc" msgid "Dragon" msgstr "Drak" msgid "Snake" msgstr "Had" msgid "Horse" msgstr "Kůň" msgid "Sheep" msgstr "Ovce" msgid "Monkey" msgstr "Opice" msgid "Fowl" msgstr "Kohout" msgid "Dog" msgstr "Pes" msgid "Pig" msgstr "Vepř" msgid "Unknown" msgstr "Neznámý" msgid "Aquarius" msgstr "Vodnář" msgid "Pisces" msgstr "Ryba" msgid "Aries" msgstr "Beran" msgid "Taurus" msgstr "Býk" msgid "Gemini" msgstr "Blíženci" msgid "Cancer" msgstr "Rak" msgid "Leo" msgstr "Lev" msgid "Virgo" msgstr "Panna" msgid "Libra" msgstr "Váhy" msgid "Scorpio" msgstr "Štír" msgid "Sagittarius" msgstr "Střelec" msgid "Capricorn" msgstr "Kozoroh" msgid "Osmo has to be restarted to take effect." msgstr "Je třeba restartovat Osmo k provedení změny." msgid "Layout" msgstr "Vzhled" msgid "Vertical" msgstr "Svisle" msgid "Horizontal" msgstr "Vodorovně" msgid "Tabs position" msgstr "Pozice záložek" msgid "Left" msgstr "Vlevo" msgid "Right" msgstr "Vpravo" msgid "Top" msgstr "Nahoře" msgid "Bottom" msgstr "Dole" msgid "Disable underline in links" msgstr "Vypnout podtrhávání odkazů" msgid "Show exit button in toolbar" msgstr "Zobrazit tlačítko ukončení v panelu" msgid "At least one module must be visible." msgstr "Minimálně jeden modul musí být viditelný." msgid "Calendar" msgstr "Kalendář" msgid "Tasks" msgstr "Úkoly" msgid "Override locale settings" msgstr "Potlačit nastavení jazyka" msgid "Date format" msgstr "Formát data" msgid "DD-MM-YYYY" msgstr "dd-mm-rrrr" msgid "MM-DD-YYYY" msgstr "mm-dd-rrrr" msgid "YYYY-MM-DD" msgstr "rrrr-mm-dd" msgid "YYYY-DD-MM" msgstr "rrrr-dd-mm" msgid "Time format" msgstr "Formát času" msgid "hours" msgstr "hodin" msgid "Spell checker language" msgstr "Slovník kontroly jazyka" msgid "Enable tooltips" msgstr "Zobrazovat tipy" msgid "Remember last selected page" msgstr "Pamatovat si poslední vybranou stranu" msgid "Save data after every modification" msgstr "Uložit data po každé změně" msgid "Web browser" msgstr "Webový prohlížeč" msgid "E-mail client" msgstr "E-mailový klient" msgid "Sound player" msgstr "Přehrávač zvuku" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Výraz %s bude nahrazen webovou adresou" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Výraz %s bude nahrazen emailovou adresou" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Výraz %s bude nahrazen zvukovým souborem" msgid "Enable system tray" msgstr "Zobrazovat ikonu v liště" msgid "Start minimised" msgstr "Skrýt po startu" msgid "Ignore day note events" msgstr "Ignorovat události v denních poznámkách" msgid "General" msgstr "Nastavení" msgid "Hide" msgstr "Skrýt" msgid "Helpers" msgstr "Pomocníci" msgid "System tray" msgstr "Systémová lišta" msgid "Preferences" msgstr "Nastavení" msgid "Syntax" msgstr "Syntax" msgid "abbreviated weekday name" msgstr "zkrácený název dne" msgid "full weekday name" msgstr "plný název dne" msgid "abbreviated month name" msgstr "zkrácený název měsíce" msgid "full month name" msgstr "plný název měsíce" msgid "day of the month" msgstr "den v měsíci" msgid "MM/DD/YY" msgstr "mm/dd/rr" msgid "day of the month without leading zeros" msgstr "den měsíce bez počáteční nuly" msgid "month" msgid_plural "months" msgstr[0] "měsíc" msgstr[1] "měsíce" msgstr[2] "měsíců" msgid "year without century" msgstr "rok bez století" msgid "year with century" msgstr "rok se stoletím" msgid "Date header format" msgstr "Formát hlavičky data" msgid "Set default format" msgstr "Nastavit výchozí formát" msgid "Date format syntax" msgstr "Formát data" msgid "Day note marker" msgstr "Značení události dne" msgid "Event marker" msgstr "Označení událostí" msgid "Circle" msgstr "Kruh" msgid "Ellipse" msgstr "Elipsa" msgid "Wave" msgstr "Vlnka" msgid "Current day marker" msgstr "Značení dnešního dne" msgid "Arrow" msgstr "Šipka" msgid "Free-hand circle" msgstr "Ručně kreslený kruh" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Barva dní víkendu" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Barva kurzoru" msgid "Event marker color" msgstr "Barva událostí" msgid "Current day marker color" msgstr "Barva aktuálního dne" msgid "Birthday marker color" msgstr "Barva označení narozenin" msgid "Date font" msgstr "Písmo data" msgid "Calendar font" msgstr "Písmo kalendáře" msgid "Note font" msgstr "Písmo poznámek" msgid "Enable block cursor" msgstr "Podbarvení vybraného dne v kalendáři" msgid "Cursor thickness" msgstr "Tloušťka ohraničení vybraného dne" msgid "Thin" msgstr "slabé" msgid "Thick" msgstr "silné" msgid "Edit category" msgstr "Upravit kategorii" msgid "Color" msgstr "Barva" msgid "Name" msgstr "Jméno" msgid "Select ICS file" msgstr "Vybrat ICS soubor" msgid "All Files" msgstr "Všechny soubory" msgid "Calendar files (*.ics)" msgstr "Soubory kalendáře (*.ics)" msgid "Modify ICAL parameters" msgstr "Upravit ICAL parametry" msgid "Filename" msgstr "Jméno souboru" msgid "Options" msgstr "Nastavení" msgid "Disabled" msgstr "Vypnuto" msgid "Valid" msgstr "Platný" msgid "Description" msgstr "Popis" msgid "Full date" msgstr "Plné datum" msgid "Mark" msgstr "Označit" msgid "Week start on Monday" msgstr "Týden začíná v pondělí" msgid "Show day names" msgstr "Zobrazit jména dní" msgid "No month change" msgstr "Neměnit měsíc" msgid "Show week numbers" msgstr "Zobrazit číslo týdne" msgid "Simple view in full-year calendar" msgstr "Krátké popisy ročního kalendáře" msgid "Enable auxilary calendars" msgstr "Zapnout malé kalendáře" msgid "Ascending sorting in day notes browser" msgstr "Vzestupné řazení při prohlížeči denních poznámek" msgid "Enable spell checker in day notes" msgstr "Zapnout kontrolu jazyka u denních poznámek" msgid "Current time" msgstr "Aktuální čas" msgid "Show seconds" msgstr "Zobrazit sekundy" msgid "Day number" msgstr "Číslo dne" msgid "Today distance" msgstr "Od dnešního dne" msgid "Marked days" msgstr "Označených dní" msgid "Week number" msgstr "Číslo týdne" msgid "Weekend days" msgstr "Víkendových dnů" msgid "Day category" msgstr "Kategorie dne" msgid "Moon phase" msgstr "Fáze měsíce" msgid "Day notes" msgstr "Poznámky na den" msgid "Day categories" msgstr "Kategorie dní" msgid "iCalendar files" msgstr "Soubory iCalendar" msgid "Show in day info panel" msgstr "Zobrazit v panelu informací" msgid "Tasks list" msgstr "Seznam úkolů" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "č." msgid "Summary" msgstr "Popis" msgid "Due date" msgstr "Datum" msgid "Priority" msgstr "Priorita" msgid "Error printing" msgstr "Chyba tisku" msgid "No birthdays defined" msgstr "Narozeniny nejsou určeny" msgid "Birthdays list" msgstr "Seznam narozenin" msgid "Days to birthday" msgstr "Dnů do narozenin" msgid "today" msgstr "dnes" msgid "Select CSV file" msgstr "Vybrat CSV soubor" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CVS (hodnoty oddělené čárkou) soubor (*.csv)" msgid "Please select file first." msgstr "Nejprve je třeba vybrat soubor." msgid "Import contacts" msgstr "Importovat kontakty" msgid "Import type" msgstr "Typ pro import" msgid "File" msgstr "Soubor" msgid "Input filename" msgstr "Jméno vstupního souboru" msgid "Import" msgstr "Importovat" msgid "Nothing to import." msgstr "Není co importovat." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kontakt přidán" msgstr[1] "kontakty přidány" msgstr[2] "kontaktů přidáno" msgid "of" msgstr "z" msgid "Record" msgstr "Záznam" msgid "Number fields per record" msgstr "Počet polí na záznam" msgid "Use first record as header" msgstr "Použít první záznam jako hlavičku" msgid "Field type" msgstr "Typ pole" msgid "Value" msgstr "Hodnota" msgid "No records found in selected file." msgstr "Ve vybraném souboru nebyly nalezeny žádné hodnoty." msgid "Cannot read file." msgstr "Nelze číst soubor." msgid "Cannot open file." msgstr "Nelze otevřít soubor." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Zobrazit kalendář" msgid "Show tasks" msgstr "Zobrazit úkoly" msgid "Show contacts" msgstr "Zobrazit kontakty" msgid "Show notes" msgstr "Zobrazit poznámky" msgid "Show options" msgstr "Zobrazit nastavení" msgid "Quit" msgstr "Ukončit" msgid "Show small calendar window" msgstr "Zobrazit malé okno kalendáře" msgid "Check for events since last run" msgstr "Zkontrolovat události od posledního spuštění" msgid "Number of days to check forward for events (default: 0)" msgstr "V kolika nadcházejících dnech hledat události (přednastaveno: 0)" msgid "Set absolute path for settings and data files" msgstr "Nastavit absolutní cestu ke konfiguračním a datovým souborům" msgid "Match contacts with given string" msgstr "Vyhledat kontakty podle zadaného výrazu" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "CHYBA: Nelze zapsat konfigurační soubory" msgid "Another copy of OSMO is already running." msgstr "Již běží jiná kopie programu OSMO." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Současné používání dvou a více spuštěných kopií programu OSMO může " "zapříčinit ztrátu dat." msgid "Do you really want to continue?" msgstr "Opravdu si přejete pokračovat?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Nízká" msgid "High" msgstr "Vysoká" msgid "Done!" msgstr "Hotovo!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kontakt exportován" msgstr[1] "kontakty exportovány" msgstr[2] "kontaktů exportováno" msgid "Cannot create file." msgstr "Nelze vytvořit soubor." msgid "Select output file" msgstr "Vybrat výstupní soubor" msgid "Export contacts" msgstr "Exportovat kontakty" msgid "Output format" msgstr "Výstupní formát" msgid "Add header" msgstr "Přidat hlavičku" msgid "Fields to export" msgstr "Pole pro export" msgid "All" msgstr "Vše" msgid "Invert" msgstr "Prohodit" msgid "Select fields" msgstr "Vybrat pole" msgid "Output filename" msgstr "Jméno výstupního souboru" msgid "Export" msgstr "Exportovat" msgid "Color of items that are due today" msgstr "Barva záznamů na dnešní den" msgid "Color of items that are due in the next 7 days" msgstr "Barva záznamů na příštích 7 dní" msgid "Color of items that are past due" msgstr "Barva záznamů v minulosti" msgid "Task info font" msgstr "Písmo detailů úkolu" msgid "Show in bold tasks with high priority" msgstr "Úkoly s vysokou prioritou zobrazit tučně" msgid "Hide completed tasks" msgstr "Skrýt splněné úkoly" msgid "Delete completed tasks without confirmation" msgstr "Mazat splněné úkoly bez potvrzení" msgid "Add new task when double clicked on tasks list" msgstr "Přidat nový úkol po dvojkliku na seznam úkolů" msgid "Postpone time" msgstr "Pozdržet čas" msgid "minutes" msgstr "minuty" msgid "0 for disable" msgstr "0 pro vypnutí" msgid "Repeat sound alarm" msgstr "Opakovat zvukový alarm" msgid "times" msgstr "časy" msgid "Global notification command" msgstr "Všeobecný příkaz pro oznamování" msgid "Tasks options" msgstr "Nastavení úkolů" msgid "Reminder options" msgstr "Možnosti upomínek" msgid "Insert timeline" msgstr "Vložit časy" msgid "Timeline" msgstr "Časová linie" msgid "From (hour)" msgstr "Od (hodina)" msgid "Step (minutes)" msgstr "Kroky (minuty)" msgid "To (hour)" msgstr "Do (hodina)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Při zapnutém opakování je třeba vybrat alespoň jeden den." msgid "Set time" msgstr "Nastavit čas" msgid "Hour" msgstr "Hodina" msgid "Minute" msgstr "Minuta" msgid "Today" msgstr "Dnes" msgid "Tomorrow" msgstr "Zítra" msgid "Selected task will be removed." msgstr "Vybraný úkol bude odstraněn." msgid "Select date and time" msgstr "Vybrat datum a čas" msgid "Enable sound notification" msgstr "Zapnout zvukové upozornění" msgid "Enable notification dialog" msgstr "Povolit upozornění" msgid "Alarm warning" msgstr "Varování alarmu" msgid "Days" msgstr "Dny" msgid "Hours" msgstr "Hodiny" msgid "Minutes" msgstr "Minuty" msgid "Alarm command" msgstr "Příkaz pro varování" msgid "Date period" msgstr "Podle data" msgid "Months" msgstr "Měsíce" msgid "Repeat" msgstr "Opakovat" msgid "Repeat in the following days" msgstr "Opakovat v následujících dnech" msgid "Time period" msgstr "Podle času" msgid "Start" msgstr "Začátek" msgid "End" msgstr "Konec" msgid "Interval" msgstr "Interval" msgid "Ignore alarm when task expired offline" msgstr "Ignorovat alarm pokud úkol proběhne offline" msgid "Recurrent task" msgstr "Opakovaný úkol" msgid "Enable" msgstr "Povolit" msgid "Edit task" msgstr "Upravit úkol" msgid "Add task" msgstr "Přidat úkol" msgid "Basic" msgstr "Základní" msgid "Advanced" msgstr "Rozšířené" msgid "New Moon" msgstr "nov" msgid "Waxing Crescent Moon" msgstr "dorůstající srpek" msgid "Quarter Moon" msgstr "první čtvrť" msgid "Waxing Gibbous Moon" msgstr "dorůstající měsíc" msgid "Full Moon" msgstr "úplněk" msgid "Waning Gibbous Moon" msgstr "couvající měsíc" msgid "Last Quarter Moon" msgstr "poslední čtvrť" msgid "Waning Crescent Moon" msgstr "ubývající srpek" msgid "Cannot create backup!" msgstr "Nelze vytvořit zálohu!" msgid "Save backup" msgstr "Uložit zálohu" msgid "Password protection" msgstr "Chránit heslem" msgid "Enter password" msgstr "Vlož heslo" msgid "Re-enter password" msgstr "Znovu vlož heslo" msgid "Please enter the password" msgstr "Prosím vložte heslo" msgid "Passwords do not match!" msgstr "Hesla se neshodují!" msgid "Backup file saved successfully!" msgstr "Záložní soubor úspěšně uložen!" msgid "Open backup file" msgstr "Otevřít zálohu" msgid "Osmo backup files (*.bck)" msgstr "Záložní soubor programu Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Toto není záložní soubor programu Osmo" msgid "Incorrect password!" msgstr "Nesprávné heslo!" msgid "All your data will be replaced with backup file content." msgstr "Všechna data budou nahrazena obsahem ze záložního souboru." msgid "Osmo has to be restarted now..." msgstr "Je třeba restartovat Osmo..." msgid "Please select address" msgstr "Vybrat adresu" msgid "First name" msgstr "Jméno" msgid "Last name" msgstr "Příjmení" msgid "Second name" msgstr "Druhé jméno" msgid "Nickname" msgstr "Přezdívka" msgid "Tags" msgstr "Tagy" msgid "Name day date" msgstr "Jmeniny" msgid "Home address" msgstr "Adresa domů" msgid "Home postcode" msgstr "PSČ" msgid "Home city" msgstr "Město" msgid "Home state" msgstr "Kraj" msgid "Home country" msgstr "Země" msgid "Organization" msgstr "Organizace" msgid "Department" msgstr "Oddělení" msgid "Work address" msgstr "Adresa domů" msgid "Work postcode" msgstr "PSČ" msgid "Work city" msgstr "Město zaměstnání" msgid "Work state" msgstr "Stát zaměstnání" msgid "Work country" msgstr "Země zaměstnání" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefon domů" msgid "Home phone 2" msgstr "Telefon domů 2" msgid "Home phone 3" msgstr "Telefon domů 3" msgid "Home phone 4" msgstr "Telefon domů 4" msgid "Work phone" msgstr "Telefon do zaměstnání" msgid "Work phone 2" msgstr "Telefon do zaměstnání 2" msgid "Work phone 3" msgstr "Telefon do zaměstnání 3" msgid "Work phone 4" msgstr "Telefon do zaměstnání 4" msgid "Cell phone" msgstr "Mobilní telefon" msgid "Cell phone 2" msgstr "Mobilní telefon 2" msgid "Cell phone 3" msgstr "Mobilní telefon 3" msgid "Cell phone 4" msgstr "Mobilní telefon 4" msgid "E-Mail" msgstr "E-mail" msgid "E-Mail 2" msgstr "E-mail 2" msgid "E-Mail 3" msgstr "E-mail 3" msgid "E-Mail 4" msgstr "E-mail 4" msgid "WWW" msgstr "Web" msgid "WWW 2" msgstr "Web 2" msgid "WWW 3" msgstr "Web 3" msgid "WWW 4" msgstr "Web 4" msgid "IM Gadu-Gadu" msgstr "Gadu-Gadu" msgid "IM Yahoo" msgstr "Yahoo" msgid "IM MSN" msgstr "MSN" msgid "IM ICQ" msgstr "ICQ" msgid "IM AOL" msgstr "AOL" msgid "IM Jabber" msgstr "Jabber" msgid "IM Skype" msgstr "Skype" msgid "IM Tlen" msgstr "Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotografie" msgid "New contact" msgstr "Přidat kontakt" msgid "Remove contact" msgstr "Odstranit kontakt" msgid "Show birthdays" msgstr "Zobrazit narozeniny" msgid "Show contact location on the map" msgstr "Zobrazit umístění kontaktu na mapě" msgid "Backup data" msgstr "Zálohovat data" msgid "Restore data" msgstr "Obnovit data" msgid "About" msgstr "O programu" msgid "Clear" msgstr "Smazat" msgid "First Name" msgstr "Jméno" msgid "Last Name" msgstr "Příjmení" msgid "All fields" msgstr "Všechna pole" msgid "Contact details" msgstr "Detaily kontaktu" msgid "Close contact panel" msgstr "Zavřít detaily kontaktu" msgid "The note has changed." msgstr "Poznámka byla změněna." msgid "Do you want to save it?" msgstr "Mám změny opravdu uložit?" msgid "No URLs found in the selection..." msgstr "Ve výběru nebyly nalezeny žádné URL adresy..." msgid "URLs will be opened in the default browser." msgstr "Adresy URL budou otevřeny ve výchozím prohlížeči." msgid "Do you want to continue?" msgstr "Přejete si pokračovat?" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Slov" msgid "Lines" msgstr "Řádek" msgid "Characters" msgstr "Znaků" msgid "White characters" msgstr "Bílých znaků" msgid "Bytes" msgstr "Bytů" msgid "Document" msgstr "Dokument" msgid "Selection" msgstr "Výběr" msgid "Modified" msgstr "Upraveno" msgid "New note" msgstr "Nová poznámka" msgid "Edit note" msgstr "Upravit poznámku" msgid "Delete note" msgstr "Smazat poznámku" msgid "Save note" msgstr "Uložit poznámku" msgid "Find" msgstr "Najít" msgid "Toggle spell checker" msgstr "Přepnout kontrolu jazyka" msgid "Bold" msgstr "Tučné" msgid "Italic" msgstr "Kurzíva" msgid "Underline" msgstr "Podtržené" msgid "Strikethrough" msgstr "Přeškrtnuté" msgid "Highlight" msgstr "Zvýraznit" msgid "Clear attributes" msgstr "Zrušit formátování" msgid "Open URL links" msgstr "Otevřít URL odkazy" msgid "Insert current date and time" msgstr "Vložit aktuální datum a čas" msgid "Insert separator" msgstr "Vložit oddělovač" msgid "Statistics" msgstr "Statistiky" msgid "Close editor" msgstr "Zavřít editor" msgid "Note name" msgstr "Jméno poznámky" msgid "Read-only" msgstr "Pouze pro čtení" msgid "Line" msgstr "Řádka" msgid "Column" msgstr "Sloupec" msgid "case sensitive" msgstr "rozlišovat velikost písmen" msgid "Close find entry" msgstr "Zavřít hledání" msgid "Edit entry" msgstr "Upravit záznam" msgid "Remember cursor position" msgstr "Zapamatovat pozici kurzoru" msgid "Selected note will be removed." msgstr "Vybraná poznámka bude odstraněna." msgid "No further data recovery will be possible." msgstr "Nebude možné žádné obnovení dat" msgid "Add note" msgstr "Přidat poznámku" msgid "Plain" msgstr "Normální" msgid "Encrypted" msgstr "Šifrované" msgid "Note type" msgstr "Typ poznámky" msgid "Cannot open the note." msgstr "Nelze otevřít poznámku." msgid "encryption support is disabled" msgstr "podpora šifrování vypnuta" msgid "Authorization" msgstr "Autorizace" msgid "year" msgid_plural "years" msgstr[0] "rok" msgstr[1] "roků" msgstr[2] "let" msgid "day" msgid_plural "days" msgstr[0] "den" msgstr[1] "dny" msgstr[2] "dnů" msgid "hour" msgid_plural "hours" msgstr[0] "hodina" msgstr[1] "hodiny" msgstr[2] "hodin" msgid "minute" msgid_plural "minutes" msgstr[0] "minuta" msgstr[1] "minuty" msgstr[2] "minut" msgid "second" msgid_plural "seconds" msgstr[0] "sekunda" msgstr[1] "sekundy" msgstr[2] "sekund" msgid "or" msgstr "nebo" msgid "rounded down" msgstr "zaokrouhleno dolů" msgid "week" msgid_plural "weeks" msgstr[0] "týden" msgstr[1] "týdny" msgstr[2] "týdnů" msgid "working day" msgid_plural "working days" msgstr[0] "pracovní den" msgstr[1] "pracovní dny" msgstr[2] "pracovních dnů" msgid "time is ignored" msgstr "ignorovat čas" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "víkendový den" msgstr[1] "víkendové dny" msgstr[2] "víkendových dnů" msgid "This calculator only supports dates after year 1." msgstr "Kalkulačka podporuje pouze data po roce 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "víkendový den ignorován" msgstr[1] "víkendové dny ignorovány" msgstr[2] "víkendových dnů ignorováno" msgid "Date calculator" msgstr "Kalkulátor data" msgid "Current date" msgstr "Aktuální datum" msgid "Set current date" msgstr "Nastavit aktuální datum" msgid "Second" msgstr "Sekunda" msgid "Set current time" msgstr "Nastavit aktuální čas" msgid "Reset time" msgstr "Vymazat čas" msgid "First date and time" msgstr "Počáteční datum a čas" msgid "Second date and time" msgstr "Konečné datum a čas" msgid "Alternative time units" msgstr "Lze říci i takto" msgid "Result" msgstr "Výsledek" msgid "Duration between two dates" msgstr "Délka mezi dvěma daty" msgid "Operation" msgstr "Operace" msgid "add" msgstr "přidat" msgid "subtract" msgstr "odebrat" msgid "Date and time to add or subtract from" msgstr "Datum a čas od kterého ubírat nebo přidávat" msgid "Years" msgstr "Roky" msgid "Weeks" msgstr "Týdnů" msgid "Seconds" msgstr "Sekundy" msgid "Ignore weekend days" msgstr "Ignorovat dny víkendu" msgid "Reset fields" msgstr "Vyčistit pole" msgid "Time to add or subtract" msgstr "Přidat nebo odebrat čas" msgid "Add to or subtract from a date" msgstr "Přidat nebo odebrat od data" msgid "Cannot perform selected operation." msgstr "Nelze provést vybranou operaci." msgid "Task has been modified or removed." msgstr "Úloha byla upravena nebo odstraněna." msgid "Remind me later" msgstr "Upozorni mě později" msgid "Done" msgstr "Hotovo" msgid "Show task" msgstr "Zobrazit úkol" msgid "Alarm warning!" msgstr "Varování alarmu!" msgid "postponed" msgstr "pozdrženo" msgid "Day note" msgstr "Poznámka na den" msgid "Events" msgstr "Události" msgid "Event" msgstr "Událost" msgid "Task" msgstr "Úkol" msgid "Birthday" msgstr "Narozeniny" msgid "Show Osmo" msgstr "Zobrazit Osmo" msgid "event" msgid_plural "events" msgstr[0] "událost" msgstr[1] "události" msgstr[2] "událostí" msgid "No valid calendars defined" msgstr "Nejsou definovány platné kalendáře" msgid "iCalendar events" msgstr "Události iCalendar" msgid "Time" msgstr "Čas" msgid "The list will be cleared and all entries will be lost." msgstr "Tento seznam bude smazán a všechny záznamy zmizí." msgid "event exported" msgid_plural "events exported" msgstr[0] "událost exportována" msgstr[1] "události exportovány" msgstr[2] "událostí exportováno" msgid "iCalendar export" msgstr "export jako iCalendar" msgid "Day Selector" msgstr "Výběr dne" msgid "Use date period" msgstr "Použít opakované datum" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Nenalezeny žádné úkoly s daty vypršení." msgid "Save tasks" msgstr "Uložit úkoly" msgid "tasks exported" msgstr "úkoly exportovány" msgid "was born" msgstr "narozen" msgid "year old" msgid_plural "years old" msgstr[0] "rok starý" msgstr[1] "roky starý" msgstr[2] "let starý" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "den do konce roku" msgstr[1] "dny do konce roku" msgstr[2] "dní do konce roku" msgid "the last day of the year" msgstr "poslední den roku" msgid "Day tasks" msgstr "Denní úkoly" msgid "Selected day note will be removed." msgstr "Vybraná poznámka dne bude odstraněna." msgid "Continue?" msgstr "Pokračovat?" msgid "Previous year" msgstr "Minulý rok" msgid "Previous month" msgstr "Minulý měsíc" msgid "Previous day" msgstr "Včera" msgid "Next day" msgstr "Zítra" msgid "Next month" msgstr "Příští měsíc" msgid "Next year" msgstr "Příští rok" msgid "Full-year calendar" msgstr "Zobrazit kalendář na celý rok" msgid "Print calendar" msgstr "Vytisknout kalendář" msgid "Toggle day note panel" msgstr "Zobrazit/skrýt panel poznámek" msgid "Select day color" msgstr "Barva vybraného dne" msgid "Browse notes" msgstr "Procházet poznámky" msgid "Browse iCal events" msgstr "Procházet události iCal" msgid "Export to iCal file" msgstr "Exportovat do souboru iCal" msgid "Previous and next month" msgstr "Předešlý a příští měsíc" msgid "Close note panel" msgstr "Zavřít panel poznámek" msgid "Clear text" msgstr "Smazat text" msgid "Info" msgstr "Informace" msgid "Select color" msgstr "Vybrat barvu" msgid "Name day" msgstr "Jmeniny" msgid "Printing properties" msgstr "Nastavení tisku" msgid "Month name" msgstr "Jméno měsíce" msgid "Day name" msgstr "Jméno dne" msgid "Fonts" msgstr "Fonty" msgid "Birthdays" msgstr "Narozeniny" msgid "Namedays" msgstr "Jmeniny" msgid "Visible events" msgstr "Viditelné události" msgid "Padding" msgstr "Bloky" msgid "Event maximum length" msgstr "Maximální délka události" msgid "Page orientation:" msgstr "Orientace strany:" msgid "Portrait" msgstr "Na výšku" msgid "Landscape" msgstr "Na šířku" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Přestupný rok" msgid "Yes" msgstr "Ano" msgid "No" msgstr "Ne" msgid "Chinese year animal" msgstr "Zvíře podle čínského kalendáře" msgid "Number of days" msgstr "Počet dní" msgid "Number of weeks" msgstr "Počet týdnů" msgid "Number of weekend days" msgstr "Počet víkendových dní" msgid "Year info" msgstr "Informace o roce" msgid "Alternative view" msgstr "Náhradní zobrazení" msgid "Started" msgstr "Započato" msgid "Finished" msgstr "Ukončeno" msgid "New task" msgstr "Nový úkol" msgid "Remove task" msgstr "Odstranit úkol" msgid "Change due date to previous date" msgstr "Změnit datum vypršení na předešlé datum" msgid "Change due date to next date" msgstr "Změnit datum vypršení na následující datum" msgid "Export tasks" msgstr "Exportovat úkoly" msgid "Print visible tasks list" msgstr "Vytisknout viditelný seznam úkolů" msgid "Task details" msgstr "Detaily úkolu" msgid "Close description panel" msgstr "Zavřít detaily úkolu" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "přejít na předešlou záložku" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "přejít na další záložku" msgid "switch to selected page" msgstr "přejít na vybranou stranu" msgid "show options window" msgstr "zobrazit okno nastavení" msgid "show about window" msgstr "zobrazit okno o programu" msgid "toggle fullscreen mode" msgstr "přepnout náhled" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "změnit stranu na záložce o programu a nastavení" msgid "exit" msgstr "ukončit" msgid "Space" msgstr "Mezerník" msgid "select current date" msgstr "vybrat aktuální datum" msgid "Ctrl+Space" msgstr "Ctrl+Mezerník" msgid "toggle personal data visibility" msgstr "přepnout viditelnost osobních dat" msgid "Arrows" msgstr "Směrové klávesy" msgid "change day" msgstr "změnit den" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "posunovat obsahy v panelu informací pro den" msgid "change month" msgstr "změnit měsíc" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "změnit rok" msgid "toggle calendars for the previous and next month" msgstr "prohodit kalendáře na minulý a příští měsíc" msgid "day notes browser" msgstr "prohlížeč denních poznámek" msgid "assign background color to day note" msgstr "přiřaď barvu pozadí pro denní poznámky" msgid "date calculator" msgstr "kalkulátor data" msgid "show full-year calendar" msgstr "zobrazit kalendář na celý rok" msgid "jump to date" msgstr "jít na datum" msgid "Delete" msgstr "Smazat" msgid "remove day note" msgstr "odstranit poznámku" msgid "Alt+Arrows" msgstr "Alt+Směrové klávesy" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "zavřít editor" msgid "toggle bold" msgstr "přepnout tučný text" msgid "toggle italic" msgstr "přepnout kurzivu" msgid "toggle underline" msgstr "přepnout podtržení" msgid "toggle strikethrough" msgstr "přepnout proškrtnutí" msgid "toggle highlight" msgstr "přepnout zvýraznění" msgid "Arrows Up/Down" msgstr "Šipka nahoru/dolů" msgid "toggle alternative view" msgstr "přepnout alternativní náhled" msgid "year info" msgstr "roční info" msgid "set current year" msgstr "nastav aktuální rok" msgid "close full-year calendar" msgstr "zavřít kalendář na celý rok" msgid "Alt+a, Insert" msgstr "Alt+A, Vložit" msgid "add task" msgstr "přidat úkol" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+E, Ctrl+Enter" msgid "edit task" msgstr "upravit úkol" msgid "Alt+r, Delete" msgstr "Alt+R, Smazat" msgid "remove task" msgstr "odstranit úkol" msgid "toggle hidden tasks" msgstr "zobrazit skryté úkoly" msgid "activate search field" msgstr "aktivovat vyhledávací pole" msgid "Left, Right" msgstr "Vlevo, Vpravo" msgid "change category filter" msgstr "změnit filtr kategorií" msgid "close task info panel" msgstr "zavřít panel informací o úkolu" msgid "Insert" msgstr "Vložit" msgid "add contact" msgstr "přidat kontakt" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "upravit kontakt" msgid "remove contact" msgstr "odstranit kontakt" msgid "change search mode" msgstr "změnit mód vyhledávání" msgid "close contact details panel" msgstr "zavřít panel poznámek" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "otevřít poznámku" msgid "add note" msgstr "přidat poznámku" msgid "remove note" msgstr "odstranit poznámku" msgid "edit note name and category" msgstr "upravit jméno a kategorii poznámky" msgid "close note editor" msgstr "zavřít editor poznámek" msgid "save note" msgstr "uložit poznámku" msgid "find text" msgstr "najít text" msgid "clear selection attributes" msgstr "smazat vlastnosti výběru" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "Program OSMO byl vytvořen s důrazem na uživatelskou přívětivost. Proto " "obsahuje plno klávesových zkratek. Zde je jejich kompletní seznam:" msgid "Note editor" msgstr "Editor poznámek" msgid "Selector" msgstr "Přepínač" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Šikovný osobní organizér" msgid "compiled on" msgstr "sestaveno" msgid "Programming" msgstr "Naprogramoval" msgid "Graphics" msgstr "Grafická úprava" msgid "Contributors" msgstr "Příspěvky od" msgid "Translators" msgstr "Překladatelé" msgid "Mailing lists" msgstr "Konference" msgid "Bug tracker" msgstr "Bug tracker" msgid "Feature requests" msgstr "Žádat nové funkce" msgid "Available modules" msgstr "Dostupné moduly" msgid "Compiled-in features" msgstr "Zkompilováno s" msgid "iCalendar support" msgstr "Podpora pro iCalendar" msgid "Encrypted notes support" msgstr "Podpora šifrovaných poznámek" msgid "Backup support" msgstr "Podpora zálohování" msgid "Printing support" msgstr "Podpora tisku" msgid "Spell checker support" msgstr "Podpora kontroly jazyka" msgid "version" msgstr "verze" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Klávesové zkratky" msgid "License" msgstr "Licence" #~ msgid "handy personal organizer" #~ msgstr "šikovný osobní organizér" osmo-0.4.2/po/nl.po0000664000175000017500000011111213204320601010770 00000000000000# Dutch translation of Osmo. # This file is distributed under the same license as the Osmo package. # Tiger!P , 2010. # fonske777 , 2012 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-06 09:53+0000\n" "Last-Translator: fonske777 \n" "Language-Team: Dutch\n" "Language: nl\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" msgid "Colors" msgstr "Kleuren" msgid "Color of contact tags" msgstr "Kleur van contactpersoonmarkeringen" msgid "Color of links" msgstr "Kleur van koppelingen" msgid "Font size" msgstr "Grootte van lettertype" msgid "Name font size" msgstr "Grootte van naamlettertype" msgid "Item font size" msgstr "Grootte van elementlettertype" msgid "Photo size" msgstr "Fotogrootte" msgid "Small" msgstr "Klein" msgid "Medium" msgstr "Gemiddeld" msgid "Large" msgstr "Groot" msgid "Hide group column" msgstr "Verberg groepkolom" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Leeftijd" msgid "Birthday date" msgstr "Verjaardagdatum" msgid "Zodiac sign" msgstr "Dierenriemteken" msgid "Contacts" msgstr "Contactpersonen" msgid "Appearance" msgstr "Uiterlijk" msgid "Miscellaneous" msgstr "Overig" msgid "Groups" msgstr "Groepen" msgid "Visible columns in birthday browser" msgstr "Zichtbare kolommen in verjaardagenbladeraar" msgid "Algorithm" msgstr "Algoritme" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Compressie" msgid "Ratio" msgstr "Verhouding" msgid "Fast" msgstr "Snel" msgid "Good" msgstr "Goed" msgid "Best" msgstr "Beste" msgid "Type" msgstr "Type" msgid "Category" msgstr "Categorie" msgid "Last changes" msgstr "Laatste wijzigingen" msgid "Created" msgstr "Gemaakt" msgid "Remember the last selected category" msgstr "Onthoud de laatst geselecteerde categorie" msgid "Use system format for date and time" msgstr "Gebruik systeemopmaak voor datum en tijd" msgid "Notes" msgstr "Notities" msgid "Encryption" msgstr "Versleuteling" msgid "Visible columns" msgstr "Zichtbare kolommen" msgid "Categories" msgstr "Categorieën" msgid "Notes options" msgstr "Notitie-opties" msgid "Jump to date" msgstr "Spring naar datum" msgid "Day" msgstr "Dag" msgid "Month" msgstr "Maand" msgid "Year" msgstr "Jaar" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Selecteer een lettertype..." msgid "None" msgstr "Geen" msgid "All items" msgstr "Alle elementen" msgid "Question" msgstr "Vraag" msgid "Information" msgstr "Informatie" msgid "Error" msgstr "Fout" msgid "Warning" msgstr "Waarschuwing" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Geselecteerd bestand bestaat al. Overschrijven?" msgid "Selected contact will be removed." msgstr "Geselecteerde contactpersoon zal worden verwijderd." msgid "Are you sure?" msgstr "Weet u het zeker?" msgid "No date" msgstr "Geen datum" msgid "Select photo" msgstr "Selecteer foto" msgid "Address" msgstr "Adres" msgid "Postcode" msgstr "Postcode" msgid "City" msgstr "Plaats" msgid "State" msgstr "Provincie" msgid "Country" msgstr "Land" msgid "Edit contact" msgstr "Bewerk contactpersoon" msgid "Add contact" msgstr "Contactpersoon toevoegen" msgid "Personal" msgstr "Persoonlijk" msgid "Group" msgstr "Groep" msgid "Home" msgstr "Thuis" msgid "Work" msgstr "Werk" msgid "Phones" msgstr "Telefoons" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Extra informatie" msgid "_OK" msgstr "" msgid "no entries" msgstr "Geen ingevulde elementen" msgid "entry" msgid_plural "entries" msgstr[0] "ingevuld element" msgstr[1] "ingevulde elementen" msgid "Calendar notes" msgstr "Kalendernotities" msgid "Search" msgstr "Zoeken" msgid "Filter" msgstr "Filter" msgid "Current month" msgstr "Huidige maand" msgid "Selected month" msgstr "Geselecteerde maand" msgid "Current year" msgstr "Huidig jaar" msgid "Selected year" msgstr "Geselecteerd jaar" msgid "Selected month and year" msgstr "Geselecteerde maand en jaar" msgid "All notes" msgstr "Alle notities" msgid "Case sensitive" msgstr "Hoofdlettergevoelig" msgid "Strikethrough past day notes" msgstr "Doorhalen van verlopen dagnotities" msgid "Date" msgstr "Datum" msgid "Note" msgstr "Notitie" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rat" msgid "Ox" msgstr "Os" msgid "Tiger" msgstr "Tijger" msgid "Hare" msgstr "Haas" msgid "Dragon" msgstr "Draak" msgid "Snake" msgstr "Slang" msgid "Horse" msgstr "Paard" msgid "Sheep" msgstr "Schaap" msgid "Monkey" msgstr "Aap" msgid "Fowl" msgstr "Haan" msgid "Dog" msgstr "Hond" msgid "Pig" msgstr "Varken" msgid "Unknown" msgstr "Onbekend" msgid "Aquarius" msgstr "Waterman" msgid "Pisces" msgstr "Vissen" msgid "Aries" msgstr "Ram" msgid "Taurus" msgstr "Stier" msgid "Gemini" msgstr "Tweelingen" msgid "Cancer" msgstr "Kreeft" msgid "Leo" msgstr "Leeuw" msgid "Virgo" msgstr "Maagd" msgid "Libra" msgstr "Weegschaal" msgid "Scorpio" msgstr "Schorpioen" msgid "Sagittarius" msgstr "Boogschutter" msgid "Capricorn" msgstr "Steenbok" msgid "Osmo has to be restarted to take effect." msgstr "Osmo moet nu opnieuw opgestart worden om veranderingen door te voeren." msgid "Layout" msgstr "Vormgeving" msgid "Vertical" msgstr "Verticaal" msgid "Horizontal" msgstr "Horizontaal" msgid "Tabs position" msgstr "Tabspositie" msgid "Left" msgstr "Links" msgid "Right" msgstr "Rechts" msgid "Top" msgstr "Boven" msgid "Bottom" msgstr "Onder" msgid "Disable underline in links" msgstr "Zet onderstrepen in koppelingen uit" msgid "Show exit button in toolbar" msgstr "Toon afsluitknop in werkbalk" msgid "At least one module must be visible." msgstr "Minimaal één module moet zichtbaar zijn." msgid "Calendar" msgstr "Kalender" msgid "Tasks" msgstr "Taken" msgid "Override locale settings" msgstr "Negeer lokalisatie-instellingen" msgid "Date format" msgstr "Datumopmaak" msgid "DD-MM-YYYY" msgstr "DD-MM-JJJJ" msgid "MM-DD-YYYY" msgstr "MM-DD-JJJJ" msgid "YYYY-MM-DD" msgstr "JJJJ-MM-DD" msgid "YYYY-DD-MM" msgstr "JJJJ-DD-MM" msgid "Time format" msgstr "Tijdopmaak" msgid "hours" msgstr "uren" msgid "Spell checker language" msgstr "Taal voor spellingcontrole" msgid "Enable tooltips" msgstr "Zet gereedschaptips aan" msgid "Remember last selected page" msgstr "Onthoud laatst geselecteerde pagina" msgid "Save data after every modification" msgstr "Sla gegevens op na elke wijziging" msgid "Web browser" msgstr "Webbladeraar" msgid "E-mail client" msgstr "E-mailprogramma" msgid "Sound player" msgstr "Geluidspeler" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Het tekenpatroon %s zal worden vervangen door het webadres" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Het tekenpatroon %s zal worden vervangen door het e-mailadres" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" "Het tekenpatroon %s zal worden vervangen door de naam van het geluidbestand" msgid "Enable system tray" msgstr "Gebruik systeemvak" msgid "Start minimised" msgstr "Start geminimalizeerd" msgid "Ignore day note events" msgstr "Negeer dagnotitiegebeurtenissen" msgid "General" msgstr "Algemeen" msgid "Hide" msgstr "Verbergen" msgid "Helpers" msgstr "Helpers" msgid "System tray" msgstr "Systeemvak" msgid "Preferences" msgstr "Voorkeuren" msgid "Syntax" msgstr "Syntaxis" msgid "abbreviated weekday name" msgstr "afgekorte naam van weekdag" msgid "full weekday name" msgstr "volledige naam van weekdag" msgid "abbreviated month name" msgstr "afgekorte naam van maand" msgid "full month name" msgstr "volledige naam van maand" msgid "day of the month" msgstr "dag van de maand" msgid "MM/DD/YY" msgstr "MM/DD/JJ" msgid "day of the month without leading zeros" msgstr "dag van de maand zonder voorloopnullen" msgid "month" msgid_plural "months" msgstr[0] "maand" msgstr[1] "maanden" msgid "year without century" msgstr "jaar zonder eeuw" msgid "year with century" msgstr "jaar met eeuw" msgid "Date header format" msgstr "Opmaak van datumkop" msgid "Set default format" msgstr "Stel standaardopmaak in" msgid "Date format syntax" msgstr "Syntaxis van datumopmaak" msgid "Day note marker" msgstr "Dagnotitiemarkeerder" msgid "Event marker" msgstr "Gebeurtenismarkeerder" msgid "Circle" msgstr "Cirkel" msgid "Ellipse" msgstr "Ellips" msgid "Wave" msgstr "Golf" msgid "Current day marker" msgstr "Huidige-dag-markeerder" msgid "Arrow" msgstr "Pijl" msgid "Free-hand circle" msgstr "Vrije-hand-cirkel" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Kleur van weekeindedagen" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cursorkleur" msgid "Event marker color" msgstr "Kleur van gebeurtenismarkeerder" msgid "Current day marker color" msgstr "Kleur van huidige-dag-markeerder" msgid "Birthday marker color" msgstr "Kleur van verjaardagmarkeerder" msgid "Date font" msgstr "Datumlettertype" msgid "Calendar font" msgstr "Kalenderlettertype" msgid "Note font" msgstr "Notitielettertype" msgid "Enable block cursor" msgstr "Zet blokcursor aan" msgid "Cursor thickness" msgstr "Cursordikte" msgid "Thin" msgstr "Dun" msgid "Thick" msgstr "Dik" msgid "Edit category" msgstr "Bewerk categorie" msgid "Color" msgstr "Kleur" msgid "Name" msgstr "Naam" msgid "Select ICS file" msgstr "Selecteer ICS-bestand" msgid "All Files" msgstr "Alle bestanden" msgid "Calendar files (*.ics)" msgstr "Kalenderbestanden (*.ics)" msgid "Modify ICAL parameters" msgstr "Wijzig ICAL-parameters" msgid "Filename" msgstr "Bestandnaam" msgid "Options" msgstr "Opties" msgid "Disabled" msgstr "Uitgeschakeld" msgid "Valid" msgstr "Geldig" msgid "Description" msgstr "Beschrijving" msgid "Full date" msgstr "Volledige datum" msgid "Mark" msgstr "Markeer" msgid "Week start on Monday" msgstr "Week begint op maandag" msgid "Show day names" msgstr "Laat dagnamen zien" msgid "No month change" msgstr "Geen maandverandering" msgid "Show week numbers" msgstr "Laat weeknummers zien" msgid "Simple view in full-year calendar" msgstr "Eenvoudige weergave in volledig-jaar-kalender" msgid "Enable auxilary calendars" msgstr "Zet hulpkalenders aan" msgid "Ascending sorting in day notes browser" msgstr "Oplopend sorteren in de dagnotiebladeraar" msgid "Enable spell checker in day notes" msgstr "Zet spellingcontrole in dagnotities aan" msgid "Current time" msgstr "Huidige tijd" msgid "Show seconds" msgstr "Seconden tonen" msgid "Day number" msgstr "Dagnummer" msgid "Today distance" msgstr "Afstand tot vandaag" msgid "Marked days" msgstr "Gemarkeerde dagen" msgid "Week number" msgstr "Weeknummer" msgid "Weekend days" msgstr "Weekeindedagen" msgid "Day category" msgstr "Dagcategorie" msgid "Moon phase" msgstr "Schijngestalte van maan" msgid "Day notes" msgstr "Dagnotities" msgid "Day categories" msgstr "Dagcategorieën" msgid "iCalendar files" msgstr "iCalendar-bestanden" msgid "Show in day info panel" msgstr "Laat zien in het daginformatiepaneel" msgid "Tasks list" msgstr "Takenlijst" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr." msgid "Summary" msgstr "Samenvatting" msgid "Due date" msgstr "Vervaldatum" msgid "Priority" msgstr "Prioriteit" msgid "Error printing" msgstr "Afdrukprobleem" msgid "No birthdays defined" msgstr "Geen verjaardagen gedefinieerd" msgid "Birthdays list" msgstr "Verjaardagenlijst" msgid "Days to birthday" msgstr "Dagen tot verjaardag" msgid "today" msgstr "vandaag" msgid "Select CSV file" msgstr "Selecteer CSV-bestand" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (kommagescheiden waarden)-bestanden (*.csv)" msgid "Please select file first." msgstr "Selecteer eerst een bestand a.u.b." msgid "Import contacts" msgstr "Importeer contactpersonen" msgid "Import type" msgstr "Invoertype" msgid "File" msgstr "Bestand" msgid "Input filename" msgstr "Invoer bestandnaam" msgid "Import" msgstr "Invoer" msgid "Nothing to import." msgstr "Niets om in te voeren." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contactpersoon toegevoegd" msgstr[1] "contactpersonen toegevoegd" msgid "of" msgstr "van" msgid "Record" msgstr "Dossier" msgid "Number fields per record" msgstr "Aantal velden per dossier" msgid "Use first record as header" msgstr "Gebruik het eerste dossierveld als kop" msgid "Field type" msgstr "Veldtype" msgid "Value" msgstr "Waarde" msgid "No records found in selected file." msgstr "Geen dossiers gevonden in het geselecteerde bestand." msgid "Cannot read file." msgstr "Kan het bestand niet lezen." msgid "Cannot open file." msgstr "Kan het bestand niet openen." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Laat kalender zien" msgid "Show tasks" msgstr "Laat taken zien" msgid "Show contacts" msgstr "Laat contactpersonen zien" msgid "Show notes" msgstr "Laat notities zien" msgid "Show options" msgstr "Laat opties zien" msgid "Quit" msgstr "Afsluiten" msgid "Show small calendar window" msgstr "Laat klein kalendervenster zien" msgid "Check for events since last run" msgstr "Controleer op gebeurtenissen sinds de laatste keer" msgid "Number of days to check forward for events (default: 0)" msgstr "Aantal dagen voorwaarts controleren op gebeurtenissen (standaard: 0)" msgid "Set absolute path for settings and data files" msgstr "Zet absoluut pad voor instellingen en gegevensbestanden" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "Fout: Kan configuratiebestanden niet maken" msgid "Another copy of OSMO is already running." msgstr "OSMO draait al." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "Meervoudig draaien van OSMO kan een oorzaak zijn van gegevensverlies." msgid "Do you really want to continue?" msgstr "Weet u zeker dat u door wilt gaan?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Laag" msgid "High" msgstr "Hoog" msgid "Done!" msgstr "Klaar!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contactpersoon geëxporteerd" msgstr[1] "contactpersonen geëxporteerd" msgid "Cannot create file." msgstr "Kan bestand niet maken." msgid "Select output file" msgstr "Selecteer uitvoerbestand" msgid "Export contacts" msgstr "Exporteer contactpersonen" msgid "Output format" msgstr "Uitvoer-opmaak" msgid "Add header" msgstr "Voeg kop toe" msgid "Fields to export" msgstr "Velden om te exporteren" msgid "All" msgstr "Alle" msgid "Invert" msgstr "Omdraaien" msgid "Select fields" msgstr "Selecteer velden" msgid "Output filename" msgstr "Naam van uitvoerbestand" msgid "Export" msgstr "Uitvoeren" msgid "Color of items that are due today" msgstr "Kleur van dingen die vandaag verwacht worden" msgid "Color of items that are due in the next 7 days" msgstr "Kleur van dingen die de komende 7 dagen verwacht worden" msgid "Color of items that are past due" msgstr "Kleur van dingen die zijn vervallen" msgid "Task info font" msgstr "Lettertype van taakinformatie" msgid "Show in bold tasks with high priority" msgstr "Laat in vet taken met hoge prioriteit zien" msgid "Hide completed tasks" msgstr "Verberg taken die voltooid zijn" msgid "Delete completed tasks without confirmation" msgstr "Verwijder voltooide taken zonder bevestiging" msgid "Add new task when double clicked on tasks list" msgstr "" "Voeg een nieuwe taak toe wanneer er dubbel wordt geklikt op de takenlijst" msgid "Postpone time" msgstr "Uitsteltijd" msgid "minutes" msgstr "minuten" msgid "0 for disable" msgstr "0 voor uitschakelen" msgid "Repeat sound alarm" msgstr "Herhaal geluidalarm" msgid "times" msgstr "keren" msgid "Global notification command" msgstr "Globale opdracht voor melding" msgid "Tasks options" msgstr "Taakopties" msgid "Reminder options" msgstr "Herinneringsopties" msgid "Insert timeline" msgstr "Voeg tijdlijn in" msgid "Timeline" msgstr "Tijdlijn" msgid "From (hour)" msgstr "Van (uur)" msgid "Step (minutes)" msgstr "Stap (minuten)" msgid "To (hour)" msgstr "Naar (uur)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Selecteer a.u.b. minimaal één dag wanneer herhalingen aanstaan." msgid "Set time" msgstr "Stel tijd in" msgid "Hour" msgstr "Uur" msgid "Minute" msgstr "Minuut" msgid "Today" msgstr "Vandaag" msgid "Tomorrow" msgstr "Morgen" msgid "Selected task will be removed." msgstr "Geselecteerde taak zal worden verwijderd." msgid "Select date and time" msgstr "Selecteer datum en tijd" msgid "Enable sound notification" msgstr "Zet geluidmeldingen aan" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarmwaarschuwing" msgid "Days" msgstr "Dagen" msgid "Hours" msgstr "Uren" msgid "Minutes" msgstr "Minuten" msgid "Alarm command" msgstr "Alarmopdracht" msgid "Date period" msgstr "Datumperiode" msgid "Months" msgstr "Maanden" msgid "Repeat" msgstr "Herhaal" msgid "Repeat in the following days" msgstr "Herhaal op de volgende dagen" msgid "Time period" msgstr "Tijdperiode" msgid "Start" msgstr "Start" msgid "End" msgstr "Einde" msgid "Interval" msgstr "Interval" msgid "Ignore alarm when task expired offline" msgstr "Negeer alarm wanneer de taak zonder internetverbinding verliep" msgid "Recurrent task" msgstr "Herhaaldelijke taak" msgid "Enable" msgstr "Zet aan" msgid "Edit task" msgstr "Bewerk taak" msgid "Add task" msgstr "Voeg taak toe" msgid "Basic" msgstr "Eenvoudig" msgid "Advanced" msgstr "Geavanceerd" msgid "New Moon" msgstr "Nieuwe maan" msgid "Waxing Crescent Moon" msgstr "Wassende maan" msgid "Quarter Moon" msgstr "Halve maan" msgid "Waxing Gibbous Moon" msgstr "Wassende maan" msgid "Full Moon" msgstr "Volle maan" msgid "Waning Gibbous Moon" msgstr "Afnemende maan" msgid "Last Quarter Moon" msgstr "Laatste kwartier" msgid "Waning Crescent Moon" msgstr "Afnemende maan" msgid "Cannot create backup!" msgstr "Kan reservekopie niet maken." msgid "Save backup" msgstr "Reservekopie opslaan" msgid "Password protection" msgstr "Wachtwoordbeveiliging" msgid "Enter password" msgstr "Vul wachtwoord in" msgid "Re-enter password" msgstr "Vul wachtwoord nogmaals in" msgid "Please enter the password" msgstr "Vul alstublieft het wachtwoord in" msgid "Passwords do not match!" msgstr "Wachtwoorden komen niet overeen." msgid "Backup file saved successfully!" msgstr "Reservekopiebestand succesvol opgeslagen." msgid "Open backup file" msgstr "Open reservekopiebestand" msgid "Osmo backup files (*.bck)" msgstr "Osmo reservekopiebestanden (*.bck)" msgid "This is not Osmo backup file" msgstr "Dit is geen Osmo reservekopiebestand" msgid "Incorrect password!" msgstr "Verkeerd wachtwoord." msgid "All your data will be replaced with backup file content." msgstr "" "Al uw gegevens zullen worden vervangen door de inhoud van het " "reservekopiebestand." msgid "Osmo has to be restarted now..." msgstr "Osmo moet nu opnieuw opgestart worden..." msgid "Please select address" msgstr "Selecteer a.u.b. een adres" msgid "First name" msgstr "Voornaam" msgid "Last name" msgstr "Achternaam" msgid "Second name" msgstr "Tweede naam" msgid "Nickname" msgstr "Bijnaam" msgid "Tags" msgstr "Etiketten" msgid "Name day date" msgstr "Naamdagdatum" msgid "Home address" msgstr "Woonadres" msgid "Home postcode" msgstr "Postcode woonadres" msgid "Home city" msgstr "Woonplaats" msgid "Home state" msgstr "Woonprovincie" msgid "Home country" msgstr "Woonland" msgid "Organization" msgstr "Organisatie" msgid "Department" msgstr "Afdeling" msgid "Work address" msgstr "Werkadres" msgid "Work postcode" msgstr "Postcode werkadres" msgid "Work city" msgstr "Plaats werk" msgid "Work state" msgstr "Werkprovincie" msgid "Work country" msgstr "Werkland" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefoon thuis" msgid "Home phone 2" msgstr "Thuistelefoon 2" msgid "Home phone 3" msgstr "Thuistelefoon 3" msgid "Home phone 4" msgstr "Thuistelefoon 4" msgid "Work phone" msgstr "Telefoon werk" msgid "Work phone 2" msgstr "Werktelefoon 2" msgid "Work phone 3" msgstr "Werktelefoon 3" msgid "Work phone 4" msgstr "Werktelefoon 4" msgid "Cell phone" msgstr "Mobiele telefoon" msgid "Cell phone 2" msgstr "Mobiele telefoon 2" msgid "Cell phone 3" msgstr "Mobiele telefoon 3" msgid "Cell phone 4" msgstr "Mobiele telefoon 4" msgid "E-Mail" msgstr "E-mail" msgid "E-Mail 2" msgstr "E-mail 2" msgid "E-Mail 3" msgstr "E-mail 3" msgid "E-Mail 4" msgstr "E-mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Foto" msgid "New contact" msgstr "Nieuwe contactpersoon" msgid "Remove contact" msgstr "Verwijder contactpersoon" msgid "Show birthdays" msgstr "Laat verjaardagen zien" msgid "Show contact location on the map" msgstr "Laat de locatie van de contactpersoon op de kaart zien" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Over" msgid "Clear" msgstr "Wissen" msgid "First Name" msgstr "Voornaam" msgid "Last Name" msgstr "Achternaam" msgid "All fields" msgstr "Alle velden" msgid "Contact details" msgstr "Contactpersoondetails" msgid "Close contact panel" msgstr "Sluit contactpersoonpaneel" msgid "The note has changed." msgstr "De notitie is veranderd." msgid "Do you want to save it?" msgstr "Wilt u hem opslaan?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Woorden" msgid "Lines" msgstr "Regels" msgid "Characters" msgstr "Tekens" msgid "White characters" msgstr "Witte tekens" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Document" msgid "Selection" msgstr "Selectie" msgid "Modified" msgstr "Gewijzigd" msgid "New note" msgstr "Nieuwe notitie" msgid "Edit note" msgstr "Bewerk notitie" msgid "Delete note" msgstr "Verwijder notitie" msgid "Save note" msgstr "Notitie opslaan" msgid "Find" msgstr "Zoek" msgid "Toggle spell checker" msgstr "Schakel spellingcontrole om" msgid "Bold" msgstr "Vet" msgid "Italic" msgstr "Schuingedrukt" msgid "Underline" msgstr "Onderstreept" msgid "Strikethrough" msgstr "Doorgestreept" msgid "Highlight" msgstr "Accentueren" msgid "Clear attributes" msgstr "Eigenschappen wissen" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Voeg huidige datum en tijd in" msgid "Insert separator" msgstr "Voeg scheiding in" msgid "Statistics" msgstr "Statistieken" msgid "Close editor" msgstr "Sluit bewerker" msgid "Note name" msgstr "Notitienaam" msgid "Read-only" msgstr "Alleen-lezen" msgid "Line" msgstr "Regel" msgid "Column" msgstr "Kolom" msgid "case sensitive" msgstr "hoofdlettergevoelig" msgid "Close find entry" msgstr "Sluit zoek element" msgid "Edit entry" msgstr "Bewerk element" msgid "Remember cursor position" msgstr "Onthoud cursorpositie" msgid "Selected note will be removed." msgstr "Geselecteerde notitie zal worden verwijderd." msgid "No further data recovery will be possible." msgstr "Meer gegevensherstel zal niet mogelijk zijn." msgid "Add note" msgstr "Notitie toevoegen" msgid "Plain" msgstr "Eenvoudig" msgid "Encrypted" msgstr "Versleuteld" msgid "Note type" msgstr "Notitietype" msgid "Cannot open the note." msgstr "Kan de notitie niet openen." msgid "encryption support is disabled" msgstr "ondersteuning voor versleuteling staat uit" msgid "Authorization" msgstr "Machtiging" msgid "year" msgid_plural "years" msgstr[0] "jaar" msgstr[1] "jaren" msgid "day" msgid_plural "days" msgstr[0] "dag" msgstr[1] "dagen" msgid "hour" msgid_plural "hours" msgstr[0] "uur" msgstr[1] "uren" msgid "minute" msgid_plural "minutes" msgstr[0] "minuut" msgstr[1] "minuten" msgid "second" msgid_plural "seconds" msgstr[0] "seconde" msgstr[1] "seconden" msgid "or" msgstr "of" msgid "rounded down" msgstr "naar beneden afgerond" msgid "week" msgid_plural "weeks" msgstr[0] "week" msgstr[1] "weken" msgid "working day" msgid_plural "working days" msgstr[0] "werkdag" msgstr[1] "werkdagen" msgid "time is ignored" msgstr "tijd wordt genegeerd" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "weekeindedag" msgstr[1] "weekeindedagen" msgid "This calculator only supports dates after year 1." msgstr "Deze rekenmachine ondersteunt alleen data na jaar 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "weekeindedag genegeerd" msgstr[1] "weekeindedagen genegeerd" msgid "Date calculator" msgstr "Datumrekenmachine" msgid "Current date" msgstr "Huidige datum" msgid "Set current date" msgstr "Stel huidige datum in" msgid "Second" msgstr "Seconde" msgid "Set current time" msgstr "Stel huidige tijd in" msgid "Reset time" msgstr "Zet tijd terug op de standaardwaarde" msgid "First date and time" msgstr "Eerste datum en tijd" msgid "Second date and time" msgstr "Tweede datum en tijd" msgid "Alternative time units" msgstr "Alternatieve tijdeenheden" msgid "Result" msgstr "Resultaat" msgid "Duration between two dates" msgstr "Tijdsduur tussen twee data" msgid "Operation" msgstr "Bewerking" msgid "add" msgstr "optellen" msgid "subtract" msgstr "aftrekken" msgid "Date and time to add or subtract from" msgstr "Datum en tijd om vanaf op te tellen of af te trekken" msgid "Years" msgstr "Jaren" msgid "Weeks" msgstr "Weken" msgid "Seconds" msgstr "Seconden" msgid "Ignore weekend days" msgstr "Negeer weekeindedagen" msgid "Reset fields" msgstr "Zet velden terug op standaardwaarden" msgid "Time to add or subtract" msgstr "Tijd om op te tellen of af te trekken" msgid "Add to or subtract from a date" msgstr "Optellen bij of aftrekken van een datum" msgid "Cannot perform selected operation." msgstr "Kan geselecteerde actie niet uitvoeren." msgid "Task has been modified or removed." msgstr "Taak is aangepast of verwijderd." msgid "Remind me later" msgstr "Herinner me er later aan" msgid "Done" msgstr "Gedaan" msgid "Show task" msgstr "Laat taak zien" msgid "Alarm warning!" msgstr "Alarmwaarschuwing!" msgid "postponed" msgstr "uitgesteld" msgid "Day note" msgstr "Dagnotitie" msgid "Events" msgstr "Gebeurtenissen" msgid "Event" msgstr "Gebeurtenis" msgid "Task" msgstr "Taak" msgid "Birthday" msgstr "Verjaardag" msgid "Show Osmo" msgstr "Laat Osmo zien" msgid "event" msgid_plural "events" msgstr[0] "gebeurtenis" msgstr[1] "gebeurtenissen" msgid "No valid calendars defined" msgstr "Geen geldige kalenders gedefinieerd" msgid "iCalendar events" msgstr "iCalender-gebeurtenissen" msgid "Time" msgstr "Tijd" msgid "The list will be cleared and all entries will be lost." msgstr "" "De lijst zal worden leeggemaakt en alle ingevulde elementen zullen verloren " "gaan." msgid "event exported" msgid_plural "events exported" msgstr[0] "gebeurtenis geëxporteerd" msgstr[1] "gebeurtenissen geëxporteerd" msgid "iCalendar export" msgstr "iCalendar-uitvoer" msgid "Day Selector" msgstr "Dagkiezer" msgid "Use date period" msgstr "Gebruik datumperiode" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Geen taken met opgegeven datum gevonden." msgid "Save tasks" msgstr "Taken opslaan" msgid "tasks exported" msgstr "taken geëxporteerd" msgid "was born" msgstr "werd geboren" msgid "year old" msgid_plural "years old" msgstr[0] "jaar oud" msgstr[1] "jaren oud" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dag tot einde van jaar" msgstr[1] "dagen tot einde van jaar" msgid "the last day of the year" msgstr "de laatste dag van het jaar" msgid "Day tasks" msgstr "Dagtaken" msgid "Selected day note will be removed." msgstr "Geselecteerde dagnotitie zal worden verwijderd." msgid "Continue?" msgstr "Doorgaan?" msgid "Previous year" msgstr "Vorig jaar" msgid "Previous month" msgstr "Vorige maand" msgid "Previous day" msgstr "Vorige dag" msgid "Next day" msgstr "Volgende dag" msgid "Next month" msgstr "Volgende maand" msgid "Next year" msgstr "Volgend jaar" msgid "Full-year calendar" msgstr "Volledig-jaar-kalender" msgid "Print calendar" msgstr "Druk kalender af" msgid "Toggle day note panel" msgstr "Schakel dagnotitiepaneel" msgid "Select day color" msgstr "Selecteer dagkleur" msgid "Browse notes" msgstr "Blader door notities" msgid "Browse iCal events" msgstr "Blader door iCal-gebeurtenissen" msgid "Export to iCal file" msgstr "Exporteer naar iCal-bestand" msgid "Previous and next month" msgstr "Vorige en volgende maand" msgid "Close note panel" msgstr "Sluit notitiepaneel" msgid "Clear text" msgstr "Tekst wissen" msgid "Info" msgstr "Informatie" msgid "Select color" msgstr "Selecteer kleur" msgid "Name day" msgstr "Naamdag" msgid "Printing properties" msgstr "Printereigenschappen" msgid "Month name" msgstr "Maandnaam" msgid "Day name" msgstr "Dagnaam" msgid "Fonts" msgstr "Lettertypen" msgid "Birthdays" msgstr "Verjaardagen" msgid "Namedays" msgstr "Naamdagen" msgid "Visible events" msgstr "Zichtbare gebeurtenissen" msgid "Padding" msgstr "Opvulling" msgid "Event maximum length" msgstr "Maximale gebeurtenislengte" msgid "Page orientation:" msgstr "Paginarichting:" msgid "Portrait" msgstr "Staand" msgid "Landscape" msgstr "Liggend" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Schrikkeljaar" msgid "Yes" msgstr "Ja" msgid "No" msgstr "Nee" msgid "Chinese year animal" msgstr "Chinese dierenriem" msgid "Number of days" msgstr "Aantal dagen" msgid "Number of weeks" msgstr "Aantal weken" msgid "Number of weekend days" msgstr "Aantal weekeindedagen" msgid "Year info" msgstr "Jaarinformatie" msgid "Alternative view" msgstr "Alternatieve weergave" msgid "Started" msgstr "Gestart" msgid "Finished" msgstr "Klaar" msgid "New task" msgstr "Nieuwe taak" msgid "Remove task" msgstr "Verwijder taak" msgid "Change due date to previous date" msgstr "Verander de vervaldatum naar de vorige datum" msgid "Change due date to next date" msgstr "Verander de vervaldatum naar de volgende datum" msgid "Export tasks" msgstr "Exporteer taken" msgid "Print visible tasks list" msgstr "Druk lijst af van zichtbare taken" msgid "Task details" msgstr "Taakdetails" msgid "Close description panel" msgstr "Sluit beschrijvingspaneel" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "schakel naar vorige tab" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "schakel naar volgende tab" msgid "switch to selected page" msgstr "schakel naar geselecteerde pagina" msgid "show options window" msgstr "laat optievenster zien" msgid "show about window" msgstr "laat het 'over'-venster zien" msgid "toggle fullscreen mode" msgstr "Schermvullende modus omschakelen" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "schakel pagina in opties en 'over'-tabblad" msgid "exit" msgstr "sluit af" msgid "Space" msgstr "Spatiebalk" msgid "select current date" msgstr "selecteer huidige datum" msgid "Ctrl+Space" msgstr "Ctrl+spatiebalk" msgid "toggle personal data visibility" msgstr "zichtbaarheid persoonlijke gegevens omschakelen" msgid "Arrows" msgstr "Pijltjestoetsen" msgid "change day" msgstr "verander dag" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "blader door de inhoud van het daginformatiepaneel" msgid "change month" msgstr "verander maand" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "verander jaar" msgid "toggle calendars for the previous and next month" msgstr "schakel kalenders voor de vorige en volgende maand" msgid "day notes browser" msgstr "dagnotities-bladeraar" msgid "assign background color to day note" msgstr "ken achtergrondkleur toe aan dagnotitie" msgid "date calculator" msgstr "datum-rekenmachine" msgid "show full-year calendar" msgstr "laat volledig-jaar-kalender zien" msgid "jump to date" msgstr "Spring naar datum" msgid "Delete" msgstr "Verwijderen" msgid "remove day note" msgstr "verwijder dagnotitie" msgid "Alt+Arrows" msgstr "Alt+pijltjestoetsen" msgid "Esc" msgstr "Escape" msgid "close editor" msgstr "sluit bewerker" msgid "toggle bold" msgstr "schakel vet" msgid "toggle italic" msgstr "schakel schuingedrukt" msgid "toggle underline" msgstr "schakel onderstreept" msgid "toggle strikethrough" msgstr "schakel doorgestreept" msgid "toggle highlight" msgstr "schakel accentueren" msgid "Arrows Up/Down" msgstr "Pijl omhoog/naar beneden" msgid "toggle alternative view" msgstr "schakel alternatieve weergave" msgid "year info" msgstr "jaarinformatie" msgid "set current year" msgstr "stel huidig jaar in" msgid "close full-year calendar" msgstr "sluit volledig-jaar-kalender" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "taak toevoegen" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "taak bewerken" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "taak verwijderen" msgid "toggle hidden tasks" msgstr "schakel verborgen taken" msgid "activate search field" msgstr "activeer zoekveld" msgid "Left, Right" msgstr "Links, Rechts" msgid "change category filter" msgstr "verander categoriefilter" msgid "close task info panel" msgstr "sluit taakinformatiepaneel" msgid "Insert" msgstr "Invoegen" msgid "add contact" msgstr "contactpersoon toevoegen" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "contactpersoon bewerken" msgid "remove contact" msgstr "contactpersoon verwijderen" msgid "change search mode" msgstr "verander zoekmodus" msgid "close contact details panel" msgstr "sluit paneel voor contactpersoondetails" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "notitie openen" msgid "add note" msgstr "notitie toevoegen" msgid "remove note" msgstr "notitie verwijderen" msgid "edit note name and category" msgstr "bewerk notitienaam en -categorie" msgid "close note editor" msgstr "sluit notitiebewerker" msgid "save note" msgstr "notitie opslaan" msgid "find text" msgstr "zoek tekst" msgid "clear selection attributes" msgstr "selectie-attributen wissen" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO is ontworpen met het oog op gebruiksgemak, dus er zijn veel " "sneltoetsen. Hier is de volledige lijst:" msgid "Note editor" msgstr "Notitiebewerker" msgid "Selector" msgstr "Kiezer" msgid "Editor" msgstr "Bewerker" msgid "A handy personal organizer" msgstr "Een handige persoonlijke agenda" msgid "compiled on" msgstr "gecompileerd op" msgid "Programming" msgstr "Programmeren" msgid "Graphics" msgstr "Plaatjes" msgid "Contributors" msgstr "Medewerkers" msgid "Translators" msgstr "Vertalers" msgid "Mailing lists" msgstr "E-mail-lijsten" msgid "Bug tracker" msgstr "Foutopspoorder" msgid "Feature requests" msgstr "Functieverzoeken" msgid "Available modules" msgstr "Beschikbare modules" msgid "Compiled-in features" msgstr "Meegecompileerde functies" msgid "iCalendar support" msgstr "iCalendar-ondersteuning" msgid "Encrypted notes support" msgstr "Ondersteuning voor versleutelde notities" msgid "Backup support" msgstr "Ondersteuning voor reservekopieën" msgid "Printing support" msgstr "Printerondersteuning" msgid "Spell checker support" msgstr "Ondersteuning voor spellingcontrole" msgid "version" msgstr "versie" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Sneltoetsen" msgid "License" msgstr "Licentie" #~ msgid "handy personal organizer" #~ msgstr "Een handige persoonlijke agenda" osmo-0.4.2/po/pl.po0000664000175000017500000011163613204320601011005 00000000000000# Polish translation of Osmo # This file is distributed under the same license as the Osmo package. # Piotr Mąka , 2007-2014. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-05 12:45+0100\n" "Last-Translator: Piotr Mąka \n" "Language-Team: Polish\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" msgid "Colors" msgstr "Kolory" msgid "Color of contact tags" msgstr "Kolor tagów w kontaktach" msgid "Color of links" msgstr "Kolor odnośników" msgid "Font size" msgstr "Rozmiar czcionki" msgid "Name font size" msgstr "Rozmiar czcionki imienia i nazwiska" msgid "Item font size" msgstr "Rozmiar czcionki danych personalnych" msgid "Photo size" msgstr "Rozmiar zdjęcia" msgid "Small" msgstr "Mały" msgid "Medium" msgstr "Średni" msgid "Large" msgstr "Duży" msgid "Hide group column" msgstr "Ukryj kolumnę grup" msgid "Maps provider" msgstr "Dostawca map" msgid "Age" msgstr "Wiek" msgid "Birthday date" msgstr "Data urodzin" msgid "Zodiac sign" msgstr "Znak zodiaku" msgid "Contacts" msgstr "Kontakty" msgid "Appearance" msgstr "Wygląd" msgid "Miscellaneous" msgstr "Różne" msgid "Groups" msgstr "Grupy" msgid "Visible columns in birthday browser" msgstr "Widoczne kolumny w przeglądarce urodzin" msgid "Algorithm" msgstr "Algorytm" msgid "Hashing" msgstr "Haszowanie" msgid "Compression" msgstr "Kompresja" msgid "Ratio" msgstr "Współczynnik" msgid "Fast" msgstr "Szybki" msgid "Good" msgstr "Dobry" msgid "Best" msgstr "Najlepszy" msgid "Type" msgstr "Typ" msgid "Category" msgstr "Kategoria" msgid "Last changes" msgstr "Ostatnia zmiana" msgid "Created" msgstr "Utworzony" msgid "Remember the last selected category" msgstr "Zapamiętaj ostatnio wybraną kategorię" msgid "Use system format for date and time" msgstr "Użyj formatu systemowego dla daty i czasu" msgid "Notes" msgstr "Notatki" msgid "Encryption" msgstr "Szyfrowanie" msgid "Visible columns" msgstr "Widoczne kolumny" msgid "Categories" msgstr "Kategorie" msgid "Notes options" msgstr "Opcje notatek" msgid "Jump to date" msgstr "Idź do dnia" msgid "Day" msgstr "Dzień" msgid "Month" msgstr "Miesiąc" msgid "Year" msgstr "Rok" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Wybierz czcionkę..." msgid "None" msgstr "Brak" msgid "All items" msgstr "Wszystkie zadania" msgid "Question" msgstr "Pytanie" msgid "Information" msgstr "Informacje" msgid "Error" msgstr "Błąd" msgid "Warning" msgstr "Ostrzeżenie" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Zaznaczony plik istnieje! Nadpisać?" msgid "Selected contact will be removed." msgstr "Zaznaczony kontakt zostanie usunięty." msgid "Are you sure?" msgstr "Czy jesteś pewny?" msgid "No date" msgstr "Brak daty" msgid "Select photo" msgstr "Wybierz zdjęcie" msgid "Address" msgstr "Adres" msgid "Postcode" msgstr "Kod pocztowy" msgid "City" msgstr "Miasto" msgid "State" msgstr "Województwo" msgid "Country" msgstr "Kraj" msgid "Edit contact" msgstr "Edytuj kontakt" msgid "Add contact" msgstr "Dodaj kontakt" msgid "Personal" msgstr "Osobiste" msgid "Group" msgstr "Grupa" msgid "Home" msgstr "Dom" msgid "Work" msgstr "Praca" msgid "Phones" msgstr "Telefony" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Dodatkowe informacje" msgid "_OK" msgstr "" msgid "no entries" msgstr "brak wpisów" msgid "entry" msgid_plural "entries" msgstr[0] "wpis" msgstr[1] "wpisy" msgstr[2] "wpisów" msgid "Calendar notes" msgstr "Notatki kalendarzowe" msgid "Search" msgstr "Szukaj" msgid "Filter" msgstr "Filtr" msgid "Current month" msgstr "Aktualny miesiąc" msgid "Selected month" msgstr "Zaznaczony miesiąc" msgid "Current year" msgstr "Rok bieżący" msgid "Selected year" msgstr "Zaznaczony rok" msgid "Selected month and year" msgstr "Zaznaczony miesiąc i rok" msgid "All notes" msgstr "Wszystkie notatki" msgid "Case sensitive" msgstr "Rozróżniaj wielkość znaków" msgid "Strikethrough past day notes" msgstr "Przekreśl notatki minionych dni" msgid "Date" msgstr "Data" msgid "Note" msgstr "Notatka" msgid "_Close" msgstr "" msgid "Rat" msgstr "Szczur" msgid "Ox" msgstr "Wół" msgid "Tiger" msgstr "Tygrys" msgid "Hare" msgstr "Zając" msgid "Dragon" msgstr "Smok" msgid "Snake" msgstr "Wąż" msgid "Horse" msgstr "Koń" msgid "Sheep" msgstr "Owca" msgid "Monkey" msgstr "Małpa" msgid "Fowl" msgstr "Ptak" msgid "Dog" msgstr "Pies" msgid "Pig" msgstr "Świnia" msgid "Unknown" msgstr "Nieznany" msgid "Aquarius" msgstr "Wodnik" msgid "Pisces" msgstr "Ryba" msgid "Aries" msgstr "Baran" msgid "Taurus" msgstr "Byk" msgid "Gemini" msgstr "Bliźnięta" msgid "Cancer" msgstr "Rak" msgid "Leo" msgstr "Lew" msgid "Virgo" msgstr "Panna" msgid "Libra" msgstr "Waga" msgid "Scorpio" msgstr "Skorpion" msgid "Sagittarius" msgstr "Strzelec" msgid "Capricorn" msgstr "Koziorożec" msgid "Osmo has to be restarted to take effect." msgstr "Osmo musi być uruchomione ponownie..." msgid "Layout" msgstr "Układ" msgid "Vertical" msgstr "Pionowy" msgid "Horizontal" msgstr "Poziomy" msgid "Tabs position" msgstr "Pozycja zakładek" msgid "Left" msgstr "Lewa" msgid "Right" msgstr "Prawa" msgid "Top" msgstr "Górna" msgid "Bottom" msgstr "Dolna" msgid "Disable underline in links" msgstr "Wyłącz podkreślenia w odnośnikach" msgid "Show exit button in toolbar" msgstr "Pokaż przycisk wyjścia w pasku narzędzi" msgid "At least one module must be visible." msgstr "Przynajmniej jeden moduł musi być widoczny." msgid "Calendar" msgstr "Kalendarz" msgid "Tasks" msgstr "Zadania" msgid "Override locale settings" msgstr "Modyfikuj ustawnienia językowe" msgid "Date format" msgstr "Format daty" msgid "DD-MM-YYYY" msgstr "DD-MM-RRRR" msgid "MM-DD-YYYY" msgstr "MM-DD-RRRR" msgid "YYYY-MM-DD" msgstr "RRRR-MM-DD" msgid "YYYY-DD-MM" msgstr "RRRR-DD-MM" msgid "Time format" msgstr "Format czasu" msgid "hours" msgstr "godziny" msgid "Spell checker language" msgstr "Język sprawdzania pisowni" msgid "Enable tooltips" msgstr "Włącz dymki" msgid "Remember last selected page" msgstr "Zapamiętaj ostatnio wybraną zakładkę" msgid "Save data after every modification" msgstr "Zapisuj dane po każdej modyfikacji" msgid "Web browser" msgstr "Przeglądarka internetowa" msgid "E-mail client" msgstr "Klient poczty" msgid "Sound player" msgstr "Odtwarzacz dźwięku" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s zostanie zastąpiony przez adres strony www" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s zostanie zastąpiony przez adres e-mail" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s zostanie zastąpiony przez nazwę pliku dźwiękowego" msgid "Enable system tray" msgstr "Włącz obsługę zasobnika systemowego" msgid "Start minimised" msgstr "Uruchom zminimalizowane" msgid "Ignore day note events" msgstr "Ignoruj notatki kalendarza" msgid "General" msgstr "Ogólne" msgid "Hide" msgstr "Ukryj" msgid "Helpers" msgstr "Programy zewnętrzne" msgid "System tray" msgstr "Zasobnik systemowy" msgid "Preferences" msgstr "Ustawienia" msgid "Syntax" msgstr "Składnia" msgid "abbreviated weekday name" msgstr "skrócona nazwa dnia" msgid "full weekday name" msgstr "pełna nazwa dnia" msgid "abbreviated month name" msgstr "skrócona nazwa miesiąca" msgid "full month name" msgstr "pełna nazwa miesiąca" msgid "day of the month" msgstr "dzień miesiąca" msgid "MM/DD/YY" msgstr "MM/DD/RR" msgid "day of the month without leading zeros" msgstr "dzień miesiąca bez zer wiodących" msgid "month" msgid_plural "months" msgstr[0] "miesiąc" msgstr[1] "miesiące" msgstr[2] "miesięcy" msgid "year without century" msgstr "rok (dwie cyfry)" msgid "year with century" msgstr "rok (cztery cyfry)" msgid "Date header format" msgstr "Format daty w nagłówku" msgid "Set default format" msgstr "Ustaw domyślny format" msgid "Date format syntax" msgstr "Składnia formatu daty" msgid "Day note marker" msgstr "Oznaczenie notatek" msgid "Event marker" msgstr "Oznaczenie wydarzenia" msgid "Circle" msgstr "Kółko" msgid "Ellipse" msgstr "Elipsa" msgid "Wave" msgstr "Fala" msgid "Current day marker" msgstr "Oznaczenie aktualnego dnia" msgid "Arrow" msgstr "Strzałka" msgid "Free-hand circle" msgstr "Odręczne kółko" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Kolor dni weekendowych" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Kolor kursora" msgid "Event marker color" msgstr "Kolor oznaczenia wydarzeń" msgid "Current day marker color" msgstr "Kolor oznaczenia aktualnego dnia" msgid "Birthday marker color" msgstr "Kolor oznaczenia urodzin" msgid "Date font" msgstr "Czcionka daty" msgid "Calendar font" msgstr "Czcionka kalendarza" msgid "Note font" msgstr "Czcionka notatki" msgid "Enable block cursor" msgstr "Wypełniony kursor" msgid "Cursor thickness" msgstr "Grubość kursora" msgid "Thin" msgstr "Cienki" msgid "Thick" msgstr "Gruby" msgid "Edit category" msgstr "Edycja kategorii" msgid "Color" msgstr "Kolor" msgid "Name" msgstr "Nazwa" msgid "Select ICS file" msgstr "Wybierz plik ICS" msgid "All Files" msgstr "Wszystkie pliki" msgid "Calendar files (*.ics)" msgstr "Pliki kalendarza (*.ics)" msgid "Modify ICAL parameters" msgstr "Zmień ustawienia ICAL" msgid "Filename" msgstr "Nazwa pliku" msgid "Options" msgstr "Opcje" msgid "Disabled" msgstr "Nieaktywne" msgid "Valid" msgstr "Poprawność" msgid "Description" msgstr "Opis" msgid "Full date" msgstr "Pełna data" msgid "Mark" msgstr "Zaznaczenie" msgid "Week start on Monday" msgstr "Tydzień zaczyna się od poniedziałku" msgid "Show day names" msgstr "Pokaż nazwy dni" msgid "No month change" msgstr "Nie zmieniaj miesiąca" msgid "Show week numbers" msgstr "Pokaż numer tygodnia" msgid "Simple view in full-year calendar" msgstr "Uproszczony wygląd kalendarza całorocznego" msgid "Enable auxilary calendars" msgstr "Pokaż dodatkowe miesiące" msgid "Ascending sorting in day notes browser" msgstr "Sortuj rosnąco w przeglądarce notatek" msgid "Enable spell checker in day notes" msgstr "Sprawdzanie pisowni w notatkach" msgid "Current time" msgstr "Aktualny czas" msgid "Show seconds" msgstr "Pokaż sekundy" msgid "Day number" msgstr "Numer dnia" msgid "Today distance" msgstr "Ilość dni do dziś" msgid "Marked days" msgstr "Zaznaczone dni" msgid "Week number" msgstr "Numer tygodnia" msgid "Weekend days" msgstr "Dni weekendu" msgid "Day category" msgstr "Kategoria dnia" msgid "Moon phase" msgstr "Faza księżyca" msgid "Day notes" msgstr "Notatka" msgid "Day categories" msgstr "Kategoria dnia" msgid "iCalendar files" msgstr "Pliki iCal" msgid "Show in day info panel" msgstr "Pokaż w panelu informacyjnym" msgid "Tasks list" msgstr "Lista zadań" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr" msgid "Summary" msgstr "Zadanie" msgid "Due date" msgstr "Data" msgid "Priority" msgstr "Priorytet" msgid "Error printing" msgstr "Błąd druku" msgid "No birthdays defined" msgstr "Nie zdefiniowano żadnych urodzin" msgid "Birthdays list" msgstr "Lista urodzin" msgid "Days to birthday" msgstr "Dni do urodzin" msgid "today" msgstr "dzisiaj" msgid "Select CSV file" msgstr "Wybierz plik do zapisu (CSV)" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Pliki CSV (pola rozdzielone przecinkiem) (*.csv)" msgid "Please select file first." msgstr "Proszę wybrać plik." msgid "Import contacts" msgstr "Importuj kontakty" msgid "Import type" msgstr "Rodzaj importu" msgid "File" msgstr "Plik" msgid "Input filename" msgstr "Nazwa pliku" msgid "Import" msgstr "Importuj" msgid "Nothing to import." msgstr "Brak danych do zaimportowania." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kontakt dodany" msgstr[1] "kontakty dodane" msgstr[2] "kontaktów dodanych" msgid "of" msgstr "z" msgid "Record" msgstr "Wpis" msgid "Number fields per record" msgstr "Ilość pól na wpis" msgid "Use first record as header" msgstr "Użyj pierwszego wpisu jako nagłówek" msgid "Field type" msgstr "Typ pola" msgid "Value" msgstr "Wartość" msgid "No records found in selected file." msgstr "Nie znaleziono wpisów w wybranym pliku." msgid "Cannot read file." msgstr "Nie można odczytać pliku." msgid "Cannot open file." msgstr "Nie można otworzyć pliku." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Pokaż kalendarz" msgid "Show tasks" msgstr "Pokaż zadania" msgid "Show contacts" msgstr "Pokaż kontakty" msgid "Show notes" msgstr "Pokaż notatki" msgid "Show options" msgstr "Pokaż opcje" msgid "Quit" msgstr "Wyjście" msgid "Show small calendar window" msgstr "Pokaż okno z małym kalendarzem" msgid "Check for events since last run" msgstr "Sprawdź wydarzenia od ostatniego użycia programu" msgid "Number of days to check forward for events (default: 0)" msgstr "" "Liczba dni uwzględniona do sprawdzenia przyszłych zdarzeń (domyślnie: 0)" msgid "Set absolute path for settings and data files" msgstr "Ustaw pełną scieżkę dla konfiguracji i plików z danymi" msgid "Match contacts with given string" msgstr "Wyświetla kontakty zawierające podany ciąg znaków" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "BŁĄD: Nie można utworzyć pliku konfiguracyjnego." msgid "Another copy of OSMO is already running." msgstr "OSMO jest już uruchomione." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Jednoczesne używanie dwóch lub więcej kopii OSMO może spowodować utratę " "danych." msgid "Do you really want to continue?" msgstr "Czy na pewno chcesz kontynuować?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Niski" msgid "High" msgstr "Wysoki" msgid "Done!" msgstr "Zrobione!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kontakt wyeksportowany" msgstr[1] "kontakty wyeksportowane" msgstr[2] "kontaktów wyeksportowano" msgid "Cannot create file." msgstr "Nie można utworzyć pliku." msgid "Select output file" msgstr "Wybierz plik do zapisu" msgid "Export contacts" msgstr "Eksportuj kontakty" msgid "Output format" msgstr "Format wyjściowy" msgid "Add header" msgstr "Dodaj nagłówek" msgid "Fields to export" msgstr "Pola do wyeksportowania" msgid "All" msgstr "Wszystkie" msgid "Invert" msgstr "Odwróć zaznaczenie" msgid "Select fields" msgstr "Wybierz pola" msgid "Output filename" msgstr "Nazwa pliku" msgid "Export" msgstr "Eksportuj" msgid "Color of items that are due today" msgstr "Kolor zadania którego ważność upływa dziś" msgid "Color of items that are due in the next 7 days" msgstr "Kolor zadania którego ważność upływa w ciągu 7 dni" msgid "Color of items that are past due" msgstr "Kolor zadań których ważność upłynęła" msgid "Task info font" msgstr "Czcionka opisu zadań" msgid "Show in bold tasks with high priority" msgstr "Zadania z wysokim priorytetem wyświetlaj czcionką pogrubioną" msgid "Hide completed tasks" msgstr "Ukryj wykonane zadania" msgid "Delete completed tasks without confirmation" msgstr "Wykonane zadania usuń bez potwierdzania" msgid "Add new task when double clicked on tasks list" msgstr "Dodaj nowe zadanie poprzed dwukrotne kliknięcie na liście zadań" msgid "Postpone time" msgstr "Czas opóźnienia" msgid "minutes" msgstr "minuty" msgid "0 for disable" msgstr "0 aby wyłączyć" msgid "Repeat sound alarm" msgstr "Powtórz alarm dźwiękowy" msgid "times" msgstr "razy" msgid "Global notification command" msgstr "Komenda wywoływana przy każdym wydarzeniu" msgid "Tasks options" msgstr "Opcje zadań" msgid "Reminder options" msgstr "Opcje przypominacza" msgid "Insert timeline" msgstr "Wstaw przedziały czasowe" msgid "Timeline" msgstr "Przedziały" msgid "From (hour)" msgstr "Od (godzina)" msgid "Step (minutes)" msgstr "Krok (w minutach)" msgid "To (hour)" msgstr "Do (godzina)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" "Proszę wybrać przynajmniej jeden dzień tygodnia gdy powtarzalność zadania " "jest włączona." msgid "Set time" msgstr "Ustaw czas" msgid "Hour" msgstr "Godzina" msgid "Minute" msgstr "Minuta" msgid "Today" msgstr "Dzisiaj" msgid "Tomorrow" msgstr "Jutro" msgid "Selected task will be removed." msgstr "Zaznaczone zadanie zostanie usunięte." msgid "Select date and time" msgstr "Wybierz datę i czas" msgid "Enable sound notification" msgstr "Włącz powiadomienie dźwiękowe" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Przypomnienie o zadaniu" msgid "Days" msgstr "Dni" msgid "Hours" msgstr "Godziny" msgid "Minutes" msgstr "Minuty" msgid "Alarm command" msgstr "Komenda do wykonania" msgid "Date period" msgstr "Okres dni" msgid "Months" msgstr "Miesiące" msgid "Repeat" msgstr "Powtórz" msgid "Repeat in the following days" msgstr "Powtórz w następujących dniach" msgid "Time period" msgstr "Okres czasu" msgid "Start" msgstr "Początek" msgid "End" msgstr "Koniec" msgid "Interval" msgstr "Odstęp" msgid "Ignore alarm when task expired offline" msgstr "Ignoruj alarm kiedy zadanie wygasło przy wyłączonym programie" msgid "Recurrent task" msgstr "Powtarzalne zadanie" msgid "Enable" msgstr "Aktywuj" msgid "Edit task" msgstr "Edytuj zadanie" msgid "Add task" msgstr "Dodaj zadanie" msgid "Basic" msgstr "Proste" msgid "Advanced" msgstr "Zaawansowane" msgid "New Moon" msgstr "Nów" msgid "Waxing Crescent Moon" msgstr "Młody Księżyc" msgid "Quarter Moon" msgstr "Pierwsza Kwadra" msgid "Waxing Gibbous Moon" msgstr "Księżyc Garbaty" msgid "Full Moon" msgstr "Pełnia" msgid "Waning Gibbous Moon" msgstr "Księżyc Garbaty" msgid "Last Quarter Moon" msgstr "Ostatnia Kwadra" msgid "Waning Crescent Moon" msgstr "Stary Księżyc" msgid "Cannot create backup!" msgstr "Nie można utworzyć kopii zapasowej!" msgid "Save backup" msgstr "Zapisz kopię zapasową" msgid "Password protection" msgstr "Ochrona hasłem" msgid "Enter password" msgstr "Wprowadź hasło" msgid "Re-enter password" msgstr "Wprowadź ponownie hasło" msgid "Please enter the password" msgstr "Proszę wprowadzić hasło" msgid "Passwords do not match!" msgstr "Hasła nie są takie same!" msgid "Backup file saved successfully!" msgstr "Zapisywanie kopii zapasowej powiodło się!" msgid "Open backup file" msgstr "Otwórz plik kopii zapasowej" msgid "Osmo backup files (*.bck)" msgstr "Kopia zapasowa Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Plik nie jest kopią zapasową Osmo" msgid "Incorrect password!" msgstr "Nieprawidłowe hasło!" msgid "All your data will be replaced with backup file content." msgstr "Twoje dane zostaną zastąpione zawartością kopii zapasowej" msgid "Osmo has to be restarted now..." msgstr "Osmo musi być uruchomione ponownie..." msgid "Please select address" msgstr "Proszę wybrać adres" msgid "First name" msgstr "Imię" msgid "Last name" msgstr "Nazwisko" msgid "Second name" msgstr "Drugie imię" msgid "Nickname" msgstr "Przezwisko" msgid "Tags" msgstr "Tagi" msgid "Name day date" msgstr "Data imienin" msgid "Home address" msgstr "Adres (dom)" msgid "Home postcode" msgstr "Kod pocztowy (dom)" msgid "Home city" msgstr "Miasto (dom)" msgid "Home state" msgstr "Województwo (dom)" msgid "Home country" msgstr "Kraj (dom)" msgid "Organization" msgstr "Firma" msgid "Department" msgstr "Oddział" msgid "Work address" msgstr "Adres (praca)" msgid "Work postcode" msgstr "Kod pocztowy (praca)" msgid "Work city" msgstr "Miasto (praca)" msgid "Work state" msgstr "Województwo (praca)" msgid "Work country" msgstr "Kraj (praca)" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefon domowy" msgid "Home phone 2" msgstr "Telefon domowy 2" msgid "Home phone 3" msgstr "Telefon domowy 3" msgid "Home phone 4" msgstr "Telefon domowy 4" msgid "Work phone" msgstr "Telefon służbowy" msgid "Work phone 2" msgstr "Telefon służbowy 2" msgid "Work phone 3" msgstr "Telefon służbowy 3" msgid "Work phone 4" msgstr "Telefon służbowy 4" msgid "Cell phone" msgstr "Telefon komórkowy" msgid "Cell phone 2" msgstr "Telefon komórkowy 2" msgid "Cell phone 3" msgstr "Telefon komórkowy 3" msgid "Cell phone 4" msgstr "Telefon komórkowy 4" msgid "E-Mail" msgstr "E-Mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "Gadu-Gadu" msgid "IM Yahoo" msgstr "Yahoo" msgid "IM MSN" msgstr "MSN" msgid "IM ICQ" msgstr "ICQ" msgid "IM AOL" msgstr "AOL" msgid "IM Jabber" msgstr "Jabber" msgid "IM Skype" msgstr "Skype" msgid "IM Tlen" msgstr "Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Zdjęcie" msgid "New contact" msgstr "Utwórz nowy kontakt" msgid "Remove contact" msgstr "Usuń kontakt" msgid "Show birthdays" msgstr "Pokaż urodziny" msgid "Show contact location on the map" msgstr "Pokaż adres kontaktu na mapie" msgid "Backup data" msgstr "Utwórz kopię zapasową" msgid "Restore data" msgstr "Odtwórz z kopii zapasowej" msgid "About" msgstr "O programie" msgid "Clear" msgstr "Wyczyść" msgid "First Name" msgstr "Imię" msgid "Last Name" msgstr "Nazwisko" msgid "All fields" msgstr "Wszystkie pola" msgid "Contact details" msgstr "Szczegóły wpisu" msgid "Close contact panel" msgstr "Zamknij panel kontaktu" msgid "The note has changed." msgstr "Notatka została zmieniona." msgid "Do you want to save it?" msgstr "Czy chcesz zapisać?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Słowa" msgid "Lines" msgstr "Linie" msgid "Characters" msgstr "Znaki" msgid "White characters" msgstr "Białe znaki" msgid "Bytes" msgstr "Bajty" msgid "Document" msgstr "Dokument" msgid "Selection" msgstr "Zaznaczenie" msgid "Modified" msgstr "Zmodyfikowany" msgid "New note" msgstr "Nowa notatka" msgid "Edit note" msgstr "Edytuj notatkę" msgid "Delete note" msgstr "Usuń notatkę" msgid "Save note" msgstr "Zapisz notatkę" msgid "Find" msgstr "Szukaj" msgid "Toggle spell checker" msgstr "Sprawdzanie pisowni" msgid "Bold" msgstr "Pogrubienie" msgid "Italic" msgstr "Kursywa" msgid "Underline" msgstr "Podkreślenie" msgid "Strikethrough" msgstr "Przekreślenie" msgid "Highlight" msgstr "Podświetlenie" msgid "Clear attributes" msgstr "Usuń atrybuty" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Wstaw aktualną datę i czas" msgid "Insert separator" msgstr "Wstaw separator" msgid "Statistics" msgstr "Statystyki" msgid "Close editor" msgstr "Zamknij edytor" msgid "Note name" msgstr "Nazwa notatki" msgid "Read-only" msgstr "Tylko do odczytu" msgid "Line" msgstr "Linia" msgid "Column" msgstr "Kolumna" msgid "case sensitive" msgstr "rozróżnianie wielkości znaków" msgid "Close find entry" msgstr "Zamknij wyszukiwarkę tekstu" msgid "Edit entry" msgstr "Edytuj wpis" msgid "Remember cursor position" msgstr "Pamiętaj pozycję kursora" msgid "Selected note will be removed." msgstr "Wybrana notatka zostanie usunięta." msgid "No further data recovery will be possible." msgstr "Odzyskanie danych nie będzie możliwe" msgid "Add note" msgstr "Dodaj notatkę" msgid "Plain" msgstr "Zwykła" msgid "Encrypted" msgstr "Szyfrowana" msgid "Note type" msgstr "Rodzaj notatki" msgid "Cannot open the note." msgstr "Nie można otworzyć notatki." msgid "encryption support is disabled" msgstr "obsługa szyfrowania jest wyłączona" msgid "Authorization" msgstr "Uwierzytelnianie" msgid "year" msgid_plural "years" msgstr[0] "rok" msgstr[1] "lata" msgstr[2] "lat" msgid "day" msgid_plural "days" msgstr[0] "dzień" msgstr[1] "dni" msgstr[2] "dni" msgid "hour" msgid_plural "hours" msgstr[0] "godzina" msgstr[1] "godziny" msgstr[2] "godzin" msgid "minute" msgid_plural "minutes" msgstr[0] "minuta" msgstr[1] "minuty" msgstr[2] "minut" msgid "second" msgid_plural "seconds" msgstr[0] "sekunda" msgstr[1] "sekundy" msgstr[2] "sekund" msgid "or" msgstr "lub" msgid "rounded down" msgstr "zaokrąglone w dół" msgid "week" msgid_plural "weeks" msgstr[0] "tydzień" msgstr[1] "tygodnie" msgstr[2] "tygodni" msgid "working day" msgid_plural "working days" msgstr[0] "dzień roboczy" msgstr[1] "dni robocze" msgstr[2] "dni roboczych" msgid "time is ignored" msgstr "czas jest ignorowany" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "Dzień weekendu" msgstr[1] "Dni weekendu" msgstr[2] "Dni weekendu" msgid "This calculator only supports dates after year 1." msgstr "Kalkulator obsługuje tylko daty po roku 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "zignorowany dzień weekendowy" msgstr[1] "zignorowane dni robocze" msgstr[2] "zignorowanych dni roboczych" msgid "Date calculator" msgstr "Kalkulator dat" msgid "Current date" msgstr "Aktualna data" msgid "Set current date" msgstr "Ustaw aktualną datę" msgid "Second" msgstr "Sekunda" msgid "Set current time" msgstr "Ustaw aktualny czas" msgid "Reset time" msgstr "Wyzeruj czas" msgid "First date and time" msgstr "Pierwsza data i czas" msgid "Second date and time" msgstr "Druga data i czas" msgid "Alternative time units" msgstr "Alternatywne jednostki czasu" msgid "Result" msgstr "Wynik" msgid "Duration between two dates" msgstr "Różnica pomiędzy datami" msgid "Operation" msgstr "Działanie" msgid "add" msgstr "dodaj" msgid "subtract" msgstr "odejmij" msgid "Date and time to add or subtract from" msgstr "Data i czas na której wykonujemy działanie" msgid "Years" msgstr "Lata" msgid "Weeks" msgstr "Tygodnie" msgid "Seconds" msgstr "Sekundy" msgid "Ignore weekend days" msgstr "Zignoruj dni weekendowe" msgid "Reset fields" msgstr "Wyzeruj pola" msgid "Time to add or subtract" msgstr "Czas do dodania lub odjęcia" msgid "Add to or subtract from a date" msgstr "Dodaj do lub odejmij od daty" msgid "Cannot perform selected operation." msgstr "Nie można wykonać wybranej operacji." msgid "Task has been modified or removed." msgstr "Zadanie zostało zmienione lub usunięte." msgid "Remind me later" msgstr "Później" msgid "Done" msgstr "Wykonane" msgid "Show task" msgstr "Pokaż zadanie" msgid "Alarm warning!" msgstr "Przypomnienie!" msgid "postponed" msgstr "opóźniony" msgid "Day note" msgstr "Notatka" msgid "Events" msgstr "Wydarzenia" msgid "Event" msgstr "Wydarzenie" msgid "Task" msgstr "Zadanie" msgid "Birthday" msgstr "Urodziny" msgid "Show Osmo" msgstr "Pokaż Osmo" msgid "event" msgid_plural "events" msgstr[0] "wydarzenie" msgstr[1] "wydarzenia" msgstr[2] "wydarzeń" msgid "No valid calendars defined" msgstr "Nie zdefiniowano poprawnych kalendarzy" msgid "iCalendar events" msgstr "Wydarzenia iCal" msgid "Time" msgstr "Czas" msgid "The list will be cleared and all entries will be lost." msgstr "Lista zostanie usunięta i wszystkie wpisy zostaną utracone." msgid "event exported" msgid_plural "events exported" msgstr[0] "zdarzenie wyeksportowane" msgstr[1] "zdarzenia wyeksportowane" msgstr[2] "zdarzeń wyeksportowano" msgid "iCalendar export" msgstr "Eksport iCalendar" msgid "Day Selector" msgstr "Wybór dnia" msgid "Use date period" msgstr "Użyj zakresu dni" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Nie znaleziono zadań ze zdefiniowaną datą" msgid "Save tasks" msgstr "Zapisz zadania" msgid "tasks exported" msgstr "zadania wyeksportowane" msgid "was born" msgstr "urodził się" msgid "year old" msgid_plural "years old" msgstr[0] "rok" msgstr[1] "lata" msgstr[2] "lat" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dzień do końca roku" msgstr[1] "dni do końca roku" msgstr[2] "dni do końca roku" msgid "the last day of the year" msgstr "ostatni dzień roku" msgid "Day tasks" msgstr "Dzisiejsze zadania" msgid "Selected day note will be removed." msgstr "Wybrana notatka zostanie usunięta." msgid "Continue?" msgstr "Kontynuować?" msgid "Previous year" msgstr "Poprzedni rok" msgid "Previous month" msgstr "Poprzedni miesiąc" msgid "Previous day" msgstr "Poprzedni dzień" msgid "Next day" msgstr "Następny dzień" msgid "Next month" msgstr "Następny miesiąc" msgid "Next year" msgstr "Następny rok" msgid "Full-year calendar" msgstr "Kalendarz całoroczny" msgid "Print calendar" msgstr "Drukuj kalendarz" msgid "Toggle day note panel" msgstr "Pokaż/ukryj panel notatek" msgid "Select day color" msgstr "Wybierz kolor dnia" msgid "Browse notes" msgstr "Przeglądaj notatki" msgid "Browse iCal events" msgstr "Przeglądaj wydarzenia iCal" msgid "Export to iCal file" msgstr "Eksport do pliku iCal" msgid "Previous and next month" msgstr "Poprzedni i następny miesiąc" msgid "Close note panel" msgstr "Zamknij panel notatek" msgid "Clear text" msgstr "Usuń notatkę" msgid "Info" msgstr "Informacje" msgid "Select color" msgstr "Wybierz kolor" msgid "Name day" msgstr "Imieniny" msgid "Printing properties" msgstr "Ustawienia drukowania" msgid "Month name" msgstr "Nazwa miesiąca" msgid "Day name" msgstr "Nazwa dnia" msgid "Fonts" msgstr "Czcionki" msgid "Birthdays" msgstr "Urodziny" msgid "Namedays" msgstr "Imieniny" msgid "Visible events" msgstr "Widoczne wydarzenia" msgid "Padding" msgstr "Wcięcie" msgid "Event maximum length" msgstr "Maksymalna dlugość napisów" msgid "Page orientation:" msgstr "Orientacja strony" msgid "Portrait" msgstr "Portret" msgid "Landscape" msgstr "Krajobraz" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Rok przestępny" msgid "Yes" msgstr "Tak" msgid "No" msgstr "Nie" msgid "Chinese year animal" msgstr "Chiński rok" msgid "Number of days" msgstr "Liczba dni" msgid "Number of weeks" msgstr "Liczba tygodni" msgid "Number of weekend days" msgstr "Liczba dni weekendowych" msgid "Year info" msgstr "Informacje na temat roku" msgid "Alternative view" msgstr "Alternatywny wygląd" msgid "Started" msgstr "Rozpoczęte" msgid "Finished" msgstr "Zakończone" msgid "New task" msgstr "Nowe zadanie" msgid "Remove task" msgstr "Usuń zadanie" msgid "Change due date to previous date" msgstr "Zmień datę na poprzednią" msgid "Change due date to next date" msgstr "Zmień datę na następną" msgid "Export tasks" msgstr "Eksportuj zadania" msgid "Print visible tasks list" msgstr "Drukuj listę widocznych zadań" msgid "Task details" msgstr "Szczegóły zadania" msgid "Close description panel" msgstr "Zamknij panel opisu." msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "przełącz do poprzedniej zakładki" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "przełącz do następnej zakładki" msgid "switch to selected page" msgstr "przełącz do wybranej zakładki" msgid "show options window" msgstr "pokaż opcje" msgid "show about window" msgstr "pokaż informacje o programie" msgid "toggle fullscreen mode" msgstr "przełącz tryb pełnoekranowy" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "zmienia stronę w zakładkach opcji i o programie" msgid "exit" msgstr "wyjście" msgid "Space" msgstr "Spacja" msgid "select current date" msgstr "zaznacz aktualną datę" msgid "Ctrl+Space" msgstr "Ctrl+Spacja" msgid "toggle personal data visibility" msgstr "pokaż/ukryj osobiste dane" msgid "Arrows" msgstr "Strzałki" msgid "change day" msgstr "zmień dzień" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "przewiń tekst w panelu informacyjnym" msgid "change month" msgstr "zmień miesiąc" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "zmień rok" msgid "toggle calendars for the previous and next month" msgstr "przełącz widok kalendarza dla poprzedniego i następnego miesiąca" msgid "day notes browser" msgstr "przeglądarka notatek" msgid "assign background color to day note" msgstr "przypisz kolor tła do notatki dnia" msgid "date calculator" msgstr "kalkulator dat" msgid "show full-year calendar" msgstr "pokaż kalendarz całoroczny" msgid "jump to date" msgstr "idź do dnia" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "usuń notkę" msgid "Alt+Arrows" msgstr "Alt+Strzałki" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "zamknij edytor" msgid "toggle bold" msgstr "przełącz pogrubienie" msgid "toggle italic" msgstr "przełącz kursywę" msgid "toggle underline" msgstr "przełącz podkreślenie" msgid "toggle strikethrough" msgstr "przełącz przekreślenie" msgid "toggle highlight" msgstr "przełącz wyróżnienie" msgid "Arrows Up/Down" msgstr "Strzałki Góra/Dół" msgid "toggle alternative view" msgstr "przełącz wygląd alternatywny" msgid "year info" msgstr "informacje na temat roku" msgid "set current year" msgstr "ustaw rok bieżący" msgid "close full-year calendar" msgstr "zamknij kalendarz całoroczny" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "dodaj zadanie" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "edytuj zadanie" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "usuń zadanie" msgid "toggle hidden tasks" msgstr "pokaż/ukryj schowane wpisy" msgid "activate search field" msgstr "aktywuj pole wyszukiwania" msgid "Left, Right" msgstr "Lewo, Prawo" msgid "change category filter" msgstr "zmień filtr kategorii" msgid "close task info panel" msgstr "zamknij panel informacyjny" msgid "Insert" msgstr "Insert" msgid "add contact" msgstr "dodaj kontakt" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "edytuj kontakt" msgid "remove contact" msgstr "usuń kontakt" msgid "change search mode" msgstr "zmień tryb wyszukiwania" msgid "close contact details panel" msgstr "zamknij panel z informacjami o kontakcie" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "otwórz notatkę" msgid "add note" msgstr "dodaj notatkę" msgid "remove note" msgstr "usuń notatkę" msgid "edit note name and category" msgstr "edytuj nazwę notatki i kategorii" msgid "close note editor" msgstr "zamknij edytor notatki" msgid "save note" msgstr "zapisz notatkę" msgid "find text" msgstr "znajdź tekst" msgid "clear selection attributes" msgstr "usuń atrybuty tekstu" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO został stworzony z myślą o wygodzie obsługi, dlatego posiada wiele " "skrótów klawiszowych. Oto pełna lista:" msgid "Note editor" msgstr "Edytor notatek" msgid "Selector" msgstr "Przełącznik" msgid "Editor" msgstr "Edytor" msgid "A handy personal organizer" msgstr "Podręczny osobisty organizer" msgid "compiled on" msgstr "skompilowany w dniu" msgid "Programming" msgstr "Programowanie" msgid "Graphics" msgstr "Grafika" msgid "Contributors" msgstr "Współpraca" msgid "Translators" msgstr "Tłumaczenia" msgid "Mailing lists" msgstr "Lista dyskusyjna" msgid "Bug tracker" msgstr "Zgłaszanie błędów" msgid "Feature requests" msgstr "Propozycje nowej funkcjonalności" msgid "Available modules" msgstr "Dostępne moduły" msgid "Compiled-in features" msgstr "Wkompilowana obsługa" msgid "iCalendar support" msgstr "Obsługa iCalendar" msgid "Encrypted notes support" msgstr "Obsługa szyfrowanych notatek" msgid "Backup support" msgstr "Obsługa kopii zapasowych" msgid "Printing support" msgstr "Obsługa drukowania" msgid "Spell checker support" msgstr "Obsługa sprawdzania pisowni" msgid "version" msgstr "wersja" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Skróty klawiszowe" msgid "License" msgstr "Licencja" #~ msgid "handy personal organizer" #~ msgstr "podręczny osobisty organizer" osmo-0.4.2/po/gl.po0000664000175000017500000011247413204320601010775 00000000000000# Galician translation of Osmo # This file is distributed under the same license as the Osmo package. # Miguel Anxo Bouzada , 2012 # xesusmosquera , 2012 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-06 09:53+0000\n" "Last-Translator: xesusmosquera \n" "Language-Team: Galician\n" "Language: gl\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" msgid "Colors" msgstr "Cores" msgid "Color of contact tags" msgstr "Cor das etiquetas dos contactos" msgid "Color of links" msgstr "Cor das ligazóns" msgid "Font size" msgstr "Tamaño da letra" msgid "Name font size" msgstr "Tamaño da letra dos nomes" msgid "Item font size" msgstr "Tamaño da letra dos elementos" msgid "Photo size" msgstr "Tamaño da foto" msgid "Small" msgstr "Pequena" msgid "Medium" msgstr "Mediana" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Agochar a columna de grupos" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Idade" msgid "Birthday date" msgstr "Data de nacemento" msgid "Zodiac sign" msgstr "Signo do zodíaco" msgid "Contacts" msgstr "Contactos" msgid "Appearance" msgstr "Aparencia" msgid "Miscellaneous" msgstr "Varios" msgid "Groups" msgstr "Grupos" msgid "Visible columns in birthday browser" msgstr "Columnas visíbeis na lista de aniversarios" msgid "Algorithm" msgstr "Algoritmo" msgid "Hashing" msgstr "Resumo" msgid "Compression" msgstr "Compresión" msgid "Ratio" msgstr "Relación" msgid "Fast" msgstr "Rápido" msgid "Good" msgstr "Bo" msgid "Best" msgstr "Mellor" msgid "Type" msgstr "Tipo" msgid "Category" msgstr "Categoría" msgid "Last changes" msgstr "Último cambio" msgid "Created" msgstr "Creado" msgid "Remember the last selected category" msgstr "Lembrar a última categoría seleccionada" msgid "Use system format for date and time" msgstr "Usar formato de data e hora do sistema" msgid "Notes" msgstr "Notas" msgid "Encryption" msgstr "Cifrado" msgid "Visible columns" msgstr "Columnas visíbeis" msgid "Categories" msgstr "Categorías" msgid "Notes options" msgstr "Opcións das notas" msgid "Jump to date" msgstr "Ir á data" msgid "Day" msgstr "Día" msgid "Month" msgstr "Mes" msgid "Year" msgstr "Ano" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleccione un tipo de letra..." msgid "None" msgstr "Ningún" msgid "All items" msgstr "Todos os elementos" msgid "Question" msgstr "Pregunta" msgid "Information" msgstr "Información" msgid "Error" msgstr "Produciuse un erro" msgid "Warning" msgstr "Aviso" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "O ficheiro seleccionado xa existe. Quere sobrescribilo?" msgid "Selected contact will be removed." msgstr "O contacto seleccionado vai seren retirado." msgid "Are you sure?" msgstr "Está seguro?" msgid "No date" msgstr "Sen data" msgid "Select photo" msgstr "Seleccione unha foto" msgid "Address" msgstr "Enderezo" msgid "Postcode" msgstr "Código postal" msgid "City" msgstr "Cidade" msgid "State" msgstr "Estado" msgid "Country" msgstr "País" msgid "Edit contact" msgstr "Editar o contacto" msgid "Add contact" msgstr "Novo contacto" msgid "Personal" msgstr "Persoal" msgid "Group" msgstr "Grupo" msgid "Home" msgstr "Particular" msgid "Work" msgstr "Traballo" msgid "Phones" msgstr "Teléfonos" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Información adicional" msgid "_OK" msgstr "" msgid "no entries" msgstr "sen entradas" msgid "entry" msgid_plural "entries" msgstr[0] "entrada" msgstr[1] "entradas" msgid "Calendar notes" msgstr "Notas do calendario" msgid "Search" msgstr "Buscar" msgid "Filter" msgstr "Filtro" msgid "Current month" msgstr "Mes actual" msgid "Selected month" msgstr "Mes seleccionado" msgid "Current year" msgstr "Ano actual" msgid "Selected year" msgstr "Ano seleccionado" msgid "Selected month and year" msgstr "Mes e ano seleccionado" msgid "All notes" msgstr "Todos as notas" msgid "Case sensitive" msgstr "Sensíbel a maiúsculas/minúsculas" msgid "Strikethrough past day notes" msgstr "Tachar notas de días pasados" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rata" msgid "Ox" msgstr "Boi" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lebre" msgid "Dragon" msgstr "Dragón" msgid "Snake" msgstr "Serpe" msgid "Horse" msgstr "Cabalo" msgid "Sheep" msgstr "Ovella" msgid "Monkey" msgstr "Mono" msgid "Fowl" msgstr "Galo" msgid "Dog" msgstr "Can" msgid "Pig" msgstr "Porco" msgid "Unknown" msgstr "Descoñecido" msgid "Aquarius" msgstr "Acuario" msgid "Pisces" msgstr "Peixes" msgid "Aries" msgstr "Aries" msgid "Taurus" msgstr "Tauro" msgid "Gemini" msgstr "Xemelgos" msgid "Cancer" msgstr "Cancro" msgid "Leo" msgstr "Leo" msgid "Virgo" msgstr "Virgo" msgid "Libra" msgstr "Libra" msgid "Scorpio" msgstr "Escorpion" msgid "Sagittarius" msgstr "Saxitario" msgid "Capricorn" msgstr "Capricornio" msgid "Osmo has to be restarted to take effect." msgstr "Osmo debe ser reiniciado para que tena efecto." msgid "Layout" msgstr "Deseño" msgid "Vertical" msgstr "Vertical" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Posición das lapelas" msgid "Left" msgstr "Esquerda" msgid "Right" msgstr "Dereita" msgid "Top" msgstr "Arriba" msgid "Bottom" msgstr "Abaixo" msgid "Disable underline in links" msgstr "Desactivar o subliñado nas ligazóns" msgid "Show exit button in toolbar" msgstr "Amosar o botón de saída na barra de ferramentas" msgid "At least one module must be visible." msgstr "Polo menos un módulo debe ser visíbel." msgid "Calendar" msgstr "Calendario" msgid "Tasks" msgstr "Tarefas" msgid "Override locale settings" msgstr "Ignorar a configuración do sistema" msgid "Date format" msgstr "Formato da data" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Formato da hora" msgid "hours" msgstr "horas" msgid "Spell checker language" msgstr "Idioma do corrector ortográfico" msgid "Enable tooltips" msgstr "Amosar consellos" msgid "Remember last selected page" msgstr "Lembrar a última páxina seleccionada" msgid "Save data after every modification" msgstr "Gardar os datos despois de cada modificación" msgid "Web browser" msgstr "Navegador" msgid "E-mail client" msgstr "Cliente de correo-e" msgid "Sound player" msgstr "Reprodutor de son" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "O patrón %s vai seren substituído polo enderezo web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "O patrón %s vai seren substituído polo correo-e" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "O patrón %s vai seren substituído polo nome do ficheiro de son" msgid "Enable system tray" msgstr "Amosar a icona na área de notificación" msgid "Start minimised" msgstr "Iniciar minimizado" msgid "Ignore day note events" msgstr "Ignorar eventos de nota del día" msgid "General" msgstr "Xeral" msgid "Hide" msgstr "Agochar" msgid "Helpers" msgstr "Axudantes" msgid "System tray" msgstr "Área de notificación" msgid "Preferences" msgstr "Preferencias" msgid "Syntax" msgstr "Sintaxe" msgid "abbreviated weekday name" msgstr "nome abreviado do día da semana" msgid "full weekday name" msgstr "nome do día da semana" msgid "abbreviated month name" msgstr "nome abreviado do mes" msgid "full month name" msgstr "nome do mes" msgid "day of the month" msgstr "día do mes" msgid "MM/DD/YY" msgstr "MM/DD/AA" msgid "day of the month without leading zeros" msgstr "día do mes sen ceros á esquerda" msgid "month" msgid_plural "months" msgstr[0] "mes" msgstr[1] "meses" msgid "year without century" msgstr "ano sen século" msgid "year with century" msgstr "ano con século" msgid "Date header format" msgstr "Formato da cabeceira de data" msgid "Set default format" msgstr "Estabelecer o formato predeterminado" msgid "Date format syntax" msgstr "Sintaxe do formato da data" msgid "Day note marker" msgstr "Marca para nota do día" msgid "Event marker" msgstr "Marca de actividades" msgid "Circle" msgstr "Círculo" msgid "Ellipse" msgstr "Elipse" msgid "Wave" msgstr "Onda" msgid "Current day marker" msgstr "Marca de data actual" msgid "Arrow" msgstr "Frecha" msgid "Free-hand circle" msgstr "Círculo a man alzada" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Cor dos días de fin de semana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cor do cursor" msgid "Event marker color" msgstr "Cor da marca de actividades" msgid "Current day marker color" msgstr "Cor da marca de data actual" msgid "Birthday marker color" msgstr "Cor da marca de aniversario" msgid "Date font" msgstr "Tipo de letra da data" msgid "Calendar font" msgstr "Tipo de letra do calendario" msgid "Note font" msgstr "Tipo de letra das notas" msgid "Enable block cursor" msgstr "Activar o cursor de bloque" msgid "Cursor thickness" msgstr "Groso do cursor" msgid "Thin" msgstr "Delgado" msgid "Thick" msgstr "Groso" msgid "Edit category" msgstr "Editar a categoría" msgid "Color" msgstr "Cor" msgid "Name" msgstr "Nome" msgid "Select ICS file" msgstr "Seleccionar ficheiro ICS" msgid "All Files" msgstr "Todos os ficheiros" msgid "Calendar files (*.ics)" msgstr "Ficheiros de calendario (*.ics)" msgid "Modify ICAL parameters" msgstr "Modificar parámetros de ICAL" msgid "Filename" msgstr "Nome de ficheiro" msgid "Options" msgstr "Opcións" msgid "Disabled" msgstr "Desactivado" msgid "Valid" msgstr "Válido" msgid "Description" msgstr "Descrición" msgid "Full date" msgstr "Data completa" msgid "Mark" msgstr "Marca" msgid "Week start on Monday" msgstr "A semana comeza o luns" msgid "Show day names" msgstr "Amosar o nome do día" msgid "No month change" msgstr "Non cambiar de mes" msgid "Show week numbers" msgstr "Amosar o número de semana" msgid "Simple view in full-year calendar" msgstr "Vista simple do calendario anual" msgid "Enable auxilary calendars" msgstr "Amosar calendarios auxiliares" msgid "Ascending sorting in day notes browser" msgstr "Ordenación ascendente en notas do día" msgid "Enable spell checker in day notes" msgstr "Activar o corrector ortográfico nas notas do día" msgid "Current time" msgstr "Hora actual" msgid "Show seconds" msgstr "Amosar os segundos" msgid "Day number" msgstr "Número do día" msgid "Today distance" msgstr "Días ata o día de hoxe" msgid "Marked days" msgstr "Días marcados" msgid "Week number" msgstr "Número da semana" msgid "Weekend days" msgstr "Días en fin de semana" msgid "Day category" msgstr "Categoría de días" msgid "Moon phase" msgstr "Fase luar" msgid "Day notes" msgstr "Notas do día" msgid "Day categories" msgstr "Categorías de días" msgid "iCalendar files" msgstr "Ficheiros de iCalendar" msgid "Show in day info panel" msgstr "Amosar no calendario" msgid "Tasks list" msgstr "Lista de tarefas" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Núm." msgid "Summary" msgstr "Resumo" msgid "Due date" msgstr "Data de caducidade" msgid "Priority" msgstr "Prioridade" msgid "Error printing" msgstr "Produciuse un erro de impresión" msgid "No birthdays defined" msgstr "Non se definiron aniversarios" msgid "Birthdays list" msgstr "Lista de aniversarios" msgid "Days to birthday" msgstr "Días ata o aniversario" msgid "today" msgstr "hoxe" msgid "Select CSV file" msgstr "Seleccione ficheiro CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Archivos CSV (valores separados por comas) (*.csv)" msgid "Please select file first." msgstr "Seleccione antes o ficheiro." msgid "Import contacts" msgstr "Importar contactos" msgid "Import type" msgstr "Tipo de importación" msgid "File" msgstr "Ficheiro" msgid "Input filename" msgstr "Nome do ficheiro de entrada" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Nada para importar." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contacto engadido" msgstr[1] "contactos engadidos" msgid "of" msgstr "de" msgid "Record" msgstr "Rexistro" msgid "Number fields per record" msgstr "Numero de campos por rexistro" msgid "Use first record as header" msgstr "Usar o primeiro rexistro como cabeceira" msgid "Field type" msgstr "Tipo de campo" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Non se atopou ningún rexistro no ficheiro seleccionado." msgid "Cannot read file." msgstr "Non é posíbel ler o ficheiro." msgid "Cannot open file." msgstr "Non é posíbel abrir o ficheiro." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Amosar o calendario" msgid "Show tasks" msgstr "Amosar as tarefas" msgid "Show contacts" msgstr "Amosar os contactos" msgid "Show notes" msgstr "Amosar as notas" msgid "Show options" msgstr "Amosar as opcións" msgid "Quit" msgstr "Saír" msgid "Show small calendar window" msgstr "Amosar unha xanela pequena co calendario" msgid "Check for events since last run" msgstr "Comprobar as actividades desde a última execución" msgid "Number of days to check forward for events (default: 0)" msgstr "" "Número de días para comprobar actividades cara adiante (o predeterminado é: " "0)" msgid "Set absolute path for settings and data files" msgstr "Estabeleza a ruta absoluta para os ficheiros de datos e configuración" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERRO: Non foi posíbel crear o ficheiro de configuración." msgid "Another copy of OSMO is already running." msgstr "Xa está a executarse outra instancia de OSMO." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Usar simultaneamente dúas ou máis instancias de OSMO pode provocar a perda " "de datos." msgid "Do you really want to continue?" msgstr "Quere continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baixa" msgid "High" msgstr "Alta" msgid "Done!" msgstr "Feito!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contacto exportado" msgstr[1] "contactos exportados" msgid "Cannot create file." msgstr "Non foi posíbel crear o ficheiro." msgid "Select output file" msgstr "Seleccione o ficheiro de saída" msgid "Export contacts" msgstr "Exportar contactos" msgid "Output format" msgstr "Formato de saída" msgid "Add header" msgstr "Engadir cabeceira" msgid "Fields to export" msgstr "Campos a exportar" msgid "All" msgstr "Todo" msgid "Invert" msgstr "Inverter" msgid "Select fields" msgstr "Seleccione campos" msgid "Output filename" msgstr "Nome do ficheiro de saída" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Cor dos elementos que caducan hoxe" msgid "Color of items that are due in the next 7 days" msgstr "Cor dos elementos que caducan nos próximos 7 días" msgid "Color of items that are past due" msgstr "Cor dos elementos que xa caducaron" msgid "Task info font" msgstr "Tipo de letra para os detalles" msgid "Show in bold tasks with high priority" msgstr "Amosar en negriña as tarefas con prioridade alta" msgid "Hide completed tasks" msgstr "Agochar as tarefas completadas" msgid "Delete completed tasks without confirmation" msgstr "Eliminar as tarefas completadas sen confirmación" msgid "Add new task when double clicked on tasks list" msgstr "Engadir unha nova tarefa ao premer dúas veces na lista de tarefas" msgid "Postpone time" msgstr "Atraso de aviso posposto" msgid "minutes" msgstr "minutos" msgid "0 for disable" msgstr "0 para desactivar" msgid "Repeat sound alarm" msgstr "Repetir a alarma sonora" msgid "times" msgstr "veces" msgid "Global notification command" msgstr "Orde global de notificación" msgid "Tasks options" msgstr "Opcións das tarefas" msgid "Reminder options" msgstr "Opcións de lembranzas" msgid "Insert timeline" msgstr "Inserir liña de tempo" msgid "Timeline" msgstr "Liña de tempo" msgid "From (hour)" msgstr "Desde (hora)" msgid "Step (minutes)" msgstr "Salto (minutos)" msgid "To (hour)" msgstr "Ata (hora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Seleccione polo menos un día se a tarefa é repetitiva." msgid "Set time" msgstr "Estabelecer a hora" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minuto" msgid "Today" msgstr "Hoxe" msgid "Tomorrow" msgstr "Mañá" msgid "Selected task will be removed." msgstr "As tarefas seleccionadas van seren retiradas." msgid "Select date and time" msgstr "Seleccione data e hora" msgid "Enable sound notification" msgstr "Activar a notificación sonora" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarma de aviso" msgid "Days" msgstr "Días" msgid "Hours" msgstr "Horas" msgid "Minutes" msgstr "Minutos" msgid "Alarm command" msgstr "Orde da alarma" msgid "Date period" msgstr "Período de datas" msgid "Months" msgstr "Meses" msgid "Repeat" msgstr "Repetir" msgid "Repeat in the following days" msgstr "Repetir nos días seguintes" msgid "Time period" msgstr "Período de tempo" msgid "Start" msgstr "Inicio" msgid "End" msgstr "Fin" msgid "Interval" msgstr "Intervalo" msgid "Ignore alarm when task expired offline" msgstr "Ignorar as alarmas cando a tarefa caduca sen conexión" msgid "Recurrent task" msgstr "Tarefa repetitiva" msgid "Enable" msgstr "Activar" msgid "Edit task" msgstr "Editar tarefa" msgid "Add task" msgstr "Engadir unha tarefa" msgid "Basic" msgstr "Básico" msgid "Advanced" msgstr "Avanzado" msgid "New Moon" msgstr "Lúa nova" msgid "Waxing Crescent Moon" msgstr "Crecente" msgid "Quarter Moon" msgstr "Cuarto crecente" msgid "Waxing Gibbous Moon" msgstr "Crecente" msgid "Full Moon" msgstr "Lúa chea" msgid "Waning Gibbous Moon" msgstr "Minguante" msgid "Last Quarter Moon" msgstr "Cuarto minguante" msgid "Waning Crescent Moon" msgstr "Minguante" msgid "Cannot create backup!" msgstr "Non é posíbel crear a copia de seguranza!" msgid "Save backup" msgstr "Gardar copia de seguranza" msgid "Password protection" msgstr "Protección con contrasinal" msgid "Enter password" msgstr "Escriba un contrasinal" msgid "Re-enter password" msgstr "Escriba, outra vez, o contrasinal" msgid "Please enter the password" msgstr "Escriba o contrasinal" msgid "Passwords do not match!" msgstr "Os contrasinais non coinciden!" msgid "Backup file saved successfully!" msgstr "A copia de seguranza foi gardada correctamente!" msgid "Open backup file" msgstr "Abrir o ficheiro da copia de seguranza" msgid "Osmo backup files (*.bck)" msgstr "Ficheiros de copia de seguranza de Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Isto non é un ficheiro de copia de seguranza de Osmo" msgid "Incorrect password!" msgstr "Contrasinal incorrecto!" msgid "All your data will be replaced with backup file content." msgstr "" "Todos os datos van seren substituídos cos do ficheiro da copia de seguranza." msgid "Osmo has to be restarted now..." msgstr "Osmo debe ser reiniciado agora..." msgid "Please select address" msgstr "Escolla o enderezo." msgid "First name" msgstr "Nome" msgid "Last name" msgstr "Apelidos" msgid "Second name" msgstr "Segundo nome" msgid "Nickname" msgstr "Alcume" msgid "Tags" msgstr "Etiquetas" msgid "Name day date" msgstr "Data do día do santo" msgid "Home address" msgstr "Enderezo particular" msgid "Home postcode" msgstr "Código postal particular" msgid "Home city" msgstr "Cidade de residencia" msgid "Home state" msgstr "Estado de residencia" msgid "Home country" msgstr "País de residencia" msgid "Organization" msgstr "Organización" msgid "Department" msgstr "Departamento" msgid "Work address" msgstr "Enderezo do traballo" msgid "Work postcode" msgstr "Código postal do traballo" msgid "Work city" msgstr "Cidade do traballo" msgid "Work state" msgstr "Estado do traballo" msgid "Work country" msgstr "País do traballo" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Teléfono particular" msgid "Home phone 2" msgstr "Teléfono particular 2" msgid "Home phone 3" msgstr "Teléfono particular 3" msgid "Home phone 4" msgstr "Teléfono particular 4" msgid "Work phone" msgstr "Teléfono do traballo" msgid "Work phone 2" msgstr "Teléfono do traballo 2" msgid "Work phone 3" msgstr "Teléfono do traballo 3" msgid "Work phone 4" msgstr "Teléfono do traballo 4" msgid "Cell phone" msgstr "Teléfono móbil" msgid "Cell phone 2" msgstr "Teléfono móbil 2" msgid "Cell phone 3" msgstr "Teléfono móbil 3" msgid "Cell phone 4" msgstr "Teléfono móbil 4" msgid "E-Mail" msgstr "Correo-e" msgid "E-Mail 2" msgstr "Correo-e 2" msgid "E-Mail 3" msgstr "Correo-e 3" msgid "E-Mail 4" msgstr "Correo-e 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "MI Gadu-Gadu" msgid "IM Yahoo" msgstr "MI Yahoo" msgid "IM MSN" msgstr "MI MSN" msgid "IM ICQ" msgstr "MI ICQ" msgid "IM AOL" msgstr "MI AOL" msgid "IM Jabber" msgstr "MI Jabber" msgid "IM Skype" msgstr "MI Skype" msgid "IM Tlen" msgstr "MI Tlen" msgid "Blog" msgstr "Blogue" msgid "Photo" msgstr "Fotografía" msgid "New contact" msgstr "Novo contacto" msgid "Remove contact" msgstr "Retirar o contacto" msgid "Show birthdays" msgstr "Amosar aniversarios" msgid "Show contact location on the map" msgstr "Amosar a localización dos contactos no mapa" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Sobre" msgid "Clear" msgstr "Limpar" msgid "First Name" msgstr "Nome" msgid "Last Name" msgstr "Apelidos" msgid "All fields" msgstr "Todos os campos" msgid "Contact details" msgstr "Detalles do contacto" msgid "Close contact panel" msgstr "Pechar os detalles do contacto" msgid "The note has changed." msgstr "A nota cambiou." msgid "Do you want to save it?" msgstr "Quere gardala?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Palabras" msgid "Lines" msgstr "Liñas" msgid "Characters" msgstr "Caracteres" msgid "White characters" msgstr "Espazos" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Documento" msgid "Selection" msgstr "Selección" msgid "Modified" msgstr "Modificado" msgid "New note" msgstr "Nova nota" msgid "Edit note" msgstr "Editar nota" msgid "Delete note" msgstr "Eliminar nota" msgid "Save note" msgstr "Gardar nota" msgid "Find" msgstr "Buscar" msgid "Toggle spell checker" msgstr "Activar o corrector ortográfico" msgid "Bold" msgstr "Negriña" msgid "Italic" msgstr "Cursiva" msgid "Underline" msgstr "Subliñado" msgid "Strikethrough" msgstr "Tachado" msgid "Highlight" msgstr "Resaltado" msgid "Clear attributes" msgstr "Limpar formato" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Inserir a data e a hora actual" msgid "Insert separator" msgstr "Inserir separador" msgid "Statistics" msgstr "Estatísticas" msgid "Close editor" msgstr "Pechar o editor" msgid "Note name" msgstr "Nome da nota" msgid "Read-only" msgstr "Só lectura" msgid "Line" msgstr "Liña" msgid "Column" msgstr "Columna" msgid "case sensitive" msgstr "Coincidencia de maiúsculas / minúsculas" msgid "Close find entry" msgstr "Pechar a barra de buscas" msgid "Edit entry" msgstr "Editar a entrada" msgid "Remember cursor position" msgstr "Lembrar a posición do cursor" msgid "Selected note will be removed." msgstr "A nota seleccionada vai seren retirada." msgid "No further data recovery will be possible." msgstr "Despois non se poderá recuperar os datos." msgid "Add note" msgstr "Engadir nota" msgid "Plain" msgstr "Sinxelo" msgid "Encrypted" msgstr "Cifrado" msgid "Note type" msgstr "Tipo de nota" msgid "Cannot open the note." msgstr "Non é posíbel abrir a nota." msgid "encryption support is disabled" msgstr "A compatibilidade para notas cifradas está desactivada" msgid "Authorization" msgstr "Autorización" msgid "year" msgid_plural "years" msgstr[0] "ano" msgstr[1] "anos" msgid "day" msgid_plural "days" msgstr[0] "día" msgstr[1] "días" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" msgid "or" msgstr "ou" msgid "rounded down" msgstr "redondeado cara abaixo" msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" msgid "working day" msgid_plural "working days" msgstr[0] "día laborábel" msgstr[1] "días laborábeis" msgid "time is ignored" msgstr "ignorase a hora" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "día en fin de semana" msgstr[1] "días en fin de semana" msgid "This calculator only supports dates after year 1." msgstr "Esta calculadora só admite datas posteriores ao ano 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "día de fin de semana ignorado" msgstr[1] "días de fin de semana ignorados" msgid "Date calculator" msgstr "Calculadora de datas" msgid "Current date" msgstr "Data actual" msgid "Set current date" msgstr "Estabelecer a data actual" msgid "Second" msgstr "Segundo" msgid "Set current time" msgstr "Estabelecer a hora actual" msgid "Reset time" msgstr "Restabelecer a hora" msgid "First date and time" msgstr "Data e hora de inicio" msgid "Second date and time" msgstr "Data e hora de fin" msgid "Alternative time units" msgstr "Unidades alternativas de tempo" msgid "Result" msgstr "Resultado" msgid "Duration between two dates" msgstr "Tempo entre dúas datas" msgid "Operation" msgstr "Operación" msgid "add" msgstr "sumar" msgid "subtract" msgstr "restar" msgid "Date and time to add or subtract from" msgstr "Data e hora da que sumar ou restar" msgid "Years" msgstr "Anos" msgid "Weeks" msgstr "Semanas" msgid "Seconds" msgstr "Segundos" msgid "Ignore weekend days" msgstr "Ignorar días en fin de semana" msgid "Reset fields" msgstr "Restabelecer os campos" msgid "Time to add or subtract" msgstr "Hora que sumar ou restar" msgid "Add to or subtract from a date" msgstr "Sumar ou restar dunha data" msgid "Cannot perform selected operation." msgstr "Non é posíbel realizar a operación seleccionada." msgid "Task has been modified or removed." msgstr "A tarefa foi modificada ou retirada." msgid "Remind me later" msgstr "Lembrarmo máis adiante" msgid "Done" msgstr "Feito" msgid "Show task" msgstr "Amosar a tarefa" msgid "Alarm warning!" msgstr "Alarma de aviso!" msgid "postponed" msgstr "Posposto" msgid "Day note" msgstr "Nota do día" msgid "Events" msgstr "Actividades" msgid "Event" msgstr "Actividade" msgid "Task" msgstr "Tarefa" msgid "Birthday" msgstr "Aniversario" msgid "Show Osmo" msgstr "Amosar Osmo" msgid "event" msgid_plural "events" msgstr[0] "actividade" msgstr[1] "actividades" msgid "No valid calendars defined" msgstr "Non se definiron calendarios válidos" msgid "iCalendar events" msgstr "actividades de iCalendar" msgid "Time" msgstr "Hora" msgid "The list will be cleared and all entries will be lost." msgstr "Vaise a baleirar a lista, perderanse todas as entradas." msgid "event exported" msgid_plural "events exported" msgstr[0] "actividade exportada" msgstr[1] "actividades exportadas" msgid "iCalendar export" msgstr "Exportación de iCalendar" msgid "Day Selector" msgstr "Seleccionar día" msgid "Use date period" msgstr "Usar un período de datas" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Non hai tarefas con data definida." msgid "Save tasks" msgstr "Gardar as tarefas" msgid "tasks exported" msgstr "tarefas exportadas" msgid "was born" msgstr "Nado o" msgid "year old" msgid_plural "years old" msgstr[0] "ano de idade" msgstr[1] "anos de idade" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "día ata fin de ano" msgstr[1] "días ata fin de ano" msgid "the last day of the year" msgstr "Último día do ano" msgid "Day tasks" msgstr "Tarefas do día" msgid "Selected day note will be removed." msgstr "A nota do día seleccionado será eliminada." msgid "Continue?" msgstr "Continuar?" msgid "Previous year" msgstr "Ano anterior" msgid "Previous month" msgstr "Mes anterior" msgid "Previous day" msgstr "Día anterior" msgid "Next day" msgstr "Día seguinte" msgid "Next month" msgstr "Mes seguinte" msgid "Next year" msgstr "Ano seguinte" msgid "Full-year calendar" msgstr "Calendario de ano completo" msgid "Print calendar" msgstr "Imprimir calendario" msgid "Toggle day note panel" msgstr "Amosar/agochar notas do día" msgid "Select day color" msgstr "Seleccionar a cor do día" msgid "Browse notes" msgstr "Examinar notas" msgid "Browse iCal events" msgstr "Examinar actividades de iCalendar" msgid "Export to iCal file" msgstr "Exportar a ficheiro iCal" msgid "Previous and next month" msgstr "Mes anterior e seguinte" msgid "Close note panel" msgstr "Pechar o panel de notas" msgid "Clear text" msgstr "Limpar texto" msgid "Info" msgstr "Información" msgid "Select color" msgstr "Seleccionar cor" msgid "Name day" msgstr "Día do santo" msgid "Printing properties" msgstr "Propiedades da impresión" msgid "Month name" msgstr "Nome do mes" msgid "Day name" msgstr "Nome do día" msgid "Fonts" msgstr "Tipos de letra" msgid "Birthdays" msgstr "Aniversarios" msgid "Namedays" msgstr "Santoral" msgid "Visible events" msgstr "Actividades visíbeis" msgid "Padding" msgstr "Espazado" msgid "Event maximum length" msgstr "Lonxitude máxima das actividades" msgid "Page orientation:" msgstr "Orientación da páxina:" msgid "Portrait" msgstr "Vertical" msgid "Landscape" msgstr "Horizontal" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Ano bisesto" msgid "Yes" msgstr "Si" msgid "No" msgstr "Non" msgid "Chinese year animal" msgstr "Animal do calendario chino" msgid "Number of days" msgstr "Número de días" msgid "Number of weeks" msgstr "Número de semanas" msgid "Number of weekend days" msgstr "Días en fin de semana" msgid "Year info" msgstr "Información do ano" msgid "Alternative view" msgstr "Vista alternativa" msgid "Started" msgstr "Iniciado" msgid "Finished" msgstr "Terminado" msgid "New task" msgstr "Nova tarefa" msgid "Remove task" msgstr "Retirar tarefa" msgid "Change due date to previous date" msgstr "Cambiar a data de caducidade ao día anterior" msgid "Change due date to next date" msgstr "Cambiar a data de caducidade ao día seguinte" msgid "Export tasks" msgstr "Exportar tarefas" msgid "Print visible tasks list" msgstr "Imprimir a lista de tarefas visíbeis" msgid "Task details" msgstr "Detalles da tarefa" msgid "Close description panel" msgstr "Pechar o panel de descrición" msgid "Ctrl+PageUp" msgstr "Ctrl+Re.Páx." msgid "switch to previous tab" msgstr "Ir á lapela anterior" msgid "Ctrl+PageDn" msgstr "Ctrl+Av.Páx." msgid "switch to next tab" msgstr "Ir á lapela seguinte" msgid "switch to selected page" msgstr "Ir á lapela seleccionada" msgid "show options window" msgstr "Amosar a xanela de opcións" msgid "show about window" msgstr "Amosar a xanela «Sobre»" msgid "toggle fullscreen mode" msgstr "Cambiar o modo de pantalla completa" msgid "PageUp/PageDn" msgstr "Re.Páx./Av.Páx." msgid "switch page in options and about tab" msgstr "Cambiar de páxina nas lapelas «Opcións» e «Sobre»" msgid "exit" msgstr "Saír" msgid "Space" msgstr "Espazo" msgid "select current date" msgstr "Seleccionar a data actual" msgid "Ctrl+Space" msgstr "Ctrl+Espazo" msgid "toggle personal data visibility" msgstr "Cambiar a visibilidade dos datos persoais" msgid "Arrows" msgstr "Frechas" msgid "change day" msgstr "Cambiar o día" msgid "Ctrl+Up/Down" msgstr "Ctrl+Arriba/Abaixo" msgid "scroll the contents in the day info panel" msgstr "Desprazar o contido do panel de información do día" msgid "change month" msgstr "Cambiar o mes" msgid "Home/End" msgstr "Inicio/Fin" msgid "change year" msgstr "Cambiar o ano" msgid "toggle calendars for the previous and next month" msgstr "Amosar/agochar os calendarios para os meses anterior e seguinte" msgid "day notes browser" msgstr "Examinador das notas do día" msgid "assign background color to day note" msgstr "Asignar a cor do fondo ás notas do día" msgid "date calculator" msgstr "Calculadora de datas" msgid "show full-year calendar" msgstr "Amosar o calendario do ano completo" msgid "jump to date" msgstr "Ir á data" msgid "Delete" msgstr "Eliminar" msgid "remove day note" msgstr "Retirar as notas do día" msgid "Alt+Arrows" msgstr "Alt+Frechas" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "Pechar o editor" msgid "toggle bold" msgstr "Activar/desactivar negriña" msgid "toggle italic" msgstr "Activar/desactivar itálica" msgid "toggle underline" msgstr "Activar/desactivar subliñado" msgid "toggle strikethrough" msgstr "Activar/desactivar tachado" msgid "toggle highlight" msgstr "Activar/desactivar resaltado" msgid "Arrows Up/Down" msgstr "Frechas arriba/abaixo" msgid "toggle alternative view" msgstr "Cambiar o tipo de vista" msgid "year info" msgstr "Información do ano" msgid "set current year" msgstr "Estabelecer o ano actual" msgid "close full-year calendar" msgstr "Pechar o calendario do ano completo" msgid "Alt+a, Insert" msgstr "Alt+A, Inserir" msgid "add task" msgstr "Engadir unha tarefa" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+E, Ctrl+Intro" msgid "edit task" msgstr "Editar a tarefa" msgid "Alt+r, Delete" msgstr "Alt+R, Supr." msgid "remove task" msgstr "Eliminar a/unha tarea" msgid "toggle hidden tasks" msgstr "Amosar/agochar as tarefas agochadas" msgid "activate search field" msgstr "Activar o campo de buscas" msgid "Left, Right" msgstr "Esquerda, dereita" msgid "change category filter" msgstr "Cambiar o filtro de categorías" msgid "close task info panel" msgstr "Pechar a información da tarefa" msgid "Insert" msgstr "Inserir" msgid "add contact" msgstr "Engadir un contacto" msgid "Ctrl+Enter" msgstr "Ctrl+Intro" msgid "edit contact" msgstr "Editar o contacto" msgid "remove contact" msgstr "Retirar o contacto" msgid "change search mode" msgstr "Cambiar o modo de busca" msgid "close contact details panel" msgstr "Pechar os detalles do contacto" msgid "Enter" msgstr "Intro" msgid "open note" msgstr "Abrir unha nota" msgid "add note" msgstr "Engadir unha nota" msgid "remove note" msgstr "Retirar unha nota" msgid "edit note name and category" msgstr "Editar o nome e a categoría da nota" msgid "close note editor" msgstr "Pechar o editor de notas" msgid "save note" msgstr "Gardar a nota" msgid "find text" msgstr "Buscar por texto" msgid "clear selection attributes" msgstr "Limpar os atributos da selección" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO foi deseñado para seren de uso moi doado, por iso existen multitude de " "atallos de teclado. Esta é a lista completa:" msgid "Note editor" msgstr "Editor de notas" msgid "Selector" msgstr "Seleccionar" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Un organizador persoal moi práctico" msgid "compiled on" msgstr "Compilado o" msgid "Programming" msgstr "Desenvolvemento" msgid "Graphics" msgstr "Gráficos" msgid "Contributors" msgstr "Colaboradores" msgid "Translators" msgstr "Tradutores" msgid "Mailing lists" msgstr "Roldas de correo" msgid "Bug tracker" msgstr "Sistema de seguimento de fallos" msgid "Feature requests" msgstr "Peticións de características" msgid "Available modules" msgstr "Módulos dispoñíbeis" msgid "Compiled-in features" msgstr "Características compiladas" msgid "iCalendar support" msgstr "Compatibilidade con iCalendar" msgid "Encrypted notes support" msgstr "Compatibilidade con notas cifradas" msgid "Backup support" msgstr "Compatibilidade con copia de seguranza" msgid "Printing support" msgstr "Compatibilidade con impresión" msgid "Spell checker support" msgstr "Compatibilidade con verificación ortográfica" msgid "version" msgstr "Versión" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Atallos de teclado" msgid "License" msgstr "Licenza" #~ msgid "handy personal organizer" #~ msgstr "práctico organizador persoal" osmo-0.4.2/po/ur.po0000664000175000017500000012456113204320601011021 00000000000000# Urdu translation of Osmo # This file is distributed under the same license as the Osmo package. # Muhammad Ali Makki , 2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-04-07 00:59+0500\n" "Last-Translator: Muhammad Ali Makki \n" "Language-Team: urducoder.com \n" "Language: ur\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" msgid "Colors" msgstr "رنگ" msgid "Color of contact tags" msgstr "رابطے کے ٹیگ کا رنگ" msgid "Color of links" msgstr "روابط کے رنگ" msgid "Font size" msgstr "فونٹ حجم" msgid "Name font size" msgstr "فونٹ حجم نام" msgid "Item font size" msgstr "عنصر کا فونٹ حجم" msgid "Photo size" msgstr "تصویر کا حجم" msgid "Small" msgstr "چھوٹا" msgid "Medium" msgstr "درمیانہ" msgid "Large" msgstr "بڑا" msgid "Hide group column" msgstr "گروپ کالم چھپائیں" msgid "Maps provider" msgstr "" msgid "Age" msgstr "عمر" msgid "Birthday date" msgstr "سالگرہ تاریخ" msgid "Zodiac sign" msgstr "علاقہ بروج کی علامت" msgid "Contacts" msgstr "رابطے" msgid "Appearance" msgstr "مواجہ" msgid "Miscellaneous" msgstr "متفرق" msgid "Groups" msgstr "گروپ" msgid "Visible columns in birthday browser" msgstr "سالگرہ براؤزر میں مرئی کالم" msgid "Algorithm" msgstr "الگورتھم" msgid "Hashing" msgstr "ہیشنگ" msgid "Compression" msgstr "دباؤ" msgid "Ratio" msgstr "قدر" msgid "Fast" msgstr "تیز" msgid "Good" msgstr "اچھا" msgid "Best" msgstr "بہترین" msgid "Type" msgstr "نوعیت" msgid "Category" msgstr "زمرہ" msgid "Last changes" msgstr "آخری تبدیلیاں" msgid "Created" msgstr "بنایا گیا" msgid "Remember the last selected category" msgstr "آخری منتخب کردہ زمرے کو یاد رکھیں" msgid "Use system format for date and time" msgstr "تاریخ اور وقت کے لیے نظام کی ہیئت استعمال کریں" msgid "Notes" msgstr "نوٹس" msgid "Encryption" msgstr "رمز نگاری" msgid "Visible columns" msgstr "مرئی کالم" msgid "Categories" msgstr "زمرے" msgid "Notes options" msgstr "نوٹس اختیارات" msgid "Jump to date" msgstr "تاریخ پر جائیں" msgid "Day" msgstr "دن" msgid "Month" msgstr "مہینہ" msgid "Year" msgstr "سال" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "فونٹ منتخب کریں..." msgid "None" msgstr "کچھ نہیں" msgid "All items" msgstr "تمام عناصر" msgid "Question" msgstr "سوال" msgid "Information" msgstr "معلومات" msgid "Error" msgstr "غلطی" msgid "Warning" msgstr "انتباہ" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "منتخب کردہ فائل پہلے ہی موجود ہے! کیا اس کے اوپر لکھ دیا جائے؟" msgid "Selected contact will be removed." msgstr "منتخب کردہ رابطہ حذف کردیا جائے گا." msgid "Are you sure?" msgstr "کیا آپ پُریقین ہیں؟" msgid "No date" msgstr "بلا تاریخ" msgid "Select photo" msgstr "تصویر منتخب کریں" msgid "Address" msgstr "پتہ" msgid "Postcode" msgstr "پوسٹ کوڈ" msgid "City" msgstr "شہر" msgid "State" msgstr "حالت" msgid "Country" msgstr "مُلک" msgid "Edit contact" msgstr "رابطہ مدون کریں" msgid "Add contact" msgstr "رابطہ شامل کریں" msgid "Personal" msgstr "ذاتی" msgid "Group" msgstr "گروپ" msgid "Home" msgstr "گھر" msgid "Work" msgstr "کام" msgid "Phones" msgstr "فون" msgid "Internet" msgstr "انٹرنیٹ" msgid "Additional info" msgstr "اضافی معلومات" msgid "_OK" msgstr "" msgid "no entries" msgstr "کوئی اندارجات نہیں" msgid "entry" msgid_plural "entries" msgstr[0] "اندراج" msgstr[1] "اندراجات" msgid "Calendar notes" msgstr "تقویم نوٹس" msgid "Search" msgstr "تلاش" msgid "Filter" msgstr "فلٹر" msgid "Current month" msgstr "حالیہ ماہ" msgid "Selected month" msgstr "منتخب کردہ ماہ" msgid "Current year" msgstr "حالیہ سال" msgid "Selected year" msgstr "منتخب کردہ سال" msgid "Selected month and year" msgstr "ماہ اور سال منتخب کریں" msgid "All notes" msgstr "تمام نوٹس" msgid "Case sensitive" msgstr "حساس" msgid "Strikethrough past day notes" msgstr "گزشتہ دن اور نوٹس خط مقطوع کریں" msgid "Date" msgstr "تاریخ" msgid "Note" msgstr "نوٹ" msgid "_Close" msgstr "" msgid "Rat" msgstr "چوہا" msgid "Ox" msgstr "بیل" msgid "Tiger" msgstr "شیر" msgid "Hare" msgstr "خرگوش" msgid "Dragon" msgstr "اژدہا" msgid "Snake" msgstr "سانپ" msgid "Horse" msgstr "گھوڑا" msgid "Sheep" msgstr "بھیڑ" msgid "Monkey" msgstr "بندر" msgid "Fowl" msgstr "پرندہ" msgid "Dog" msgstr "کُتا" msgid "Pig" msgstr "خنزیر" msgid "Unknown" msgstr "نامعلوم" msgid "Aquarius" msgstr "برج دلو" msgid "Pisces" msgstr "برج حوت" msgid "Aries" msgstr "برج حمل" msgid "Taurus" msgstr "برج ثور" msgid "Gemini" msgstr "برج جوزا" msgid "Cancer" msgstr "برج سرطان" msgid "Leo" msgstr "برج اسد" msgid "Virgo" msgstr "برج عذراء" msgid "Libra" msgstr "برج میزان" msgid "Scorpio" msgstr "برج عقرب" msgid "Sagittarius" msgstr "برج قوس" msgid "Capricorn" msgstr "برج جدی" msgid "Osmo has to be restarted to take effect." msgstr "تبدیلیوں کی اثر پذیری کے لیے اوسمو کو دوبارہ چلانا ہوگا." msgid "Layout" msgstr "خاکہ" msgid "Vertical" msgstr "عمودی" msgid "Horizontal" msgstr "افقی" msgid "Tabs position" msgstr "ٹیبز کا مقام" msgid "Left" msgstr "بائیں" msgid "Right" msgstr "دائیں" msgid "Top" msgstr "اوپر" msgid "Bottom" msgstr "نیچے" msgid "Disable underline in links" msgstr "روابط میں خط کشیدگی معطل کریں" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "کم سے کم ایک ماڈیول ظاہر ہونا چاہیے." msgid "Calendar" msgstr "تقویم" msgid "Tasks" msgstr "مہم" msgid "Override locale settings" msgstr "لوکل ترتیاب پر فائق ہوں" msgid "Date format" msgstr "تاریخ ہیئت" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "وقت کی ہیئت" msgid "hours" msgstr "گھنٹے" msgid "Spell checker language" msgstr "املاء پڑتال زبان" msgid "Enable tooltips" msgstr "ٹول ٹِپ فعال کریں" msgid "Remember last selected page" msgstr "آخری منتخب کردہ صفحہ یاد رکھیں" msgid "Save data after every modification" msgstr "ہر تبدیلی پر تاریخ محفوظ کریں" msgid "Web browser" msgstr "ویب براؤزر" msgid "E-mail client" msgstr "ای میل موکل" msgid "Sound player" msgstr "موسیقی سازندہ" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s نمونہ ویب پتہ سے بدل دیا جائے گا" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s نمونہ ای میل پتہ سے بدل دیا جائے گا" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s نمونہ صوتی فائل نام سے بدل دیا جائے گا" msgid "Enable system tray" msgstr "نظام ٹرے فعال کریں" msgid "Start minimised" msgstr "منمائز شروع کریں" msgid "Ignore day note events" msgstr "دن نوٹ واقعات نظر انداز کریں" msgid "General" msgstr "عام" msgid "Hide" msgstr "چھپائیں" msgid "Helpers" msgstr "معاون" msgid "System tray" msgstr "نظام ٹرے" msgid "Preferences" msgstr "ترجیحات" msgid "Syntax" msgstr "نحو" msgid "abbreviated weekday name" msgstr "مختصر ہفتے کے دن کا نام" msgid "full weekday name" msgstr "مکمل ہفتے کے دن کا نام" msgid "abbreviated month name" msgstr "مختصر ماہ کا نام" msgid "full month name" msgstr "ماہ کا پورا نام" msgid "day of the month" msgstr "ماہ کا دن" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "مہینے کا دن ابتدائی صفروں کے بغیر" msgid "month" msgid_plural "months" msgstr[0] "ماہ" msgstr[1] "مہینے" msgid "year without century" msgstr "سال بغیر صدی" msgid "year with century" msgstr "سال بمع صدی" msgid "Date header format" msgstr "تاریخ سرساز ہیئت" msgid "Set default format" msgstr "طے شدہ ہیئت مرتب کریں" msgid "Date format syntax" msgstr "تاریخ ہیئت ساخت" msgid "Day note marker" msgstr "دن نوٹ مارکر" msgid "Event marker" msgstr "واقعہ مارکر" msgid "Circle" msgstr "دائری" msgid "Ellipse" msgstr "بیضوی" msgid "Wave" msgstr "لہر" msgid "Current day marker" msgstr "حالیہ دن مارکر" msgid "Arrow" msgstr "تیر" msgid "Free-hand circle" msgstr "آزاد-دستی حلقہ" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "آخرِ ہفتہ کے دنوں کا رنگ" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "کرسر کا رنگ" msgid "Event marker color" msgstr "واقعات مارکر رنگ" msgid "Current day marker color" msgstr "حالیہ دن مارکر رنگ" msgid "Birthday marker color" msgstr "سالگرہ مارکر رنگ" msgid "Date font" msgstr "تاریخ فونٹ" msgid "Calendar font" msgstr "تقویم فونٹ" msgid "Note font" msgstr "نوٹ کا فونٹ" msgid "Enable block cursor" msgstr "بلاک کرسر فعال کریں" msgid "Cursor thickness" msgstr "کرسر کی کثافت" msgid "Thin" msgstr "پتلا" msgid "Thick" msgstr "گھنا" msgid "Edit category" msgstr "زمرہ مدون کریں" msgid "Color" msgstr "رنگ" msgid "Name" msgstr "نام" msgid "Select ICS file" msgstr "ICS فائل منتخب کریں" msgid "All Files" msgstr "تمام فائلیں" msgid "Calendar files (*.ics)" msgstr "تقویم فائلیں (*.ics)" msgid "Modify ICAL parameters" msgstr "ICAL پیرامیٹر تبدیل کریں" msgid "Filename" msgstr "فائل کا نام" msgid "Options" msgstr "اختیارات" msgid "Disabled" msgstr "معطل" msgid "Valid" msgstr "موزوں" msgid "Description" msgstr "تفصیل" msgid "Full date" msgstr "پوری تاریخ" msgid "Mark" msgstr "نشان" msgid "Week start on Monday" msgstr "ہفتہ پیر کو شروع ہو" msgid "Show day names" msgstr "دنوں کے نام دکھائیں" msgid "No month change" msgstr "کوئی ماہ کی تبدیلی نہیں" msgid "Show week numbers" msgstr "ہفتے کے اعداد ظاہر کریں" msgid "Simple view in full-year calendar" msgstr "مکمل-سال تقویم میں سادہ منظر" msgid "Enable auxilary calendars" msgstr "اضافی تقویمیں فعال کریں" msgid "Ascending sorting in day notes browser" msgstr "دن نوٹس براؤزر میں صعودی ترتیب" msgid "Enable spell checker in day notes" msgstr "دن کے نوٹس میں املاء کی پڑتال فعال کریں" msgid "Current time" msgstr "حالیہ وقت" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "دن کا عدد" msgid "Today distance" msgstr "آج کا فاصلہ" msgid "Marked days" msgstr "نشان زد دن" msgid "Week number" msgstr "ہفتے کا عدد" msgid "Weekend days" msgstr "آخر ہفتہ کے دن" msgid "Day category" msgstr "دن کا زمرہ" msgid "Moon phase" msgstr "چاند کا دورانیہ" msgid "Day notes" msgstr "دن کے نوٹس" msgid "Day categories" msgstr "دن زمرہ جات" msgid "iCalendar files" msgstr "آئی کلینڈر فائلیں" msgid "Show in day info panel" msgstr "دن کے معلوماتی پینل میں دکھائیں" msgid "Tasks list" msgstr "مہم فہرست" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "نہیں." msgid "Summary" msgstr "خلاصہ" msgid "Due date" msgstr "باقی تاریخ" msgid "Priority" msgstr "اہمیت" msgid "Error printing" msgstr "طباعت کی غلطی" msgid "No birthdays defined" msgstr "کوئی سالگرہ متعین نہیں" msgid "Birthdays list" msgstr "سالگرہیں فہرست" msgid "Days to birthday" msgstr "سالگرہ میں دن" msgid "today" msgstr "آج" msgid "Select CSV file" msgstr "CSV فائل منتخب کریں" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (کوما-مقسم قدر) فائلیں (*.csv)" msgid "Please select file first." msgstr "براہ مہربانی پہلے فائل منتخب کریں." msgid "Import contacts" msgstr "رابطے درآمد کریں" msgid "Import type" msgstr "درآمد نوعیت" msgid "File" msgstr "فائل" msgid "Input filename" msgstr "ماداخل فائل نام" msgid "Import" msgstr "درآمد" msgid "Nothing to import." msgstr "درآمد کرنے کے لیے کچھ نہیں ہے." msgid "contact added" msgid_plural "contacts added" msgstr[0] "رابطہ شامل کردیا گیا" msgstr[1] "رابطے شامل کردیے گئے" msgid "of" msgstr "برائے" msgid "Record" msgstr "ریکارڈ" msgid "Number fields per record" msgstr "فی اندراج حلقوں کی تعداد" msgid "Use first record as header" msgstr "ہیڈر کے طور پر پہلا ریکارڈ استعمال کریں" msgid "Field type" msgstr "حلقہ نوعیت" msgid "Value" msgstr "قدر" msgid "No records found in selected file." msgstr "منتخب کردہ فائل میں کوئی ریکارڈ نہیں پایا گیا." msgid "Cannot read file." msgstr "فائل نہیں پڑھی جاسکتی." msgid "Cannot open file." msgstr "فائل نہیں کھولی جاسکتی." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "تقویم دکھائیں" msgid "Show tasks" msgstr "مہم دکھائیں" msgid "Show contacts" msgstr "رابطے دکھائیں" msgid "Show notes" msgstr "نوٹس دکھائیں" msgid "Show options" msgstr "اختیارات دکھائیں" msgid "Quit" msgstr "برخاست" msgid "Show small calendar window" msgstr "چوٹی تقویم دریچہ دکھائیں" msgid "Check for events since last run" msgstr "آخری بار چلانے سے واقعات چیک کریں" msgid "Number of days to check forward for events (default: 0)" msgstr "آئندہ واقعات کو چیک کرنے کے لیے دنوں کی تعداد (طے شدہ: 0)" msgid "Set absolute path for settings and data files" msgstr "ترتیبات اور ڈیٹا فائلوں کے لیے مطلق پاتھ مرتب کریں" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "غلطی: کانفگ (config) فائل نہیں بنائی جاسکتی" msgid "Another copy of OSMO is already running." msgstr "اوسمو کا دوسرا نسخہ پہلے ہی چل رہا ہے." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "ایک ہی وقت میں اوسمو کے دو نسخوں کے استعمال سے ڈیٹا کا نقصان ہوسکتا ہے." msgid "Do you really want to continue?" msgstr "کیا آپ واقعی آگے بڑھنا چاہتے ہیں؟" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "پست" msgid "High" msgstr "بالا" msgid "Done!" msgstr "ہوگیا!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "رابطہ برآمد کردیا گیا" msgstr[1] "رابطے برآمد کردیے گئے" msgid "Cannot create file." msgstr "فائل نہیں بنائی جاسکتی." msgid "Select output file" msgstr "ماحاصل فائل منتخب کریں" msgid "Export contacts" msgstr "رابطے برآمد کریں" msgid "Output format" msgstr "ماحاصل ہیئت" msgid "Add header" msgstr "سرساز شامل کریں" msgid "Fields to export" msgstr "حلقے برائے برآمد" msgid "All" msgstr "تمام" msgid "Invert" msgstr "پلٹیں" msgid "Select fields" msgstr "حلقے منتخب کریں" msgid "Output filename" msgstr "ماحاصل فائل نام" msgid "Export" msgstr "برآمد" msgid "Color of items that are due today" msgstr "ان عناصر کا رنگ جو آج کے لیے باقی ہیں" msgid "Color of items that are due in the next 7 days" msgstr "ان عناصر کا رنگ جو اگلے 7 دنوں تک باقی ہیں" msgid "Color of items that are past due" msgstr "ان عناصر کا رنگ جن کا وقت گزر گیا" msgid "Task info font" msgstr "مہم معلومات فونٹ" msgid "Show in bold tasks with high priority" msgstr "چوڑی مہموں میں زیادہ اہمیت کے ساتھ دکھائیں" msgid "Hide completed tasks" msgstr "تکمیل شدہ مہم چھپائیں" msgid "Delete completed tasks without confirmation" msgstr "تکمیل شدہ مہمیں بغیر تصدیق کے حذف کردیں" msgid "Add new task when double clicked on tasks list" msgstr "مہم فہرست میں دہرے کلک پر نئی مہم شامل کریں" msgid "Postpone time" msgstr "موخر کرنے کا وقت" msgid "minutes" msgstr "منٹ" msgid "0 for disable" msgstr "0 برائے معطلی" msgid "Repeat sound alarm" msgstr "الارم کی آواز دہرائیں" msgid "times" msgstr "اوقات" msgid "Global notification command" msgstr "عالمگیر اطلاعی کمانڈ" msgid "Tasks options" msgstr "مہم کے اختیارات" msgid "Reminder options" msgstr "یاد دہانی اختیارات" msgid "Insert timeline" msgstr "ٹائم لائن شامل کریں" msgid "Timeline" msgstr "خطِ وقت" msgid "From (hour)" msgstr "از (گھنٹہ)" msgid "Step (minutes)" msgstr "مرحلہ (منٹ)" msgid "To (hour)" msgstr "تا (گھنٹہ)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "براہ مہربانی کم سے کم ایک دن منتخب کریں جب ری کرنسی فعال ہو." msgid "Set time" msgstr "وقت متعین کریں" msgid "Hour" msgstr "گھنٹہ" msgid "Minute" msgstr "منٹ" msgid "Today" msgstr "آج" msgid "Tomorrow" msgstr "کل" msgid "Selected task will be removed." msgstr "منتخب کردہ مہم حذف کردی جائے گی." msgid "Select date and time" msgstr "تاریخ اور وقت منتخب کریں" msgid "Enable sound notification" msgstr "صوتی اطلاع فعال کریں" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "الارم انتباہ" msgid "Days" msgstr "دن" msgid "Hours" msgstr "گھنٹے" msgid "Minutes" msgstr "منٹ" msgid "Alarm command" msgstr "الارم کمانڈ" msgid "Date period" msgstr "تاریخ مدت" msgid "Months" msgstr "مہینے" msgid "Repeat" msgstr "دہرائیں" msgid "Repeat in the following days" msgstr "مندرجہ ذیل دنوں میں دہرائیں" msgid "Time period" msgstr "وقت مدت" msgid "Start" msgstr "ابتداء" msgid "End" msgstr "آخر" msgid "Interval" msgstr "وقفہ" msgid "Ignore alarm when task expired offline" msgstr "جب مہم آف لائن اختتام پذیر ہو الارم نظر انداز کریں" msgid "Recurrent task" msgstr "باز گرد مہم" msgid "Enable" msgstr "فعال کریں" msgid "Edit task" msgstr "مہم مدون کریں" msgid "Add task" msgstr "مہم شامل کریں" msgid "Basic" msgstr "بنیادی" msgid "Advanced" msgstr "اعلی" msgid "New Moon" msgstr "نیا چاند" msgid "Waxing Crescent Moon" msgstr "بڑھتا ہلال چاند" msgid "Quarter Moon" msgstr "چوتھائی چاند" msgid "Waxing Gibbous Moon" msgstr "بڑھتا ابھرا چاند" msgid "Full Moon" msgstr "مکمل چاند" msgid "Waning Gibbous Moon" msgstr "ماند ابھرا چاند" msgid "Last Quarter Moon" msgstr "آخری چوتھائی چاند" msgid "Waning Crescent Moon" msgstr "ماند ہلال چاند" msgid "Cannot create backup!" msgstr "بیک اپ نہیں بنایا جاسکتا!" msgid "Save backup" msgstr "بیک اپ محفوظ کریں" msgid "Password protection" msgstr "پاس ورڈ تحفظ" msgid "Enter password" msgstr "پاس ورڈ داخل کریں" msgid "Re-enter password" msgstr "پاس ورڈ دوبارہ داخل کریں" msgid "Please enter the password" msgstr "براہ مہربانی پاس ورڈ داخل کریں" msgid "Passwords do not match!" msgstr "پاس ورڈ مطابقت نہیں رکھتا!" msgid "Backup file saved successfully!" msgstr "بیک اپ کی فائل کامیابی سے محفوظ کردی گئی!" msgid "Open backup file" msgstr "بیک اپ فائل کھولیں" msgid "Osmo backup files (*.bck)" msgstr "اوسمو بیک اپ فائلیں (*.bck)" msgid "This is not Osmo backup file" msgstr "یہ اوسمو بیک اپ فائل نہیں ہے" msgid "Incorrect password!" msgstr "غلط پاس ورڈ!" msgid "All your data will be replaced with backup file content." msgstr "آپ کا تمام ڈیٹا بیک اپ فائل کے مواد سے بدل دیا جائے گا." msgid "Osmo has to be restarted now..." msgstr "اوسمو کو پھر سے چلانے کی ضرورت ہے..." msgid "Please select address" msgstr "براہ مہربانی پتہ منتخب کریں" msgid "First name" msgstr "پہلا نام" msgid "Last name" msgstr "آخری نام" msgid "Second name" msgstr "دوسرا نام" msgid "Nickname" msgstr "عرفیت" msgid "Tags" msgstr "ٹیگ" msgid "Name day date" msgstr "نام دن تاریخ" msgid "Home address" msgstr "گھر کا پتہ" msgid "Home postcode" msgstr "گھر کا پوسٹ کوڈ" msgid "Home city" msgstr "شہر" msgid "Home state" msgstr "صوبہ" msgid "Home country" msgstr "ملک" msgid "Organization" msgstr "ادارہ" msgid "Department" msgstr "محکمہ" msgid "Work address" msgstr "کام کا پتہ" msgid "Work postcode" msgstr "کام کا پوسٹ کوڈ" msgid "Work city" msgstr "کام کا شہر" msgid "Work state" msgstr "کام کا صوبہ" msgid "Work country" msgstr "کام کا ملک" msgid "Fax" msgstr "فیکس" msgid "Home phone" msgstr "گھر کا فون" msgid "Home phone 2" msgstr "گھر کا فون 2" msgid "Home phone 3" msgstr "گھر کا فون 3" msgid "Home phone 4" msgstr "گھر کا فون 4" msgid "Work phone" msgstr "کام کا فون" msgid "Work phone 2" msgstr "کام کا فون 2" msgid "Work phone 3" msgstr "کام کا فون 3" msgid "Work phone 4" msgstr "کام کا فون 4" msgid "Cell phone" msgstr "سیل فون" msgid "Cell phone 2" msgstr "سیل فون 2" msgid "Cell phone 3" msgstr "سیل فون 3" msgid "Cell phone 4" msgstr "سیل فون 4" msgid "E-Mail" msgstr "برقی پتہ" msgid "E-Mail 2" msgstr "برقی پتہ 2" msgid "E-Mail 3" msgstr "برقی پتہ 3" msgid "E-Mail 4" msgstr "برقی پتہ 4" msgid "WWW" msgstr "ویب سائٹ" msgid "WWW 2" msgstr "ویب سائٹ 2" msgid "WWW 3" msgstr "ویب سائٹ 3" msgid "WWW 4" msgstr "ویب سائٹ 4" msgid "IM Gadu-Gadu" msgstr "گاڈو-گادو پیغام رساں" msgid "IM Yahoo" msgstr "یاہو پیغام رساں" msgid "IM MSN" msgstr "ایم ایس این پیغام رساں" msgid "IM ICQ" msgstr "آئی سی کیو پیغام رساں" msgid "IM AOL" msgstr "اے او ایل پیغام رساں" msgid "IM Jabber" msgstr "جبر پیغام رساں" msgid "IM Skype" msgstr "سکائپی پیغام رساں" msgid "IM Tlen" msgstr "ٹلن پیغام رساں" msgid "Blog" msgstr "بلاگ" msgid "Photo" msgstr "تصویر" msgid "New contact" msgstr "نیا رابطہ" msgid "Remove contact" msgstr "رابطہ حذف کریں" msgid "Show birthdays" msgstr "سالگرہیں دکھائیں" msgid "Show contact location on the map" msgstr "نقشے پر رابطہ کا مقام ظاہر کریں" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "بابت" msgid "Clear" msgstr "صاف" msgid "First Name" msgstr "پہلا نام" msgid "Last Name" msgstr "آخری نام" msgid "All fields" msgstr "تمام حلقے" msgid "Contact details" msgstr "رابطے کی تفصیلات" msgid "Close contact panel" msgstr "رابطے کا پینل بند کریں" msgid "The note has changed." msgstr "نوٹ تبدیل کردیا گیا." msgid "Do you want to save it?" msgstr "کیا آپ اسے محفوظ کرنا چاہتے ہیں؟" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "الفاظ" msgid "Lines" msgstr "لکیریں" msgid "Characters" msgstr "کیریکٹرز" msgid "White characters" msgstr "سفید کیریکٹرز" msgid "Bytes" msgstr "بائٹس" msgid "Document" msgstr "دستاویز" msgid "Selection" msgstr "انتخاب" msgid "Modified" msgstr "تبدیل شدہ" msgid "New note" msgstr "نیا نوٹ" msgid "Edit note" msgstr "نوٹ مدون کریں" msgid "Delete note" msgstr "نوٹ حذف کریں" msgid "Save note" msgstr "نوٹ محفوظ کریں" msgid "Find" msgstr "تلاش" msgid "Toggle spell checker" msgstr "املاء کی پڑتال معکوس کریں" msgid "Bold" msgstr "چوڑا" msgid "Italic" msgstr "ٹیڑھا" msgid "Underline" msgstr "خد کشیدہ" msgid "Strikethrough" msgstr "خط مقطوع" msgid "Highlight" msgstr "نشان زدہ" msgid "Clear attributes" msgstr "اوصاف صاف کریں" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "حالیہ تاریخ اور وقت شامل کریں" msgid "Insert separator" msgstr "جداگار شامل کریں" msgid "Statistics" msgstr "شُماریات" msgid "Close editor" msgstr "مدون بند کریں" msgid "Note name" msgstr "نوٹ کا نام" msgid "Read-only" msgstr "فقط-برائے-پڑھائی" msgid "Line" msgstr "لکیر" msgid "Column" msgstr "کالم" msgid "case sensitive" msgstr "حساس" msgid "Close find entry" msgstr "اندراج تلاش بند کریں" msgid "Edit entry" msgstr "اندراج مدون کریں" msgid "Remember cursor position" msgstr "کرسر کی جگہ یاد رکھیں" msgid "Selected note will be removed." msgstr "منتخب کردہ نوٹ حذف کردیا جائے گا." msgid "No further data recovery will be possible." msgstr "مزید ڈیٹا کی بازیافتگی ممکن نہیں ہوگی." msgid "Add note" msgstr "نوٹ شامل کریں" msgid "Plain" msgstr "سادہ" msgid "Encrypted" msgstr "رمز شدہ" msgid "Note type" msgstr "نوٹ کی نوعیت" msgid "Cannot open the note." msgstr "نوٹ نہیں کھولا جاسکتا." msgid "encryption support is disabled" msgstr "رمز نگاری کی معاونت معطل ہے" msgid "Authorization" msgstr "منظوری" msgid "year" msgid_plural "years" msgstr[0] "سال" msgstr[1] "سال" msgid "day" msgid_plural "days" msgstr[0] "دن" msgstr[1] "دن" msgid "hour" msgid_plural "hours" msgstr[0] "گھنٹہ" msgstr[1] "گھنٹے" msgid "minute" msgid_plural "minutes" msgstr[0] "منٹ" msgstr[1] "منٹ" msgid "second" msgid_plural "seconds" msgstr[0] "سیکنڈ" msgstr[1] "سیکنڈ" msgid "or" msgstr "یا" msgid "rounded down" msgstr "راؤنڈ کردیے گئے" msgid "week" msgid_plural "weeks" msgstr[0] "ہفتہ" msgstr[1] "ہفتے" msgid "working day" msgid_plural "working days" msgstr[0] "کام کرنے کا دن" msgstr[1] "کام کرنے کے دن" msgid "time is ignored" msgstr "وقت نظر انداز کردیا گیا" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "اختتام ہفتہ کا دن" msgstr[1] "اختتام ہفتے کے دن" msgid "This calculator only supports dates after year 1." msgstr "یہ شُمار کُنندہ صرف 1 سال بعد کی تاریخوں کی معاونت رکھتا ہے." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "آخرِ ہفتہ کا دن نظر انداز کردیا گیا" msgstr[1] "آخرِ ہفتہ کے دن نظر انداز کردیے گئے" msgid "Date calculator" msgstr "تاریخ شُمار کُنندہ" msgid "Current date" msgstr "حالیہ تاریخ" msgid "Set current date" msgstr "حالیہ تاریخ مرتب کریں" msgid "Second" msgstr "سیکنڈ" msgid "Set current time" msgstr "حالیہ وقت مرتب کریں" msgid "Reset time" msgstr "وقت صاف کریں" msgid "First date and time" msgstr "پہلی تاریخ اور وقت" msgid "Second date and time" msgstr "دوسری تاریخ اور وقت" msgid "Alternative time units" msgstr "متبادل وقت کی اکائیاں" msgid "Result" msgstr "نتیجہ" msgid "Duration between two dates" msgstr "دو تاریخوں کے درمیان مدت" msgid "Operation" msgstr "عمل" msgid "add" msgstr "شامل کریں" msgid "subtract" msgstr "تفریق" msgid "Date and time to add or subtract from" msgstr "تاریخ اور وقت کی شمولیت یا اس سے حصول" msgid "Years" msgstr "سال" msgid "Weeks" msgstr "ہفتے" msgid "Seconds" msgstr "سیکنڈ" msgid "Ignore weekend days" msgstr "آخرِ ہفتہ کے دنوں کو نظر انداز کریں" msgid "Reset fields" msgstr "حلقے صاف کریں" msgid "Time to add or subtract" msgstr "وقت برائے اضافہ یا حصول" msgid "Add to or subtract from a date" msgstr "تاریخ میں شامل یا حاصل کریں" msgid "Cannot perform selected operation." msgstr "منتخب کردہ عمل ادا نہیں کیا جاسکتا." msgid "Task has been modified or removed." msgstr "مہم تبدیل یا حذف کردی گئی." msgid "Remind me later" msgstr "بعد میں یاد دلائیں" msgid "Done" msgstr "تکمیل شدہ" msgid "Show task" msgstr "مہم دکھائیں" msgid "Alarm warning!" msgstr "الارم انتباہ!" msgid "postponed" msgstr "مؤخر کردہ" msgid "Day note" msgstr "دن نوٹ" msgid "Events" msgstr "واقعات" msgid "Event" msgstr "واقعہ" msgid "Task" msgstr "مہم" msgid "Birthday" msgstr "سالگرہ" msgid "Show Osmo" msgstr "اوسمو کو ظاہر کریں" msgid "event" msgid_plural "events" msgstr[0] "واقعہ" msgstr[1] "واقعات" msgid "No valid calendars defined" msgstr "کوئی موزوں تقویم متعین نہیں ہے" msgid "iCalendar events" msgstr "آئی کیلینڈر واقعات" msgid "Time" msgstr "وقت" msgid "The list will be cleared and all entries will be lost." msgstr "فہرست صاف کردی جائے گی اور تمام اندراجات ضائع ہوجائیں گے." msgid "event exported" msgid_plural "events exported" msgstr[0] "واقعہ برآمد کردیا گیا" msgstr[1] "واقعات برآمد کردیے گئے" msgid "iCalendar export" msgstr "آئی کلینڈر برآمد" msgid "Day Selector" msgstr "دن منتخب کار" msgid "Use date period" msgstr "تاریخ کی مدت استعمال کریں" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "متعین کردہ تاریخ میں کوئی مہمیں نہیں پائی گئیں." msgid "Save tasks" msgstr "مہم محفوظ کریں" msgid "tasks exported" msgstr "مہمیں برآمد کردی گئیں" msgid "was born" msgstr "تاریخ پیدائش" msgid "year old" msgid_plural "years old" msgstr[0] "سال پرانا" msgstr[1] "سال پرانے" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "دن سال کے ختم ہونے میں باقی ہے" msgstr[1] "دن سال کے ختم ہونے میں باقی ہیں" msgid "the last day of the year" msgstr "سال کا آخری دن" msgid "Day tasks" msgstr "دن کی مہم" msgid "Selected day note will be removed." msgstr "منتخب کردہ دن کا نوٹ حذف کردیا جائے گا." msgid "Continue?" msgstr "جاری رہیں؟" msgid "Previous year" msgstr "سابقہ سال" msgid "Previous month" msgstr "سابقہ ماہ" msgid "Previous day" msgstr "سابقہ دن" msgid "Next day" msgstr "اگلا دن" msgid "Next month" msgstr "اگلا ماہ" msgid "Next year" msgstr "اگلا سال" msgid "Full-year calendar" msgstr "پورے سال کی تقویم" msgid "Print calendar" msgstr "تقویم طبع کریں" msgid "Toggle day note panel" msgstr "دن نوٹ پینل معکوس کریں" msgid "Select day color" msgstr "دن کا رنگ منتخب کریں" msgid "Browse notes" msgstr "نوٹس دیکھیں" msgid "Browse iCal events" msgstr "iCal واقعات دیکھیں" msgid "Export to iCal file" msgstr "iCal فائل میں برآمد کریں" msgid "Previous and next month" msgstr "سابقہ اور اگلا ماہ" msgid "Close note panel" msgstr "نوٹ پینل بند کریں" msgid "Clear text" msgstr "متن صاف کریں" msgid "Info" msgstr "معلومات" msgid "Select color" msgstr "رنگ منتخب کریں" msgid "Name day" msgstr "دن نام" msgid "Printing properties" msgstr "طباعت خصوصیات" msgid "Month name" msgstr "ماہ نام" msgid "Day name" msgstr "دن کا نام" msgid "Fonts" msgstr "فونٹ" msgid "Birthdays" msgstr "سالگرہیں" msgid "Namedays" msgstr "دنوں کے نام" msgid "Visible events" msgstr "مرئی واقعات" msgid "Padding" msgstr "پیڈنگ" msgid "Event maximum length" msgstr "واقعہ کا زیادہ سے زادہ طول" msgid "Page orientation:" msgstr "صفحہ کی رُخ بندی" msgid "Portrait" msgstr "پورٹریٹ" msgid "Landscape" msgstr "لینڈسکیپ" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "لیپ کا سال" msgid "Yes" msgstr "ہاں" msgid "No" msgstr "نہیں" msgid "Chinese year animal" msgstr "چینی سال جانور" msgid "Number of days" msgstr "دنوں کی تعداد" msgid "Number of weeks" msgstr "ہفتوں کی تعداد" msgid "Number of weekend days" msgstr "آخرِ ہفتہ کے دنوں کی تعداد" msgid "Year info" msgstr "سال کی تفصیلات" msgid "Alternative view" msgstr "متبادل منظر" msgid "Started" msgstr "شروع کردہ" msgid "Finished" msgstr "تکمیل یافتہ" msgid "New task" msgstr "نئی مہم" msgid "Remove task" msgstr "مہم حذف کریں" msgid "Change due date to previous date" msgstr "باقی تاریخ کو سابقہ تاریخ پر تبدیل کریں" msgid "Change due date to next date" msgstr "باقی تاریخ کو اگلی تاریخ پر تبدیل کریں" msgid "Export tasks" msgstr "مہم برآمد کریں" msgid "Print visible tasks list" msgstr "مرئی مہم کی فہرست طبع کریں" msgid "Task details" msgstr "مہم تفصیلات" msgid "Close description panel" msgstr "تفصیلات پینل بند کریں" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "سابقہ ٹیب پر منتقل ہوں" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "اگلے ٹیب پر منتقل ہوں" msgid "switch to selected page" msgstr "منتخب کردہ صفحہ پر منتقل ہوں" msgid "show options window" msgstr "اختیارات کا دریچہ دکھائیں" msgid "show about window" msgstr "بابت کا دریچہ دکھائیں" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "اختیارات اور بابت ٹیب میں صفحہ کو بدلیں" msgid "exit" msgstr "برخاست" msgid "Space" msgstr "خلاء" msgid "select current date" msgstr "حالیہ تاریخ منتخب کریں" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "ذاتی ڈیٹا روئیت معکوس کریں" msgid "Arrows" msgstr "تیر" msgid "change day" msgstr "دن تبدیل کریں" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "دن کے معلوماتی پینل کے مواد کو سکرول کریں" msgid "change month" msgstr "ماہ تبدیل کریں" msgid "Home/End" msgstr "گھر/آخر" msgid "change year" msgstr "سال تبدیل کریں" msgid "toggle calendars for the previous and next month" msgstr "گزشتہ اور آئندہ ماہ کی تقویم کو ظاہر یا غائب کریں" msgid "day notes browser" msgstr "دن نوٹس براؤزر" msgid "assign background color to day note" msgstr "دن نوٹ کو پس منظر رنگ دیں" msgid "date calculator" msgstr "تاریخ شمار کنندہ" msgid "show full-year calendar" msgstr "پورے سال کی تقویم دکھائیں" msgid "jump to date" msgstr "تاریخ پر جائیں" msgid "Delete" msgstr "حذف" msgid "remove day note" msgstr "دن کا نوٹ حذف کریں" msgid "Alt+Arrows" msgstr "Alt+Arrows" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "مدون بند کریں" msgid "toggle bold" msgstr "چوڑائی معکوس کریں" msgid "toggle italic" msgstr "ٹیڑھا معکوس کریں" msgid "toggle underline" msgstr "خط کشیدہ معکوس کریں" msgid "toggle strikethrough" msgstr "خط مقطوع منعکس کریں" msgid "toggle highlight" msgstr "نشان زدگی معکوس کریں" msgid "Arrows Up/Down" msgstr "تیر اوپر/نیچے" msgid "toggle alternative view" msgstr "متبادل منظر معکوس کریں" msgid "year info" msgstr "سال کی معلومات" msgid "set current year" msgstr "حالیہ سال مرتب کریں" msgid "close full-year calendar" msgstr "پورے سال کی تقویم بند کریں" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "مہم شامل کریں" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "مہم مدون کریں" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "مہم حذف کریں" msgid "toggle hidden tasks" msgstr "پوشیدہ مہمیں معکوس کریں" msgid "activate search field" msgstr "تلاش کے حلقے فعال کریں" msgid "Left, Right" msgstr "بائیں، دائیں" msgid "change category filter" msgstr "زمرہ فلٹر تبدیل کریں" msgid "close task info panel" msgstr "مہم کا معلوماتی پینل بند کریں" msgid "Insert" msgstr "داخل کریں" msgid "add contact" msgstr "رابطہ شامل کریں" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "رابطہ مدون کریں" msgid "remove contact" msgstr "رابطہ حذف کریں" msgid "change search mode" msgstr "تلاش کا انداز تبدیل کریں" msgid "close contact details panel" msgstr "رابطے کی تفصیلات کا پینل بند کریں" msgid "Enter" msgstr "انٹر" msgid "open note" msgstr "نوٹ کھولیں" msgid "add note" msgstr "نوٹ شامل کریں" msgid "remove note" msgstr "نوٹ حذف کریں" msgid "edit note name and category" msgstr "نوٹ کا نام اور زمرہ مدون کریں" msgid "close note editor" msgstr "نوٹ مدون بند کریں" msgid "save note" msgstr "نوٹ محفوظ کریں" msgid "find text" msgstr "متن تلاش کریں" msgid "clear selection attributes" msgstr "انتخاب کے خواص صاف کریں" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "اوسمو صارف کی سہولت کو مدِ نظر رکھ کر تیار کیا گیا ہے، چنانچہ اس کے بہت سارے " "کلیدی اختصارات (شارٹ کٹ) ہیں. ذیل میں ان اختصارات کی پوری فہرست ہے:" msgid "Note editor" msgstr "نوٹ مدون" msgid "Selector" msgstr "منتخب کار" msgid "Editor" msgstr "مدون" msgid "A handy personal organizer" msgstr "آسان ذاتی منظم" msgid "compiled on" msgstr "تالیف کیا گیا" msgid "Programming" msgstr "پروگرامنگ" msgid "Graphics" msgstr "ترسیمیات" msgid "Contributors" msgstr "معاونین" msgid "Translators" msgstr "مترجمین" msgid "Mailing lists" msgstr "میلنگ لسٹ" msgid "Bug tracker" msgstr "بگ ٹریکر" msgid "Feature requests" msgstr "خوبیوں کی درخواستیں" msgid "Available modules" msgstr "دستیاب ماڈیول" msgid "Compiled-in features" msgstr "تالیفی خوبیاں" msgid "iCalendar support" msgstr "آئی کیلینڈر معاونت" msgid "Encrypted notes support" msgstr "رمز شدہ نوٹس معاونت" msgid "Backup support" msgstr "بیک اپ معاونت" msgid "Printing support" msgstr "طباعت کی معاونت" msgid "Spell checker support" msgstr "املاء کی پڑتال کی معاونت" msgid "version" msgstr "نسخہ" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "کلید اختصار" msgid "License" msgstr "اجازہ" #~ msgid "handy personal organizer" #~ msgstr "آسان ذاتی منظم" osmo-0.4.2/po/de.po0000664000175000017500000011211013204320601010746 00000000000000# German translation of Osmo. # This file is distributed under the same license as the Osmo package. # Markus Dahms , 2007. # Mario Blättermann , 2009. # Roland Siegbert , 2010. # Claudius Henrichs , 2011 # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-04-25 23:16+0200\n" "Last-Translator: Claudius Henrichs , 2011\n" "Language-Team: osmo\n" "Language: de\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" msgid "Colors" msgstr "Farben" msgid "Color of contact tags" msgstr "Farbe für Kontakt-Tags" msgid "Color of links" msgstr "Farbe der Links" msgid "Font size" msgstr "Schriftgrad" msgid "Name font size" msgstr "Schriftgrad der Namen" msgid "Item font size" msgstr "Schriftgrad der Einträge" msgid "Photo size" msgstr "Fotogröße" msgid "Small" msgstr "Klein" msgid "Medium" msgstr "Mittel" msgid "Large" msgstr "Groß" msgid "Hide group column" msgstr "Gruppenspalte verstecken" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Alter" msgid "Birthday date" msgstr "Geburtstag" msgid "Zodiac sign" msgstr "Sternzeichen" msgid "Contacts" msgstr "Kontakte" msgid "Appearance" msgstr "Erscheinung" msgid "Miscellaneous" msgstr "Verschiedenes" msgid "Groups" msgstr "Gruppen" msgid "Visible columns in birthday browser" msgstr "Sichtbare Spalten in der Geburtstags-Übersicht" msgid "Algorithm" msgstr "Algorithmus" msgid "Hashing" msgstr "Hash-Verfahren" msgid "Compression" msgstr "Kompression" msgid "Ratio" msgstr "Rate" msgid "Fast" msgstr "Schnell" msgid "Good" msgstr "Gut" msgid "Best" msgstr "Am besten" msgid "Type" msgstr "Typ" msgid "Category" msgstr "Kategorie" msgid "Last changes" msgstr "Letzte Änderungen" msgid "Created" msgstr "Erstellt" msgid "Remember the last selected category" msgstr "Letzte ausgewählte Kategorie merken" msgid "Use system format for date and time" msgstr "Systemformat für Datum und Zeit benutzen" msgid "Notes" msgstr "Notizen" msgid "Encryption" msgstr "Verschlüsselung" msgid "Visible columns" msgstr "Sichtbare Spalten" msgid "Categories" msgstr "Kategorien" msgid "Notes options" msgstr "Notiz-Optionen" msgid "Jump to date" msgstr "Zu einem Datum springen" msgid "Day" msgstr "Tag" msgid "Month" msgstr "Monat" msgid "Year" msgstr "Jahr" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Wählen Sie eine Schriftart ..." msgid "None" msgstr "Nichts" msgid "All items" msgstr "Alle Punkte" msgid "Question" msgstr "Frage" msgid "Information" msgstr "Information" msgid "Error" msgstr "Fehler" msgid "Warning" msgstr "Warnung" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Die Datei existiert bereits. Überschreiben?" msgid "Selected contact will be removed." msgstr "Der ausgewählte Kontakt wird entfernt." msgid "Are you sure?" msgstr "Sind Sie sicher?" msgid "No date" msgstr "Kein Datum" msgid "Select photo" msgstr "Foto auswählen" msgid "Address" msgstr "Adresse" msgid "Postcode" msgstr "Postleitzahl" msgid "City" msgstr "Stadt" msgid "State" msgstr "Bundesland" msgid "Country" msgstr "Land" msgid "Edit contact" msgstr "Kontakt bearbeiten" msgid "Add contact" msgstr "Kontakt hinzufügen" msgid "Personal" msgstr "Persönlich" msgid "Group" msgstr "Gruppe" msgid "Home" msgstr "Privat" msgid "Work" msgstr "Geschäftlich" msgid "Phones" msgstr "Telefone" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Zusätzliche Informationen" msgid "_OK" msgstr "" msgid "no entries" msgstr "keine Einträge" msgid "entry" msgid_plural "entries" msgstr[0] "Eintrag" msgstr[1] "Einträge" msgid "Calendar notes" msgstr "Kalendernotizen" msgid "Search" msgstr "Suche" msgid "Filter" msgstr "Filter" msgid "Current month" msgstr "Aktueller Monat" msgid "Selected month" msgstr "Ausgewählter Monat" msgid "Current year" msgstr "Aktuelles Jahr" msgid "Selected year" msgstr "Ausgewähltes Jahr" msgid "Selected month and year" msgstr "Ausgewählter Monat und Jahr" msgid "All notes" msgstr "Alle Notizen" msgid "Case sensitive" msgstr "Groß-/Kleinschreibung" msgid "Strikethrough past day notes" msgstr "Vergangene Tagesnotizen durchstreichen" msgid "Date" msgstr "Datum" msgid "Note" msgstr "Notiz" msgid "_Close" msgstr "" msgid "Rat" msgstr "Ratte" msgid "Ox" msgstr "Büffel" msgid "Tiger" msgstr "Tiger" msgid "Hare" msgstr "Hase" msgid "Dragon" msgstr "Drache" msgid "Snake" msgstr "Schlange" msgid "Horse" msgstr "Pferd" msgid "Sheep" msgstr "Schaf" msgid "Monkey" msgstr "Affe" msgid "Fowl" msgstr "Hahn" msgid "Dog" msgstr "Hund" msgid "Pig" msgstr "Schwein" msgid "Unknown" msgstr "Unbekannt" msgid "Aquarius" msgstr "Wassermann" msgid "Pisces" msgstr "Fische" msgid "Aries" msgstr "Widder" msgid "Taurus" msgstr "Stier" msgid "Gemini" msgstr "Zwillinge" msgid "Cancer" msgstr "Krebs" msgid "Leo" msgstr "Löwe" msgid "Virgo" msgstr "Jungfrau" msgid "Libra" msgstr "Waage" msgid "Scorpio" msgstr "Skorpion" msgid "Sagittarius" msgstr "Schütze" msgid "Capricorn" msgstr "Steinbock" msgid "Osmo has to be restarted to take effect." msgstr "Osmo muss neu gestartet werden, um Änderungen sichtbar zu machen." msgid "Layout" msgstr "Layout" msgid "Vertical" msgstr "Vertikal" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Reiter-Position" msgid "Left" msgstr "Links" msgid "Right" msgstr "Rechts" msgid "Top" msgstr "Oben" msgid "Bottom" msgstr "Unten" msgid "Disable underline in links" msgstr "Unterstreichen von Links ausschalten" msgid "Show exit button in toolbar" msgstr "\"Beenden\" in der Werkzeugleiste anzeigen" msgid "At least one module must be visible." msgstr "Mindestens ein Modul muss sichtbar sein." msgid "Calendar" msgstr "Kalender" msgid "Tasks" msgstr "Aufgaben" msgid "Override locale settings" msgstr "Lokale Einstellungen überschreiben" msgid "Date format" msgstr "Datumsformat" msgid "DD-MM-YYYY" msgstr "TT-MM-JJJJ" msgid "MM-DD-YYYY" msgstr "MM-TT-JJJJ" msgid "YYYY-MM-DD" msgstr "JJJJ-MM-TT" msgid "YYYY-DD-MM" msgstr "JJJJ-TT-MM" msgid "Time format" msgstr "Zeitformat" msgid "hours" msgstr "Stunden" msgid "Spell checker language" msgstr "Sprache der Rechtschreibprüfung" msgid "Enable tooltips" msgstr "Minihilfen benutzen" msgid "Remember last selected page" msgstr "Letzte ausgewählte Seite merken" msgid "Save data after every modification" msgstr "Daten nach jeder Änderung speichern" msgid "Web browser" msgstr "Webbrowser" msgid "E-mail client" msgstr "E-Mail-Programm" msgid "Sound player" msgstr "Klangabspieler" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Das Muster %s wird durch die WWW-Adresse ersetzt" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Das Muster %s wird durch die E-Mail-Adresse ersetzt" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Das Muster %s wird durch den Namen der Klangdatei ersetzt" msgid "Enable system tray" msgstr "Benachrichtigungsfeld benutzen" msgid "Start minimised" msgstr "Minimiert starten" msgid "Ignore day note events" msgstr "Tagesnotiz-Ereignisse ignorieren" msgid "General" msgstr "Allgemein" msgid "Hide" msgstr "Verstecken" msgid "Helpers" msgstr "Hilfsprogramme" msgid "System tray" msgstr "Benachrichtigungsfeld" msgid "Preferences" msgstr "Einstellungen" msgid "Syntax" msgstr "Syntax" msgid "abbreviated weekday name" msgstr "Abgekürzter Wochentag" msgid "full weekday name" msgstr "Name des Tages" msgid "abbreviated month name" msgstr "Abgekürzter Monatsname" msgid "full month name" msgstr "Name des Monats" msgid "day of the month" msgstr "Tag des Monats" msgid "MM/DD/YY" msgstr "MM/TT/JJ" msgid "day of the month without leading zeros" msgstr "Einstellige Tage ohne führende Nullen" msgid "month" msgid_plural "months" msgstr[0] "Monat" msgstr[1] "Monate" msgid "year without century" msgstr "Jahr ohne Jhdt." msgid "year with century" msgstr "Jahr mit Jhdt." msgid "Date header format" msgstr "Datums Header Format" msgid "Set default format" msgstr "Standard Ausgabeformat" msgid "Date format syntax" msgstr "Datumsformat (Syntax)" msgid "Day note marker" msgstr "Markierung für Tagesnotizen" msgid "Event marker" msgstr "Markierung für Ereignisse" msgid "Circle" msgstr "Kreis" msgid "Ellipse" msgstr "Ellipse" msgid "Wave" msgstr "Welle" msgid "Current day marker" msgstr "Markierung für aktuelles Datum" msgid "Arrow" msgstr "Pfeil" msgid "Free-hand circle" msgstr "Freihändiger Kreis" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Farbe für das Wochenende" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cursor-Farbe" msgid "Event marker color" msgstr "Farbe der Markierung für Ereignisse" msgid "Current day marker color" msgstr "Farbe der Markierung für aktuelles Datum" msgid "Birthday marker color" msgstr "Farbe der Markierung für Geburtstage" msgid "Date font" msgstr "Datumsschriftart" msgid "Calendar font" msgstr "Kalenderschriftart" msgid "Note font" msgstr "Notizschriftart" msgid "Enable block cursor" msgstr "Blockcursor anschalten" msgid "Cursor thickness" msgstr "Cursor-Dicke" msgid "Thin" msgstr "Dünn" msgid "Thick" msgstr "Dick" msgid "Edit category" msgstr "Kategorie bearbeiten" msgid "Color" msgstr "Farbe" msgid "Name" msgstr "Name" msgid "Select ICS file" msgstr "ICS-Datei auswählen" msgid "All Files" msgstr "Alle Dateien" msgid "Calendar files (*.ics)" msgstr "Kalender-Dateien (*.ics)" msgid "Modify ICAL parameters" msgstr "iCal-Parameter ändern" msgid "Filename" msgstr "Dateiname" msgid "Options" msgstr "Optionen" msgid "Disabled" msgstr "Deaktiviert" msgid "Valid" msgstr "Gültig" msgid "Description" msgstr "Beschreibung" msgid "Full date" msgstr "Volles Datum" msgid "Mark" msgstr "Markieren" msgid "Week start on Monday" msgstr "Wochenanfang am Montag" msgid "Show day names" msgstr "Tagesnamen zeigen" msgid "No month change" msgstr "Kein Monatswechsel" msgid "Show week numbers" msgstr "Kalenderwoche anzeigen" msgid "Simple view in full-year calendar" msgstr "Einfache Ansicht im Jahreskalender" msgid "Enable auxilary calendars" msgstr "Zusätzliche Kalender anzeigen" msgid "Ascending sorting in day notes browser" msgstr "Aufsteigende Sortierung der Tagesnotizen" msgid "Enable spell checker in day notes" msgstr "Rechtschreibprüfung in Tagesnotizen benutzen" msgid "Current time" msgstr "Aktuelle Zeit" msgid "Show seconds" msgstr "Sekunden anzeigen" msgid "Day number" msgstr "Tag im Jahr" msgid "Today distance" msgstr "Abstand zu heute" msgid "Marked days" msgstr "Markierte Tage" msgid "Week number" msgstr "Kalenderwoche" msgid "Weekend days" msgstr "Wochenende" msgid "Day category" msgstr "Tageskategorie" msgid "Moon phase" msgstr "Mondphase" msgid "Day notes" msgstr "Tagesnotizen" msgid "Day categories" msgstr "Tageskategorien" msgid "iCalendar files" msgstr "iCalendar-Dateien" msgid "Show in day info panel" msgstr "In der Info-Anzeige darstellen" msgid "Tasks list" msgstr "Aufgabenliste" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr." msgid "Summary" msgstr "Zusammenfassung" msgid "Due date" msgstr "Fälligkeitsdatum" msgid "Priority" msgstr "Priorität" msgid "Error printing" msgstr "Fehler beim Druck" msgid "No birthdays defined" msgstr "Es liegen keine Geburtstage vor" msgid "Birthdays list" msgstr "Geburtstagsliste" msgid "Days to birthday" msgstr "Tage bis zum Geburtstag" msgid "today" msgstr "heute" msgid "Select CSV file" msgstr "CSV-Datei auswählen" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV-Dateien (kommagetrennte Werte, *.csv)" msgid "Please select file first." msgstr "Bitte zuerst eine Datei auswählen." msgid "Import contacts" msgstr "Kontakte importieren" msgid "Import type" msgstr "Typ importieren" msgid "File" msgstr "Datei" msgid "Input filename" msgstr "Eingabedateiname" msgid "Import" msgstr "Importieren" msgid "Nothing to import." msgstr "Nichts zu importieren" msgid "contact added" msgid_plural "contacts added" msgstr[0] "Kontakt hinzugefügt" msgstr[1] "Kontakte hinzugefügt" msgid "of" msgstr "von" msgid "Record" msgstr "Datensatz" msgid "Number fields per record" msgstr "Anzahl der Felder pro Datensatz" msgid "Use first record as header" msgstr "Ersten Datensatz als Kopfzeile benutzen" msgid "Field type" msgstr "Feldtyp" msgid "Value" msgstr "Wert" msgid "No records found in selected file." msgstr "Keine Datensätze in der ausgewählten Datei gefunden." msgid "Cannot read file." msgstr "Die Datei kann nicht gelesen werden." msgid "Cannot open file." msgstr "Die Datei kann nicht geöffnet werden." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Kalender anzeigen" msgid "Show tasks" msgstr "Aufgaben anzeigen" msgid "Show contacts" msgstr "Kontakte anzeigen" msgid "Show notes" msgstr "Notizen anzeigen" msgid "Show options" msgstr "Optionen anzeigen" msgid "Quit" msgstr "Beenden" msgid "Show small calendar window" msgstr "kleines Kalenderfenster zeigen" msgid "Check for events since last run" msgstr "Auf Ereignisse vom letzten Durchlauf prüfen" msgid "Number of days to check forward for events (default: 0)" msgstr "" "Anzahl der folgenden Tage, die auf Ereignisse geprüft werden sollen " "(Standard: 0)" msgid "Set absolute path for settings and data files" msgstr "Absoluten Pfad für Einstellungen und Daten setzen" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "Fehler: Die Konfigurationsdateien können nicht erstellt werden" msgid "Another copy of OSMO is already running." msgstr "OSMO läuft bereits." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "Wenn mehr als eine Instanz von OSMO läuft, können Daten verlorengehen!" msgid "Do you really want to continue?" msgstr "Möchten Sie wirklich fortfahren?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Niedrig" msgid "High" msgstr "Hoch" msgid "Done!" msgstr "Fertig!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "Kontakt exportiert" msgstr[1] "Kontakte exportiert" msgid "Cannot create file." msgstr "Die Datei kann nicht erstellt werden." msgid "Select output file" msgstr "Ausgabedatei auswählen" msgid "Export contacts" msgstr "Kontakte exportieren" msgid "Output format" msgstr "Ausgabeformat" msgid "Add header" msgstr "Kopfzeile hinzufügen" msgid "Fields to export" msgstr "Zu exportierende Felder" msgid "All" msgstr "Alle" msgid "Invert" msgstr "Umkehren" msgid "Select fields" msgstr "Felder auswählen" msgid "Output filename" msgstr "Ausgabedateiname" msgid "Export" msgstr "Exportieren" msgid "Color of items that are due today" msgstr "Farbe der Punkte, die heute fällig sind" msgid "Color of items that are due in the next 7 days" msgstr "Farbe der Punkte, die in den nächsten 7 Tagen fällig sind" msgid "Color of items that are past due" msgstr "Farbe der Punkte, die überfällig sind" msgid "Task info font" msgstr "Schriftart für Aufgabeninformationen" msgid "Show in bold tasks with high priority" msgstr "Aufgaben mit hoher Priorität fett darstellen" msgid "Hide completed tasks" msgstr "Fertige Aufgaben verstecken" msgid "Delete completed tasks without confirmation" msgstr "Fertige Aufgaben ohne Nachfrage löschen" msgid "Add new task when double clicked on tasks list" msgstr "Neue Aufgabe bei Doppelklick auf die Aufgabenliste hinzufügen" msgid "Postpone time" msgstr "Zeit verschieben" msgid "minutes" msgstr "Minuten" msgid "0 for disable" msgstr "0 zum Deaktivieren" msgid "Repeat sound alarm" msgstr "Klang-Alarm wiederholen" msgid "times" msgstr "Zeiten" msgid "Global notification command" msgstr "Globaler Befehl zur Benachrichtigung" msgid "Tasks options" msgstr "Optionen für Aufgaben" msgid "Reminder options" msgstr "Erinnerungsoptionen" msgid "Insert timeline" msgstr "Zeitraster einfügen" msgid "Timeline" msgstr "Zeitraster" msgid "From (hour)" msgstr "Von (Stunde)" msgid "Step (minutes)" msgstr "Schritt (Minuten)" msgid "To (hour)" msgstr "Nach (Stunde)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" "Bitte mindestens einen Tag auswählen, an dem die Wiederholung aktiv ist" msgid "Set time" msgstr "Zeit setzen" msgid "Hour" msgstr "Stunde" msgid "Minute" msgstr "Minute" msgid "Today" msgstr "Heute" msgid "Tomorrow" msgstr "Morgen" msgid "Selected task will be removed." msgstr "Die ausgewählte Aufgabe wird entfernt." msgid "Select date and time" msgstr "Datum und Zeit auswählen" msgid "Enable sound notification" msgstr "Klänge aktivieren" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarm-Warnung" msgid "Days" msgstr "Tage" msgid "Hours" msgstr "Stunden" msgid "Minutes" msgstr "Minuten" msgid "Alarm command" msgstr "Alarm-Befehl" msgid "Date period" msgstr "Tagesspanne" msgid "Months" msgstr "Monate" msgid "Repeat" msgstr "Wiederholen" msgid "Repeat in the following days" msgstr "An den folgenden Tagen wiederholen" msgid "Time period" msgstr "Zeitspanne" msgid "Start" msgstr "Anfang" msgid "End" msgstr "Ende" msgid "Interval" msgstr "Intervall" msgid "Ignore alarm when task expired offline" msgstr "" "Alarm ignorieren, wenn die Aufgabe abgelaufen ist, während Osmo nicht lief" msgid "Recurrent task" msgstr "Wiederkehrende Aufgabe" msgid "Enable" msgstr "Aktivieren" msgid "Edit task" msgstr "Aufgabe bearbeiten" msgid "Add task" msgstr "Aufgabe hinzufügen" msgid "Basic" msgstr "Einfach" msgid "Advanced" msgstr "Fortgeschritten" msgid "New Moon" msgstr "Neumond" msgid "Waxing Crescent Moon" msgstr "Zunehmender Mond" msgid "Quarter Moon" msgstr "Erstes Viertel" msgid "Waxing Gibbous Moon" msgstr "Zunehmender Mond" msgid "Full Moon" msgstr "Vollmond" msgid "Waning Gibbous Moon" msgstr "Abnehmender Mond" msgid "Last Quarter Moon" msgstr "Letztes Viertel" msgid "Waning Crescent Moon" msgstr "Abnehmender Mond" msgid "Cannot create backup!" msgstr "Die Sicherung kann nicht erstellt werden." msgid "Save backup" msgstr "Sicherung speichern" msgid "Password protection" msgstr "Passwortschutz" msgid "Enter password" msgstr "Geben Sie ein Passwort ein" msgid "Re-enter password" msgstr "Geben Sie das Passwort noch einmal ein" msgid "Please enter the password" msgstr "Geben Sie das Passwort ein" msgid "Passwords do not match!" msgstr "Die Passwörter stimmen nicht überein!" msgid "Backup file saved successfully!" msgstr "Sicherungsdatei erfolgreich gespeichert." msgid "Open backup file" msgstr "Sicherungsdatei öffnen" msgid "Osmo backup files (*.bck)" msgstr "Osmo-Sicherungsdateien (*.bck)" msgid "This is not Osmo backup file" msgstr "Dies ist keine Osmo-Sicherungsdatei" msgid "Incorrect password!" msgstr "Falsches Passwort!" msgid "All your data will be replaced with backup file content." msgstr "Alle Ihre Daten werden durch den Inhalt der Sicherungsdatei ersetzt." msgid "Osmo has to be restarted now..." msgstr "Osmo muss nun neu gestartet werden …" msgid "Please select address" msgstr "Bitte eine Adresse auswählen" msgid "First name" msgstr "Vorname" msgid "Last name" msgstr "Nachname" msgid "Second name" msgstr "Zweiter Vorname" msgid "Nickname" msgstr "Spitzname" msgid "Tags" msgstr "Markierungen" msgid "Name day date" msgstr "Namenstag" msgid "Home address" msgstr "Adresse (privat)" msgid "Home postcode" msgstr "Postleitzahl (privat)" msgid "Home city" msgstr "Stadt (privat)" msgid "Home state" msgstr "Bundesland (privat)" msgid "Home country" msgstr "Land (privat)" msgid "Organization" msgstr "Organisation" msgid "Department" msgstr "Abteilung" msgid "Work address" msgstr "Adresse (geschäftlich)" msgid "Work postcode" msgstr "Postleitzahl (geschäftlich)" msgid "Work city" msgstr "Stadt (geschäftlich)" msgid "Work state" msgstr "Bundesland (geschäftlich)" msgid "Work country" msgstr "Land (geschäftlich)" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefon (privat)" msgid "Home phone 2" msgstr "2. Telefon (privat)" msgid "Home phone 3" msgstr "3. Telefon (privat)" msgid "Home phone 4" msgstr "4. Telefon (privat)" msgid "Work phone" msgstr "Telefon (geschäftlich)" msgid "Work phone 2" msgstr "2. Telefon (geschäftlich)" msgid "Work phone 3" msgstr "3. Telefon (geschäftlich)" msgid "Work phone 4" msgstr "4. Telefon (geschäftlich)" msgid "Cell phone" msgstr "Mobiltelefon" msgid "Cell phone 2" msgstr "2. Mobiltelefon" msgid "Cell phone 3" msgstr "3. Mobiltelefon" msgid "Cell phone 4" msgstr "4. Mobiltelefon" msgid "E-Mail" msgstr "E-Mail-Adresse" msgid "E-Mail 2" msgstr "2. E-Mail-Adresse" msgid "E-Mail 3" msgstr "3. E-Mail-Adresse" msgid "E-Mail 4" msgstr "4. E-Mail-Adresse" msgid "WWW" msgstr "Homepage" msgid "WWW 2" msgstr "2. Homepage" msgid "WWW 3" msgstr "3. Homepage" msgid "WWW 4" msgstr "4. Homepage" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Foto" msgid "New contact" msgstr "Neuer Kontakt" msgid "Remove contact" msgstr "Kontakt entfernen" msgid "Show birthdays" msgstr "Geburtstage anzeigen" msgid "Show contact location on the map" msgstr "Position des Kontakts auf der Karte anzeigen" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Info" msgid "Clear" msgstr "Leeren" msgid "First Name" msgstr "Vorname" msgid "Last Name" msgstr "Nachname" msgid "All fields" msgstr "Alle Felder" msgid "Contact details" msgstr "Kontaktdetails" msgid "Close contact panel" msgstr "Kontaktanzeige schließen" msgid "The note has changed." msgstr "Die Notiz wurde geändert." msgid "Do you want to save it?" msgstr "Möchten Sie das speichern?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Worte" msgid "Lines" msgstr "Zeilen" msgid "Characters" msgstr "Zeichen" msgid "White characters" msgstr "Leerzeichen" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Dokument" msgid "Selection" msgstr "Markierung" msgid "Modified" msgstr "Geändert" msgid "New note" msgstr "Neue Notiz" msgid "Edit note" msgstr "Notiz bearbeiten" msgid "Delete note" msgstr "Notiz löschen" msgid "Save note" msgstr "Notiz speichern" msgid "Find" msgstr "Suchen" msgid "Toggle spell checker" msgstr "Rechtschreibprüfung an-/ausschalten" msgid "Bold" msgstr "Fett" msgid "Italic" msgstr "Kursiv" msgid "Underline" msgstr "Unterstrichen" msgid "Strikethrough" msgstr "Durchgestrichen" msgid "Highlight" msgstr "Hervorheben" msgid "Clear attributes" msgstr "Attribute löschen" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Aktuelles Datum und Zeit eingeben" msgid "Insert separator" msgstr "Trenner einfügen" msgid "Statistics" msgstr "Statistiken" msgid "Close editor" msgstr "Editor schließen" msgid "Note name" msgstr "Notizname" msgid "Read-only" msgstr "Schreibgeschützt" msgid "Line" msgstr "Zeile" msgid "Column" msgstr "Spalte" msgid "case sensitive" msgstr "Groß-/Kleinschreibung" msgid "Close find entry" msgstr "Suche schließen" msgid "Edit entry" msgstr "Eintrag bearbeiten" msgid "Remember cursor position" msgstr "Cursor-Position speichern" msgid "Selected note will be removed." msgstr "Die ausgewählte Notiz wird entfernt." msgid "No further data recovery will be possible." msgstr "Die Daten können dann nicht mehr wiederhergestellt werden." msgid "Add note" msgstr "Notiz hinzufügen" msgid "Plain" msgstr "Unverschlüsselt" msgid "Encrypted" msgstr "Verschlüsselt" msgid "Note type" msgstr "Notiztyp" msgid "Cannot open the note." msgstr "Die Notiz kann nicht geöffnet werden." msgid "encryption support is disabled" msgstr "Unterstützung für Verschlüsselung ist abgeschaltet" msgid "Authorization" msgstr "Legitimierung" msgid "year" msgid_plural "years" msgstr[0] "Jahr" msgstr[1] "Jahre" msgid "day" msgid_plural "days" msgstr[0] "Tag" msgstr[1] "Tage" msgid "hour" msgid_plural "hours" msgstr[0] "Stunde" msgstr[1] "Stunden" msgid "minute" msgid_plural "minutes" msgstr[0] "Minute" msgstr[1] "Minuten" msgid "second" msgid_plural "seconds" msgstr[0] "Sekunde" msgstr[1] "Sekunden" msgid "or" msgstr "oder" msgid "rounded down" msgstr "abgerundet" msgid "week" msgid_plural "weeks" msgstr[0] "Woche" msgstr[1] "Wochen" msgid "working day" msgid_plural "working days" msgstr[0] "Arbeitstag" msgstr[1] "Arbeitstage" msgid "time is ignored" msgstr "Zeit wird ignoriert" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "Wochenendtag" msgstr[1] "Wochenendtage" msgid "This calculator only supports dates after year 1." msgstr "Dieser Rechner unterstützt nur Datumsangaben nach dem Jahr 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "Wochenendtag ignoriert" msgstr[1] "Wochenendtage ignoriert" msgid "Date calculator" msgstr "Datumsrechner" msgid "Current date" msgstr "Aktuelles Datum" msgid "Set current date" msgstr "Aktuelles Datum setzen" msgid "Second" msgstr "Sekunde" msgid "Set current time" msgstr "Aktuelle Zeit setzen" msgid "Reset time" msgstr "Zeit zurücksetzen" msgid "First date and time" msgstr "Erstes Datum und Zeit" msgid "Second date and time" msgstr "Zweites Datum und Zeit" msgid "Alternative time units" msgstr "Alternative Zeiteinheiten" msgid "Result" msgstr "Ergebnis" msgid "Duration between two dates" msgstr "Zeitraum zwischen zwei Terminen" msgid "Operation" msgstr "Operation" msgid "add" msgstr "Addieren" msgid "subtract" msgstr "Subtrahieren" msgid "Date and time to add or subtract from" msgstr "Zu änderndes Datum" msgid "Years" msgstr "Jahre" msgid "Weeks" msgstr "Wochen" msgid "Seconds" msgstr "Sekunden" msgid "Ignore weekend days" msgstr "Wochenendtage ignorieren" msgid "Reset fields" msgstr "Felder zurücksetzen" msgid "Time to add or subtract" msgstr "Zeitraum, der addiert oder subtrahiert werden soll" msgid "Add to or subtract from a date" msgstr "Zeitraum zu einem Datum addieren" msgid "Cannot perform selected operation." msgstr "Die ausgewählte Aktion kann nicht durchgeführt werden" msgid "Task has been modified or removed." msgstr "Die Aufgabe wurde geändert oder gelöscht" msgid "Remind me later" msgstr "Später erinnern" msgid "Done" msgstr "Fertig" msgid "Show task" msgstr "Aufgabe anzeigen" msgid "Alarm warning!" msgstr "Alarmwarnung!" msgid "postponed" msgstr "verschoben" msgid "Day note" msgstr "Tagesnotiz" msgid "Events" msgstr "Ereignisse" msgid "Event" msgstr "Ereignis" msgid "Task" msgstr "Aufgabe" msgid "Birthday" msgstr "Geburtstag" msgid "Show Osmo" msgstr "Osmo anzeigen" msgid "event" msgid_plural "events" msgstr[0] "Ereignis" msgstr[1] "Ereignisse" msgid "No valid calendars defined" msgstr "Keine gültigen Kalender definiert" msgid "iCalendar events" msgstr "iCal-Ereignisse" msgid "Time" msgstr "Zeit" msgid "The list will be cleared and all entries will be lost." msgstr "Die Liste wird geleert und alle Einträge gehen verloren." msgid "event exported" msgid_plural "events exported" msgstr[0] "Ereignis exportiert" msgstr[1] "Ereignisse exportiert" msgid "iCalendar export" msgstr "iCalender-Export" msgid "Day Selector" msgstr "Auswahl des Tages" msgid "Use date period" msgstr "Tagesspanne benutzen" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Keine Aufgaben für das angegebene Datum gefunden." msgid "Save tasks" msgstr "Aufgaben speichern" msgid "tasks exported" msgstr "Aufgaben exportiert" msgid "was born" msgstr "wurde geboren" msgid "year old" msgid_plural "years old" msgstr[0] "Jahr alt" msgstr[1] "Jahre alt" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "Tag bis zum Jahresende" msgstr[1] "Tage bis zum Jahresende" msgid "the last day of the year" msgstr "der letzte Tag im Jahr" msgid "Day tasks" msgstr "Tagesaufgaben" msgid "Selected day note will be removed." msgstr "Die ausgewählte Tagesnotiz wird entfernt." msgid "Continue?" msgstr "Fortsetzen?" msgid "Previous year" msgstr "Vorheriges Jahr" msgid "Previous month" msgstr "Vorheriger Monat" msgid "Previous day" msgstr "Vorheriger Tag" msgid "Next day" msgstr "Nächster Tag" msgid "Next month" msgstr "Nächster Monat" msgid "Next year" msgstr "Nächstes Jahr" msgid "Full-year calendar" msgstr "Jahreskalender" msgid "Print calendar" msgstr "Kalender ausdrucken" msgid "Toggle day note panel" msgstr "Notizanzeige an-/ausschalten" msgid "Select day color" msgstr "Eine Tagesfarbe wählen" msgid "Browse notes" msgstr "Notizen durchsuchen" msgid "Browse iCal events" msgstr "Nach iCal-Ereignissen suchen" msgid "Export to iCal file" msgstr "In eine iCal-Datei exportieren" msgid "Previous and next month" msgstr "Vorheriger und nächster Monat" msgid "Close note panel" msgstr "Notizanzeige schließen" msgid "Clear text" msgstr "Text löschen" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Eine Farbe wählen" msgid "Name day" msgstr "Namenstag" msgid "Printing properties" msgstr "Druckeigenschaften" msgid "Month name" msgstr "Name des Monats" msgid "Day name" msgstr "Name des Tags" msgid "Fonts" msgstr "Schriftarten" msgid "Birthdays" msgstr "Geburtstage" msgid "Namedays" msgstr "Namenstage" msgid "Visible events" msgstr "Sichtbare Ereignisse" msgid "Padding" msgstr "Füllung" msgid "Event maximum length" msgstr "Maximallänge eines Ereignisses" msgid "Page orientation:" msgstr "Seitenausrichtung:" msgid "Portrait" msgstr "Hochformat" msgid "Landscape" msgstr "Querformat" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Schaltjahr" msgid "Yes" msgstr "Ja" msgid "No" msgstr "Nein" msgid "Chinese year animal" msgstr "Tierzeichen des chinesischen Jahrs" msgid "Number of days" msgstr "Anzahl von Tagen" msgid "Number of weeks" msgstr "Anzahl der Wochen" msgid "Number of weekend days" msgstr "Anzahl von Wochenendtagen" msgid "Year info" msgstr "Informationen zu diesem Jahr" msgid "Alternative view" msgstr "Alternative Ansicht" msgid "Started" msgstr "Angefangen" msgid "Finished" msgstr "Fertig" msgid "New task" msgstr "Neue Aufgabe" msgid "Remove task" msgstr "Aufgabe entfernen" msgid "Change due date to previous date" msgstr "Fälligkeitsdatum auf das vorherige Datum ändern" msgid "Change due date to next date" msgstr "Fälligkeitsdatum auf das nächste Datum ändern" msgid "Export tasks" msgstr "Aufgaben exportieren" msgid "Print visible tasks list" msgstr "Sichtbare Aufgaben drucken" msgid "Task details" msgstr "Aufgabendetails" msgid "Close description panel" msgstr "Beschreibungsanzeige schließen" msgid "Ctrl+PageUp" msgstr "Strg+BildHoch" msgid "switch to previous tab" msgstr "zum vorherigen Reiter umschalten" msgid "Ctrl+PageDn" msgstr "Strg+BildRunter" msgid "switch to next tab" msgstr "zum nächsten Reiter umschalten" msgid "switch to selected page" msgstr "zur ausgewählten Seite umschalten" msgid "show options window" msgstr "Optionen anzeigen" msgid "show about window" msgstr "Info anzeigen" msgid "toggle fullscreen mode" msgstr "Vollbild umschalten" msgid "PageUp/PageDn" msgstr "BildHoch/BildRunter" msgid "switch page in options and about tab" msgstr "Seite in den Reitern »Optionen« und »Über« wechseln" msgid "exit" msgstr "Beenden" msgid "Space" msgstr "Leertaste" msgid "select current date" msgstr "Aktuelles Datum wählen" msgid "Ctrl+Space" msgstr "Strg+Leertaste" msgid "toggle personal data visibility" msgstr "Sichtbarkeit der persönlichen Daten umschalten" msgid "Arrows" msgstr "Pfeilsymbole" msgid "change day" msgstr "Tag wechseln" msgid "Ctrl+Up/Down" msgstr "Strg+Hoch/Runter" msgid "scroll the contents in the day info panel" msgstr "den Inhalt des Info-Panels rollen" msgid "change month" msgstr "Monat wechseln" msgid "Home/End" msgstr "Pos1/Ende" msgid "change year" msgstr "Jahr wechseln" msgid "toggle calendars for the previous and next month" msgstr "Kalender für den vorherigen und nächsten Monat an-/ausschalten" msgid "day notes browser" msgstr "Tagesnotizen durchsuchen" msgid "assign background color to day note" msgstr "der Tagesnotiz eine Hintergrundfarbe zuweisen" msgid "date calculator" msgstr "Datumsrechner" msgid "show full-year calendar" msgstr "Jahreskalender zeigen" msgid "jump to date" msgstr "zum Datum springen" msgid "Delete" msgstr "Löschen" msgid "remove day note" msgstr "Tagesnotiz entfernen" msgid "Alt+Arrows" msgstr "Alt+Pfeile" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "Editor schließen" msgid "toggle bold" msgstr "Fett" msgid "toggle italic" msgstr "Kursiv" msgid "toggle underline" msgstr "Unterstrichen" msgid "toggle strikethrough" msgstr "Durchgestrichen" msgid "toggle highlight" msgstr "Hervorheben" msgid "Arrows Up/Down" msgstr "Hoch/Runter Pfeile" msgid "toggle alternative view" msgstr "Alternative Ansicht" msgid "year info" msgstr "Informationen zu diesem Jahr" msgid "set current year" msgstr "Aktuelles Jahr festlegen" msgid "close full-year calendar" msgstr "Jahreskalender schließen" msgid "Alt+a, Insert" msgstr "Alt+a, Einfügen" msgid "add task" msgstr "Aufgabe hinzufügen" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Strg+Enter" msgid "edit task" msgstr "Aufgabe bearbeiten" msgid "Alt+r, Delete" msgstr "Alt+r, Entf" msgid "remove task" msgstr "Aufgabe entfernen" msgid "toggle hidden tasks" msgstr "versteckte Aufgaben an-/ausschalten" msgid "activate search field" msgstr "Suchfeld aktivieren" msgid "Left, Right" msgstr "Links, Rechts" msgid "change category filter" msgstr "Kategoriefilter wechseln" msgid "close task info panel" msgstr "Aufgabeninformationen schließen" msgid "Insert" msgstr "Einfügen" msgid "add contact" msgstr "Kontakt hinzufügen" msgid "Ctrl+Enter" msgstr "Strg+Enter" msgid "edit contact" msgstr "Kontakt bearbeiten" msgid "remove contact" msgstr "Kontakt entfernen" msgid "change search mode" msgstr "Suchmodus ändern" msgid "close contact details panel" msgstr "Kontaktdetails schließen" msgid "Enter" msgstr "Eingabetaste" msgid "open note" msgstr "Notiz öffnen" msgid "add note" msgstr "Notiz hinzufügen" msgid "remove note" msgstr "Notiz entfernen" msgid "edit note name and category" msgstr "Notiznamen und -kategorie bearbeiten" msgid "close note editor" msgstr "Notizeditor schließen" msgid "save note" msgstr "Notiz speichern" msgid "find text" msgstr "Text suchen" msgid "clear selection attributes" msgstr "Auswahlattribute löschen" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO soll sich möglichst bequem bedienen lassen, weshalb es viele " "Tastenkürzel gibt. Hier ist die vollständige Liste:" msgid "Note editor" msgstr "Notizeditor" msgid "Selector" msgstr "Auswahl" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Ein praktischer persönlicher Planer" msgid "compiled on" msgstr "Übersetzt am" msgid "Programming" msgstr "Programmierung" msgid "Graphics" msgstr "Grafiken" msgid "Contributors" msgstr "Mitwirkende" msgid "Translators" msgstr "Übersetzer" msgid "Mailing lists" msgstr "Mailinglisten" msgid "Bug tracker" msgstr "Fehlererfassungssystem" msgid "Feature requests" msgstr "Funktionswünsche" msgid "Available modules" msgstr "Verfügbare Module" msgid "Compiled-in features" msgstr "Eingebundene Programmteile" msgid "iCalendar support" msgstr "iCalender-Unterstützung" msgid "Encrypted notes support" msgstr "Unterstützung für verschlüsselte Notizen" msgid "Backup support" msgstr "Unterstützung für Sicherungen" msgid "Printing support" msgstr "Druck-Unterstützung" msgid "Spell checker support" msgstr "Unterstützung für Rechtschreibprüfung" msgid "version" msgstr "Version" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Tastenkombinationen" msgid "License" msgstr "Lizenz" #~ msgid "handy personal organizer" #~ msgstr "Ein praktischer persönlicher Planer" osmo-0.4.2/po/cs.mo0000664000175000017500000011134713204320601010773 00000000000000 )(8 )878R8 X8 d8.o88888888 8 99 9)9 -9 79 B9 L98V9 9 99 999(9 :$: -:;:A:G:N:&]:$: :: :::; ;; ;&; <;F;U;Z;_;f; y; ;;*;;; ;;<<<1<C<"Y<|< << << < < < << = +=6=V=j=q=v=|= === =====.>!>> `>>>>> >>> > >>> > ? ? "? -? :?G?Z? s? ? ? ?? ??%?? ? @@(@ ;@G@ K@X@ g@t@}@@ @ @ @@@@+@ @ A A!AJCJ HJ TJ ^J hJrJ xJJJJ7JJKo KKK KK KKK( L2L BLPLiLlLtL LLLLLL LLLLL M:"M]MwMM M MM MM MMM N!N2N ;N GNTN]NbNfNlN ~NNNNN#NNOO 'O3O:OWO jO wO OOO O O"O O OOOOP P#P+P;PKP \PiP~P PP P!P"PQ"Q1QIQhQ Q QQ-QQQQ RR R$R 3R AR bRpRR%RR R R RR S "S-S!?SJaSSS SSSSSSTT T'T 6TDTaTiT pT |TTT T"TTT T TT3T3-U0aU6UUUU1UV9V?V DV PV\VtV }VVVVVVV VV+V WW#W3W#NWrWxW~WWW#WWWWWWWWXXX1X EX QX]X rXXXXXX X X X X X X X Y Y #Y .Y9Y >YHYNY RY^YuYYY YYY#YYY Z Z(Z ;ZGZbZ ~ZZZZ ZZ"Z[([1[C[&T[*{[ [[ [[ [ \\2\ 7\A\Q\ c\n\t\\\\ \\\ \ \\ \] ]]] -] 9] E] R])\]]]]]]]]$^&^9^P^h^w^^^^^ ^0^__,_ =_K_k____ __(__ ` ``0`B`W`bb :bEbUb2gbb bbbb bbcc-c @cKcPc acocc>cccc dd+d'Adidpdyddddd9d.d +e6eGe&We~e e e eee eeef ff(f =fIf0Of fffffffgg 8gYgngvg g ggggg0g-!hOh1Vh%hhhhh hhhi&i9iRiXi&riii iiiij jj $j1jAj Gj Rj ]j ijuj jjjjjjj k&k 9kDk0Jk{k k k kk kk kk k l ll5l Fl Rl`ldlvl%}ll llll l m&mCmLmPmWm_mdmjmmmmmm*mmmnn %n3n:nAnIn(cnnn,nno o#o CoPoVo \oho nozo~oooo o ooop!p)p-pBpKp[pbpqpwp ~pppppppp pp p q 'q 2q%=q cqmqqqqq qqqqq qq qr r rr-r=rMrRrWr `rkrqrxrr rrrrrrr-r+rs s)s=sLs _s issssss ssssss tt -t9t @tLt^t ot{ttt ttttttt tt t tuu)+u Uu_ufumuvuuuuuuuuuuuuvvv $v0v7vJv Yvev2hvvv%vv6v-2w&`www wwww w wwwx (xE4xzxxx6yKy]y ey py'{yy/yy z zQem} ƈ߈05 I T_cty}É -Fc | ۊ %"? b7l@ ##26V$ ŒЌD&k tՍ !5<Wik Ɏَ,+BZp Ï3ˏ!?[o4Ӑ2J#\2ґU,[ !Œ֒ dj\PZY$=Q:<*$ud6(lsTM lsB^KQ=|{1DR,Xk`>?tBz=yn;\q7CdGbg'@cv>WNVaR)q~- A4|?2D]LP@tbw<x1^o}qI'go] e+`~+.i#|4_mm4{v20VcfK966p rWZlyHuAP[;*8f"x ~Wf.%C a7k -jH`bI)[ +%"B(v5rL%xc F'wr j Sn03OJO:g5ZQAGa3 e} H&J0!^$MT8oEnGJ)7/K9S"Vy.w!hh]u,EmzMNtFs5/< p{RUik3[FS\Ue#X /-(D?z,>T&Y!281X*iC@hIYU&;L_ NO _9}p#:E0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2015-07-30 18:10+0000 Last-Translator: Jaroslav Lichtblau Language-Team: Czech (http://www.transifex.com/projects/p/osmo/language/cs/) Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; 0 pro vypnutíŠikovný osobní organizérO programuPřidat kontaktPřidat hlavičkuPřidat nový úkol po dvojkliku na seznam úkolůPřidat poznámkuPřidat úkolPřidat nebo odebrat od dataDalší informaceAdresaRozšířenéVěkPříkaz pro varováníVarování alarmuVarování alarmu!AlgoritmusVšeVšechny souboryVšechna poleVšechny souboryVšechny poznámkyVšechna data budou nahrazena obsahem ze záložního souboru.Alt+Směrové klávesyAlt+A, VložitAlt+E, Ctrl+EnterAlt+R, SmazatLze říci i taktoNáhradní zobrazeníJiž běží jiná kopie programu OSMO.VzhledVodnářOpravdu pokračovat?BeranŠipkaSměrové klávesyŠipka nahoru/dolůVzestupné řazení při prohlížeči denních poznámekMinimálně jeden modul musí být viditelný.AutorizaceDostupné modulyZálohovat dataZáložní soubor úspěšně uložen!Podpora zálohováníZákladníNejlepšíNarozeninyDatum narozeníBarva označení narozeninNarozeninySeznam narozeninBlogTučnéDoleProcházet události iCalProcházet poznámkyBug trackerBytůCVS (hodnoty oddělené čárkou) soubor (*.csv)KalendářSoubory kalendáře (*.ics)Písmo kalendářePoznámky kalendářeRakNelze vytvořit zálohu!Nelze vytvořit soubor.Nelze otevřít soubor.Nelze otevřít poznámku.Nelze provést vybranou operaci.Nelze číst soubor.KozorohRozlišuje velikost písmenKategorieKategorieMobilní telefonMobilní telefon 2Mobilní telefon 3Mobilní telefon 4Změnit datum vypršení na následující datumZměnit datum vypršení na předešlé datumZnakůZkontrolovat události od posledního spuštěníZvíře podle čínského kalendářeKruhMěstoSmazatZrušit formátováníSmazat textZavřít detaily kontaktuZavřít detaily úkoluZavřít editorZavřít hledáníZavřít panel poznámekBarvaBarva popisku u kontaktůBarva záznamů na příštích 7 dníBarva záznamů na dnešní denBarva záznamů v minulostiBarva odkazůBarvySloupecZkompilováno sKompreseDetaily kontaktuKontaktyPokračovat?Příspěvky odZeměVytvořenoCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+MezerníkCtrl+Up/DownAktuální datumZnačení dnešního dneBarva aktuálního dneAktuální měsícAktuální časPříští rokBarva kurzoruTloušťka ohraničení vybraného dnedd-mm-rrrrDatumDatum a čas od kterého ubírat nebo přidávatKalkulátor dataPísmo dataFormát dataFormát dataFormát hlavičky dataPodle dataDenVýběr dneKategorie dníKategorie dneJméno dnePoznámka na denZnačení události dnePoznámky na denČíslo dneDenní úkolyDnyDnů do narozeninSmazatMazat splněné úkoly bez potvrzeníSmazat poznámkuOdděleníPopisVypnout podtrhávání odkazůVypnutoOpravdu si přejete pokračovat?Přejete si pokračovat?Mám změny opravdu uložit?DokumentPesHotovoHotovo!DrakDatumDélka mezi dvěma datyE-mailE-mail 2E-mail 3E-mail 4E-mailový klientCHYBA: Nelze zapsat konfigurační souboryUpravit kategoriiUpravit kontaktUpravit záznamUpravit poznámkuUpravit úkolEditorElipsaPovolitZapnout malé kalendářePodbarvení vybraného dne v kalendářiPovolit upozorněníZapnout zvukové upozorněníZapnout kontrolu jazyka u denních poznámekZobrazovat ikonu v lištěZobrazovat tipyŠifrovanéPodpora šifrovaných poznámekŠifrováníKonecEnterVlož hesloChybaChyba tiskuEscUdálostOznačení událostíBarva událostíMaximální délka událostiUdálostiExportovatExportovat kontaktyExportovat úkolyExportovat do souboru iCalRychláFaxŽádat nové funkceTyp polePole pro exportSouborJméno souboruFiltrNajítUkončenoJménoPočáteční datum a časJménoVelikost písmaFontyKohoutRučně kreslený kruhOd (hodina)úplněkPlné datumZobrazit kalendář na celý rokBlíženciNastaveníVšeobecný příkaz pro oznamováníStředníGrafická úpravaSkupinaSkupinyZajícHashPomocníciSkrýtSkrýt splněné úkolySkrýt sloupec skupinyVysokáZvýraznitDomovAdresa domůMěstoZeměTelefon domůTelefon domů 2Telefon domů 3Telefon domů 4PSČKrajHome/EndVodorovněKůňHodinaHodinyAOLGadu-GaduICQJabberMSNSkypeTlenYahooIgnorovat alarm pokud úkol proběhne offlineIgnorovat události v denních poznámkáchIgnorovat dny víkenduImportovatImportovat kontaktyTyp pro importNesprávné heslo!InformaceInformaceJméno vstupního souboruVložitVložit aktuální datum a časVložit oddělovačVložit časyInternetIntervalProhoditKurzívaPísmo položkyJít na datumKlávesové zkratkyNa šířkuvelkáPříjmeníposlední čtvrťPoslední změnyPříjmeníVzhledPřestupný rokVlevoVlevo, VpravoLevVáhyLicenceŘádkaŘádekNízkámm-dd-rrrrmm/dd/rrKonferencePoskytovatel mapových podkladůOznačitOznačených dníVyhledat kontakty podle zadaného výrazustředníMinutaMinutyOstatníUpravenoUpravit ICAL parametryOpiceMěsícJméno měsíceMěsíceFáze měsíceJménoJmeninyJmeninyVelikost písma jmenJmeninynovPřidat kontaktNová poznámkaNový úkolZítraPříští měsícPříští rokPřezdívkaNeVe výběru nebyly nalezeny žádné URL adresy...Narozeniny nejsou určenyŽádné datumNebude možné žádné obnovení datNeměnit měsícVe vybraném souboru nebyly nalezeny žádné hodnoty.Nenalezeny žádné úkoly s daty vypršení.Nejsou definovány platné kalendářeč.NeníPoznámkaEditor poznámekPísmo poznámekJméno poznámkyTyp poznámkyPoznámkyNastavení poznámekNení co importovat.Počet polí na záznamPočet dníV kolika nadcházejících dnech hledat události (přednastaveno: 0)Počet víkendových dníPočet týdnůProgram OSMO byl vytvořen s důrazem na uživatelskou přívětivost. Proto obsahuje plno klávesových zkratek. Zde je jejich kompletní seznam:Otevřít URL odkazyOtevřít zálohuOperaceNastaveníOrganizaceZáložní soubor programu Osmo (*.bck)Je třeba restartovat Osmo...Je třeba restartovat Osmo k provedení změny.Jméno výstupního souboruVýstupní formátPotlačit nastavení jazykaBuvolBlokyOrientace strany:PageUp/PageDnChránit heslemHesla se neshodují!OsobníTelefonyFotografieVelikost fotografieVepřRybaNormálníProsím vložte hesloVybrat adresuPři zapnutém opakování je třeba vybrat alespoň jeden den.Nejprve je třeba vybrat soubor.Na výškuPSČPozdržet časNastaveníPředešlý a příští měsícVčeraMinulý měsícMinulý rokVytisknout kalendářVytisknout viditelný seznam úkolůNastavení tiskuPodpora tiskuPrioritaNaprogramovalprvní čtvrťDotazUkončitKrysaPoměrZnovu vlož hesloPouze pro čteníZáznamOpakovaný úkolZapamatovat pozici kurzoruPamatovat si poslední vybranou stranuZapamatovat si poslední vybranou kategoriiUpozorni mě pozdějiMožnosti upomínekOdstranit kontaktOdstranit úkolOpakovatOpakovat v následujících dnechOpakovat zvukový alarmVyčistit poleVymazat časObnovit dataVýsledekVpravoStřelecUložit zálohuUložit data po každé změněUložit poznámkuUložit úkolyŠtírVyhledáváníSekundaKonečné datum a časDruhé jménoSekundyVybrat CSV souborVybrat ICS souborVybrat písmo ...Vybrat barvuVybrat datum a časBarva vybraného dneVybrat poleVybrat výstupní souborVybrat fotografiiVybraný kontakt bude odstraněn.Vybraná poznámka dne bude odstraněna.Vybraný soubor existuje! Přepsat?Vybraný měsícVybraný rok a měsícVybraná poznámka bude odstraněna.Vybraný úkol bude odstraněn.Vybraný rokVýběrPřepínačNastavit absolutní cestu ke konfiguračním a datovým souborůmNastavit aktuální datumNastavit aktuální časNastavit výchozí formátNastavit časOvceZobrazit OsmoZobrazit narozeninyZobrazit kalendářZobrazit umístění kontaktu na mapěZobrazit kontaktyZobrazit jména dníZobrazit tlačítko ukončení v paneluÚkoly s vysokou prioritou zobrazit tučněZobrazit v panelu informacíZobrazit poznámkyZobrazit nastaveníZobrazit sekundyZobrazit malé okno kalendářeZobrazit úkolZobrazit úkolyZobrazit číslo týdneKrátké popisy ročního kalendářeSoučasné používání dvou a více spuštěných kopií programu OSMO může zapříčinit ztrátu dat.maláHadPřehrávač zvukuMezerníkSlovník kontroly jazykaPodpora kontroly jazykaZačátekSkrýt po startuZapočatoStátStatistikyKroky (minuty)PřeškrtnutéPřeškrtnout prošlé poznámkyPopisSyntaxSystémová lištaPozice záložekTagyÚkolDetaily úkoluÚloha byla upravena nebo odstraněna.Písmo detailů úkoluÚkolySeznam úkolůNastavení úkolůBýkVýraz %s bude nahrazen emailovou adresouVýraz %s bude nahrazen zvukovým souboremVýraz %s bude nahrazen webovou adresouTento seznam bude smazán a všechny záznamy zmizí.Poznámka byla změněna.silnéslabéKalkulačka podporuje pouze data po roce 1.Toto není záložní soubor programu OsmoTygrČasFormát časuPodle časuPřidat nebo odebrat časČasová linieDo (hodina)DnesOd dnešního dneZobrazit/skrýt panel poznámekPřepnout kontrolu jazykaZítraNahořePřekladateléTypAdresy URL budou otevřeny ve výchozím prohlížeči.PodtrženéNeznámýPoužít opakované datumPoužít první záznam jako hlavičkuFormát data a času stejný jako v systémuPlatnýHodnotaSvislePannaViditelné sloupceViditelné sloupce v prohlížeči narozeninViditelné událostiWebWeb 2Web 3Web 4ubývající srpekcouvající měsícVarováníVlnkadorůstající srpekdorůstající měsícWebový prohlížečČíslo týdneTýden začíná v pondělíVíkendových dnůBarva dní víkenduTýdnůBílých znakůSlovZaměstnáníAdresa domůMěsto zaměstnáníZemě zaměstnáníTelefon do zaměstnáníTelefon do zaměstnání 2Telefon do zaměstnání 3Telefon do zaměstnání 4PSČStát zaměstnánírrrr-dd-mmrrrr-mm-ddRokInformace o roceRokyAnoZnamení zvěrokruhuzkrácený název měsícezkrácený název dneaktivovat vyhledávací polepřidatpřidat kontaktpřidat poznámkupřidat úkolpřiřaď barvu pozadí pro denní poznámkyrozlišovat velikost písmenzměnit filtr kategoriízměnit denzměnit měsíczměnit mód vyhledávánízměnit roksmazat vlastnosti výběruzavřít panel poznámekzavřít editorzavřít kalendář na celý rokzavřít editor poznámekzavřít panel informací o úkolusestavenokontakt přidánkontakty přidánykontaktů přidánokontakt exportovánkontakty exportoványkontaktů exportovánokalkulátor datadendnydnůprohlížeč denních poznámekden v měsíciden měsíce bez počáteční nulyden do konce rokudny do konce rokudní do konce rokuupravit kontaktupravit jméno a kategorii poznámkyupravit úkolpodpora šifrování vypnutazáznamzáznamyzáznamůudálostudálostiudálostíudálost exportovánaudálosti exportoványudálostí exportovánoukončitnajít textplný název měsíceplný název dnehodinahodinyhodinhodinUdálosti iCalendarexport jako iCalendarSoubory iCalendarPodpora pro iCalendarjít na datumminutaminutyminutminutyměsícměsíceměsícůžádné záznamyzotevřít poznámkunebopozdrženoodstranit kontaktodstranit poznámkuodstranit poznámkuodstranit úkolzaokrouhleno dolůuložit poznámkuposunovat obsahy v panelu informací pro densekundasekundysekundvybrat aktuální datumnastav aktuální rokzobrazit okno o programuzobrazit kalendář na celý rokzobrazit okno nastaveníodebratzměnit stranu na záložce o programu a nastavenípřejít na další záložkupřejít na předešlou záložkupřejít na vybranou stranuúkoly exportoványposlední den rokuignorovat časčasydnespřepnout alternativní náhledpřepnout tučný textprohodit kalendáře na minulý a příští měsícpřepnout náhledzobrazit skryté úkolypřepnout zvýrazněnípřepnout kurzivupřepnout viditelnost osobních datpřepnout proškrtnutípřepnout podtrženíverzenarozentýdentýdnytýdnůvíkendový denvíkendové dnyvíkendových dnůvíkendový den ignorovánvíkendové dny ignoroványvíkendových dnů ignorovánopracovní denpracovní dnypracovních dnůrokrokůletroční inforok starýroky starýlet starýrok se stoletímrok bez stoletíosmo-0.4.2/po/pt.po0000664000175000017500000010024113204320601011003 00000000000000# Portuguese translation of Osmo # This file is distributed under the same license as the Osmo package. # Bruno Miguel , 2007-2008. # Bruno Castro Alves , 2012 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-06 09:53+0000\n" "Last-Translator: Bruno Castro Alves \n" "Language-Team: Portuguese\n" "Language: pt\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" msgid "Colors" msgstr "Cores" msgid "Color of contact tags" msgstr "Cor das tags dos contactos" msgid "Color of links" msgstr "Cor das hiperligações" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Tamanho da foto" msgid "Small" msgstr "Pequena" msgid "Medium" msgstr "Média" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Ocultar a coluna Grupos" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Idade" msgid "Birthday date" msgstr "Data de aniversário" msgid "Zodiac sign" msgstr "Signo do zodíaco" msgid "Contacts" msgstr "Contactos" msgid "Appearance" msgstr "Aparência" msgid "Miscellaneous" msgstr "Outras" msgid "Groups" msgstr "Grupos" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Algoritmo" msgid "Hashing" msgstr "Tipo de encriptação" msgid "Compression" msgstr "Compressão" msgid "Ratio" msgstr "Rácio" msgid "Fast" msgstr "Rápido" msgid "Good" msgstr "Bom" msgid "Best" msgstr "Óptimo" msgid "Type" msgstr "" msgid "Category" msgstr "Categoria" msgid "Last changes" msgstr "Últimas alterações" msgid "Created" msgstr "" msgid "Remember the last selected category" msgstr "" msgid "Use system format for date and time" msgstr "" msgid "Notes" msgstr "Notas" msgid "Encryption" msgstr "Encriptação" msgid "Visible columns" msgstr "Colunas visíveis" msgid "Categories" msgstr "Categorias" msgid "Notes options" msgstr "" msgid "Jump to date" msgstr "Ir para a data" msgid "Day" msgstr "Dia" msgid "Month" msgstr "Mês" msgid "Year" msgstr "Ano" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleccione o tipo de letra" msgid "None" msgstr "Nada" msgid "All items" msgstr "Todos os itens" msgid "Question" msgstr "Pergunta" msgid "Information" msgstr "Informação" msgid "Error" msgstr "Erro" msgid "Warning" msgstr "Aviso" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "O ficheiro seleccionado já existe. Deseja substituir?" msgid "Selected contact will be removed." msgstr "Os contactos seleccionados serão removidos." msgid "Are you sure?" msgstr "Tem a certeza?" msgid "No date" msgstr "Sem data" msgid "Select photo" msgstr "Seleccione a foto" msgid "Address" msgstr "Morada" msgid "Postcode" msgstr "Código Postal" msgid "City" msgstr "Cidade" msgid "State" msgstr "Concelho" msgid "Country" msgstr "País" msgid "Edit contact" msgstr "Editar contacto" msgid "Add contact" msgstr "Adicionar contacto" msgid "Personal" msgstr "Pessoal" msgid "Group" msgstr "Grupo" msgid "Home" msgstr "Morada" msgid "Work" msgstr "Empresa" msgid "Phones" msgstr "Telefones" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informação adicional" msgid "_OK" msgstr "" msgid "no entries" msgstr "sem entradas" msgid "entry" msgid_plural "entries" msgstr[0] "entrada" msgstr[1] "entradas" msgid "Calendar notes" msgstr "" msgid "Search" msgstr "Pesquisar" msgid "Filter" msgstr "" msgid "Current month" msgstr "" msgid "Selected month" msgstr "" msgid "Current year" msgstr "Corrente ano" msgid "Selected year" msgstr "" msgid "Selected month and year" msgstr "" msgid "All notes" msgstr "" msgid "Case sensitive" msgstr "" msgid "Strikethrough past day notes" msgstr "Riscar notas do dia passadas" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rato" msgid "Ox" msgstr "Boi" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lebre" msgid "Dragon" msgstr "Dragão" msgid "Snake" msgstr "Cobra" msgid "Horse" msgstr "Cavalo" msgid "Sheep" msgstr "Ovelha" msgid "Monkey" msgstr "Macaco" msgid "Fowl" msgstr "Galinha" msgid "Dog" msgstr "Cão" msgid "Pig" msgstr "Porco" msgid "Unknown" msgstr "Desconhecido" msgid "Aquarius" msgstr "Aquário" msgid "Pisces" msgstr "Peixes" msgid "Aries" msgstr "Carneiro" msgid "Taurus" msgstr "Touro" msgid "Gemini" msgstr "Gémeos" msgid "Cancer" msgstr "Caranguejo" msgid "Leo" msgstr "Leão" msgid "Virgo" msgstr "Virgem" msgid "Libra" msgstr "Balança" msgid "Scorpio" msgstr "Escorpião" msgid "Sagittarius" msgstr "Sagitário" msgid "Capricorn" msgstr "Capricórnio" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Posição dos separadores" msgid "Left" msgstr "Esquerda" msgid "Right" msgstr "Right" msgid "Top" msgstr "Topo" msgid "Bottom" msgstr "Fundo" msgid "Disable underline in links" msgstr "Desactivar o sublinhado nas hiperligações" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Pelo menos um módulo tem que estar activo." msgid "Calendar" msgstr "Calendário" msgid "Tasks" msgstr "Tarefas" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "Formato da data" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Formato da data" msgid "hours" msgstr "hora" msgid "Spell checker language" msgstr "" msgid "Enable tooltips" msgstr "Activar balões de sugestões" msgid "Remember last selected page" msgstr "Recordar a última página seleccionada" msgid "Save data after every modification" msgstr "" msgid "Web browser" msgstr "Navegador web" msgid "E-mail client" msgstr "Cliente de email" msgid "Sound player" msgstr "" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "Activar área de notificação" msgid "Start minimised" msgstr "Iniciar minimizado" msgid "Ignore day note events" msgstr "" msgid "General" msgstr "Geral" msgid "Hide" msgstr "Esconder" msgid "Helpers" msgstr "Programas externos" msgid "System tray" msgstr "Área de notificação" msgid "Preferences" msgstr "Configurações" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "mês" msgstr[1] "meses" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "" msgid "Event marker" msgstr "" msgid "Circle" msgstr "" msgid "Ellipse" msgstr "" msgid "Wave" msgstr "" msgid "Current day marker" msgstr "" msgid "Arrow" msgstr "" msgid "Free-hand circle" msgstr "" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Cor dos dias de fim-de-semana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cor do dia seleccionado" msgid "Event marker color" msgstr "" msgid "Current day marker color" msgstr "" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "Tipo de letra da data" msgid "Calendar font" msgstr "Tipo de letra do calendário" msgid "Note font" msgstr "Tipo de letra das notas" msgid "Enable block cursor" msgstr "Activar preenchimento" msgid "Cursor thickness" msgstr "Espessura do contorno" msgid "Thin" msgstr "Fino" msgid "Thick" msgstr "Grosso" msgid "Edit category" msgstr "" msgid "Color" msgstr "Cor" msgid "Name" msgstr "Nome" msgid "Select ICS file" msgstr "Seleccione o ficheiro ICS" msgid "All Files" msgstr "Todos os ficheiros" msgid "Calendar files (*.ics)" msgstr "Ficheiros de calendário (*.ics)" msgid "Modify ICAL parameters" msgstr "Alterar os parâmetros ICAL" msgid "Filename" msgstr "Nome do ficheiro" msgid "Options" msgstr "Configurações" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Válido" msgid "Description" msgstr "Descrição" msgid "Full date" msgstr "" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "Semana começa na Segunda-Feira" msgid "Show day names" msgstr "Mostrar o nome dos dias" msgid "No month change" msgstr "Sem mudança do mês" msgid "Show week numbers" msgstr "Mostrar o número das semanas" msgid "Simple view in full-year calendar" msgstr "Vista simples no calendário anual" msgid "Enable auxilary calendars" msgstr "" msgid "Ascending sorting in day notes browser" msgstr "" msgid "Enable spell checker in day notes" msgstr "" msgid "Current time" msgstr "Data actual" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Dia número" msgid "Today distance" msgstr "" msgid "Marked days" msgstr "Dias marcados" msgid "Week number" msgstr "Semana número" msgid "Weekend days" msgstr "Fim-de-semana número" msgid "Day category" msgstr "" msgid "Moon phase" msgstr "Fase da lua" msgid "Day notes" msgstr "Notas do dia" msgid "Day categories" msgstr "Categorias do dia" msgid "iCalendar files" msgstr "Ficheiros iCalendar" msgid "Show in day info panel" msgstr "Mostrar no painel de informação do dia" msgid "Tasks list" msgstr "" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "" msgid "Summary" msgstr "Resumo" msgid "Due date" msgstr "Data de término" msgid "Priority" msgstr "Prioridade" msgid "Error printing" msgstr "" msgid "No birthdays defined" msgstr "Sem datas de aniversário" msgid "Birthdays list" msgstr "Lista de aniversários" msgid "Days to birthday" msgstr "Dias até ao aniversário" msgid "today" msgstr "" msgid "Select CSV file" msgstr "Seleccione o ficheiro CVS" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Ficheiro CVS (*.cvs)" msgid "Please select file first." msgstr "" msgid "Import contacts" msgstr "Importar contactos" msgid "Import type" msgstr "" msgid "File" msgstr "" msgid "Input filename" msgstr "" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Nada a importar" msgid "contact added" msgid_plural "contacts added" msgstr[0] "contacto adicionado" msgstr[1] "contactos adicionados" msgid "of" msgstr "de" msgid "Record" msgstr "Registo" msgid "Number fields per record" msgstr "Número de campos por registo" msgid "Use first record as header" msgstr "Usar o primeiro registo como cabeçalho" msgid "Field type" msgstr "Tipo de campo" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Ficheiro sem entradas." msgid "Cannot read file." msgstr "Não é possível ler o ficheiro" msgid "Cannot open file." msgstr "Não é possível abrir o ficheiro" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Mostrar calendário" msgid "Show tasks" msgstr "Mostrar tarefas" msgid "Show contacts" msgstr "Mostrar contactos" msgid "Show notes" msgstr "Mostrar notas" msgid "Show options" msgstr "Mostrar opções" msgid "Quit" msgstr "Sair" msgid "Show small calendar window" msgstr "" msgid "Check for events since last run" msgstr "" msgid "Number of days to check forward for events (default: 0)" msgstr "" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "" msgid "Another copy of OSMO is already running." msgstr "O OSMO já está a ser executado." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "A execução simultânea de duas ou mais cópias do OSMO pode originar perda de " "dados." msgid "Do you really want to continue?" msgstr "Deseja continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baixa" msgid "High" msgstr "Alta" msgid "Done!" msgstr "Feito!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contacto exportado" msgstr[1] "Contactos exportados" msgid "Cannot create file." msgstr "Não é possível criar o ficheiro" msgid "Select output file" msgstr "Seleccione o ficheiro de destino" msgid "Export contacts" msgstr "Exportar contactos" msgid "Output format" msgstr "Formato de destino" msgid "Add header" msgstr "Adicionar cabeçalho" msgid "Fields to export" msgstr "Campos a exportar" msgid "All" msgstr "Todos" msgid "Invert" msgstr "Inverter" msgid "Select fields" msgstr "Seleccione os campos" msgid "Output filename" msgstr "Nome do destino" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Cor dos itens que expiram hoje" msgid "Color of items that are due in the next 7 days" msgstr "Cor dos itens que expiram nos próximos 7 dias" msgid "Color of items that are past due" msgstr "Cor dos itens que expiraram" msgid "Task info font" msgstr "Tipo de letra da informação da tarefa" msgid "Show in bold tasks with high priority" msgstr "Mostrar tarefas com prioridade alta em negrito" msgid "Hide completed tasks" msgstr "Ocultar tarefas completas" msgid "Delete completed tasks without confirmation" msgstr "Apagar tarefas completas sem pedir confirmação" msgid "Add new task when double clicked on tasks list" msgstr "" msgid "Postpone time" msgstr "" msgid "minutes" msgstr "" msgid "0 for disable" msgstr "" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "" msgid "Tasks options" msgstr "Configurações das tarefas" msgid "Reminder options" msgstr "" msgid "Insert timeline" msgstr "Inserir cronograma" msgid "Timeline" msgstr "Cronograma" msgid "From (hour)" msgstr "De (hora)" msgid "Step (minutes)" msgstr "Intervalo (em minutos)" msgid "To (hour)" msgstr "Para (hora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" msgid "Set time" msgstr "" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minuto" msgid "Today" msgstr "Hoje" msgid "Tomorrow" msgstr "Amanhã" msgid "Selected task will be removed." msgstr "As tarefas seleccionadas serão removidas" msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "" msgid "Days" msgstr "Dias" msgid "Hours" msgstr "Horas" msgid "Minutes" msgstr "Minutos" msgid "Alarm command" msgstr "" msgid "Date period" msgstr "" msgid "Months" msgstr "Meses" msgid "Repeat" msgstr "" msgid "Repeat in the following days" msgstr "" msgid "Time period" msgstr "" msgid "Start" msgstr "" msgid "End" msgstr "" msgid "Interval" msgstr "" msgid "Ignore alarm when task expired offline" msgstr "" msgid "Recurrent task" msgstr "" msgid "Enable" msgstr "" msgid "Edit task" msgstr "Editar Tarefa" msgid "Add task" msgstr "Adicionar Tarefa" msgid "Basic" msgstr "" msgid "Advanced" msgstr "" msgid "New Moon" msgstr "Lua Nova" msgid "Waxing Crescent Moon" msgstr "" msgid "Quarter Moon" msgstr "Quarto Crescente" msgid "Waxing Gibbous Moon" msgstr "" msgid "Full Moon" msgstr "Lua Cheia" msgid "Waning Gibbous Moon" msgstr "" msgid "Last Quarter Moon" msgstr "Última lua em quarto-crescente" msgid "Waning Crescent Moon" msgstr "" msgid "Cannot create backup!" msgstr "" msgid "Save backup" msgstr "Salvar backup" msgid "Password protection" msgstr "Proteção por senha" msgid "Enter password" msgstr "Insira a palavra-passe" msgid "Re-enter password" msgstr "Reinsira a palavra-passe" msgid "Please enter the password" msgstr "Por favor, insira a senha" msgid "Passwords do not match!" msgstr "Palavras-passe não coincidem!" msgid "Backup file saved successfully!" msgstr "Arquivo de backup salvado com sucesso!" msgid "Open backup file" msgstr "Abrir arquivo de backup" msgid "Osmo backup files (*.bck)" msgstr "Arquivo de backup do Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "" msgid "Incorrect password!" msgstr "Palavra-passe incorrecta" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "Nome" msgid "Last name" msgstr "Apelido" msgid "Second name" msgstr "Nome do meio" msgid "Nickname" msgstr "Alcunha" msgid "Tags" msgstr "" msgid "Name day date" msgstr "Dia do nome" msgid "Home address" msgstr "Morada de residência" msgid "Home postcode" msgstr "Código-postal de residência" msgid "Home city" msgstr "Cidade de residência" msgid "Home state" msgstr "Distrito de residência" msgid "Home country" msgstr "País de residência" msgid "Organization" msgstr "Organização" msgid "Department" msgstr "Departamento" msgid "Work address" msgstr "Morada do local de trabalho" msgid "Work postcode" msgstr "Código-postal do local de trabalho" msgid "Work city" msgstr "Cidade do local de trabalho" msgid "Work state" msgstr "Distrito do local de trabalho" msgid "Work country" msgstr "País local de trabalho" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefone de casa" msgid "Home phone 2" msgstr "Telefone de casa 2" msgid "Home phone 3" msgstr "Telefone de casa 3" msgid "Home phone 4" msgstr "Telefone de casa 4" msgid "Work phone" msgstr "Telefone do trabalho" msgid "Work phone 2" msgstr "Telefone do trabalho n.º 2" msgid "Work phone 3" msgstr "Telefone do trabalho n.º 3" msgid "Work phone 4" msgstr "Telefone do trabalho n.º 4" msgid "Cell phone" msgstr "Telemóvel" msgid "Cell phone 2" msgstr "Telemóvel n.º 2" msgid "Cell phone 3" msgstr "Telemóvel n.º 3" msgid "Cell phone 4" msgstr "Telemóvel n.º 4" msgid "E-Mail" msgstr "Email" msgid "E-Mail 2" msgstr "Email n.º 2" msgid "E-Mail 3" msgstr "Email n.º 3" msgid "E-Mail 4" msgstr "Email n.º 4" msgid "WWW" msgstr "Website" msgid "WWW 2" msgstr "Website n.º 2" msgid "WWW 3" msgstr "Website n.º 3" msgid "WWW 4" msgstr "Website n.º 4" msgid "IM Gadu-Gadu" msgstr "Contacto da rede Gadu-Gadu" msgid "IM Yahoo" msgstr "Contacto da rede Yahoo" msgid "IM MSN" msgstr "Contacto da rede MSN Messenger" msgid "IM ICQ" msgstr "Contacto da rede ICQ" msgid "IM AOL" msgstr "Contacto da rede AOL" msgid "IM Jabber" msgstr "Contacto da rede Jabber" msgid "IM Skype" msgstr "Contacto da rede Skype" msgid "IM Tlen" msgstr "Contacto da rede Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Foto" msgid "New contact" msgstr "Novo contacto" msgid "Remove contact" msgstr "Apagar contacto" msgid "Show birthdays" msgstr "Mostrar aniversários" msgid "Show contact location on the map" msgstr "" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Sobre" msgid "Clear" msgstr "Limpar" msgid "First Name" msgstr "Nome" msgid "Last Name" msgstr "Apelido" msgid "All fields" msgstr "Todos os campos" msgid "Contact details" msgstr "Detalhos do contacto" msgid "Close contact panel" msgstr "Fechar o painel Contactos" msgid "The note has changed." msgstr "A nota foi alterada" msgid "Do you want to save it?" msgstr "Deseja guardar?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "" msgid "Lines" msgstr "" msgid "Characters" msgstr "" msgid "White characters" msgstr "" msgid "Bytes" msgstr "" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "" msgid "New note" msgstr "Nova nota" msgid "Edit note" msgstr "Editar a nota" msgid "Delete note" msgstr "Apagar a nota" msgid "Save note" msgstr "Guardar a nota" msgid "Find" msgstr "Pesquisar" msgid "Toggle spell checker" msgstr "" msgid "Bold" msgstr "Negrito" msgid "Italic" msgstr "Itálico" msgid "Underline" msgstr "Sublinhado" msgid "Strikethrough" msgstr "Riscado" msgid "Highlight" msgstr "Destacar" msgid "Clear attributes" msgstr "Limpar os atributos" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "" msgid "Insert separator" msgstr "" msgid "Statistics" msgstr "" msgid "Close editor" msgstr "Fechar o editor" msgid "Note name" msgstr "Nome da nota" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "" msgid "Close find entry" msgstr "" msgid "Edit entry" msgstr "Editar entrada" msgid "Remember cursor position" msgstr "" msgid "Selected note will be removed." msgstr "A nota seleccionada será removida." msgid "No further data recovery will be possible." msgstr "Não será possível recuperar mais dados." msgid "Add note" msgstr "Adicionar a nota" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "" msgid "Note type" msgstr "" msgid "Cannot open the note." msgstr "" msgid "encryption support is disabled" msgstr "" msgid "Authorization" msgstr "Organização" msgid "year" msgid_plural "years" msgstr[0] "ano" msgstr[1] "anos" msgid "day" msgid_plural "days" msgstr[0] "dia" msgstr[1] "dias" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" msgid "or" msgstr "ou" msgid "rounded down" msgstr "arredondado por defeito" msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgid "This calculator only supports dates after year 1." msgstr "Esta calculadora permite apenas datas a partir do ano 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "Calculadora de datas" msgid "Current date" msgstr "Data actual" msgid "Set current date" msgstr "Definir a data actual" msgid "Second" msgstr "Segundo" msgid "Set current time" msgstr "Definir hora actual" msgid "Reset time" msgstr "Reiniciar a hora" msgid "First date and time" msgstr "Data e hora de início" msgid "Second date and time" msgstr "Data e hora de término" msgid "Alternative time units" msgstr "Unidades de tempo alternativas" msgid "Result" msgstr "Resultado" msgid "Duration between two dates" msgstr "Duração entre duas datas" msgid "Operation" msgstr "Operações" msgid "add" msgstr "adicionar" msgid "subtract" msgstr "subtrair" msgid "Date and time to add or subtract from" msgstr "Data e hora de onde subtrair ou adicionar" msgid "Years" msgstr "Anos" msgid "Weeks" msgstr "Semanas" msgid "Seconds" msgstr "Segundos" msgid "Ignore weekend days" msgstr "" msgid "Reset fields" msgstr "Reiniciar os campos" msgid "Time to add or subtract" msgstr "Tempo a adicionar ou subtrair" msgid "Add to or subtract from a date" msgstr "Adicionar ou subtrair de uma data" msgid "Cannot perform selected operation." msgstr "" msgid "Task has been modified or removed." msgstr "" msgid "Remind me later" msgstr "" msgid "Done" msgstr "Feito" msgid "Show task" msgstr "" msgid "Alarm warning!" msgstr "" msgid "postponed" msgstr "" msgid "Day note" msgstr "" msgid "Events" msgstr "" msgid "Event" msgstr "" msgid "Task" msgstr "Tarefa" msgid "Birthday" msgstr "Aniversário" msgid "Show Osmo" msgstr "" msgid "event" msgid_plural "events" msgstr[0] "" msgstr[1] "" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "" msgid "Time" msgstr "" msgid "The list will be cleared and all entries will be lost." msgstr "" msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgstr[1] "" msgid "iCalendar export" msgstr "" msgid "Day Selector" msgstr "" msgid "Use date period" msgstr "" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "" msgid "tasks exported" msgstr "" msgid "was born" msgstr "nasceu a" msgid "year old" msgid_plural "years old" msgstr[0] "ano de idade" msgstr[1] "anos de idade" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dia até ao final do ano" msgstr[1] "dias até ao final do ano" msgid "the last day of the year" msgstr "o último dia do ano" msgid "Day tasks" msgstr "Tarefas do dia" msgid "Selected day note will be removed." msgstr "" msgid "Continue?" msgstr "Continuar?" msgid "Previous year" msgstr "Ano anterior" msgid "Previous month" msgstr "Mês anterior" msgid "Previous day" msgstr "Dia anterior" msgid "Next day" msgstr "Próximo dia" msgid "Next month" msgstr "Próximo mês" msgid "Next year" msgstr "Próximo ano" msgid "Full-year calendar" msgstr "Calendário anual" msgid "Print calendar" msgstr "" msgid "Toggle day note panel" msgstr "Mudar para painel Notas do Dia" msgid "Select day color" msgstr "" msgid "Browse notes" msgstr "" msgid "Browse iCal events" msgstr "" msgid "Export to iCal file" msgstr "" msgid "Previous and next month" msgstr "" msgid "Close note panel" msgstr "Fechar painel de notas" msgid "Clear text" msgstr "Limpar texto" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Escolher cor" msgid "Name day" msgstr "" msgid "Printing properties" msgstr "" msgid "Month name" msgstr "" msgid "Day name" msgstr "" msgid "Fonts" msgstr "" msgid "Birthdays" msgstr "" msgid "Namedays" msgstr "" msgid "Visible events" msgstr "" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "" msgid "Portrait" msgstr "" msgid "Landscape" msgstr "" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "" msgid "Yes" msgstr "Sim" msgid "No" msgstr "Não" msgid "Chinese year animal" msgstr "" msgid "Number of days" msgstr "Número de dias" msgid "Number of weeks" msgstr "" msgid "Number of weekend days" msgstr "Fim-de-semana número" msgid "Year info" msgstr "Informação do ano" msgid "Alternative view" msgstr "" msgid "Started" msgstr "Iniciada" msgid "Finished" msgstr "" msgid "New task" msgstr "Nova tarefa" msgid "Remove task" msgstr "Apagar tarefa" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "" msgid "Task details" msgstr "Detalhes da tarefa" msgid "Close description panel" msgstr "Fechar painel informativo" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "mudar para o separador anterior" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "mudar para o próximo separador" msgid "switch to selected page" msgstr "mudar para a página selecionada" msgid "show options window" msgstr "mostrar janela de opções" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "mudar a página nos separadores Configurações e Sobre" msgid "exit" msgstr "sair" msgid "Space" msgstr "" msgid "select current date" msgstr "seleccionar a data actual" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "" msgid "Arrows" msgstr "" msgid "change day" msgstr "mudar o dia" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "" msgid "change month" msgstr "mudar o mês" msgid "Home/End" msgstr "" msgid "change year" msgstr "mudar o ano" msgid "toggle calendars for the previous and next month" msgstr "alternar calendários para os anterior e próximo meses" msgid "day notes browser" msgstr "" msgid "assign background color to day note" msgstr "definir uma cor de fundo para a nota do dia" msgid "date calculator" msgstr "calculadora de datas" msgid "show full-year calendar" msgstr "seleccionar o calendário anual" msgid "jump to date" msgstr "mudar para outra data" msgid "Delete" msgstr "" msgid "remove day note" msgstr "apagar a nota do dia" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "fechar o editor" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "" msgid "set current year" msgstr "definir o ano atual" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "adicionar tarefa" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "editar tarefa" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "remover tarefa" msgid "toggle hidden tasks" msgstr "mostrar/esconder tarefas ocultas " msgid "activate search field" msgstr "activar o campo de pesquisa" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "mudar o filtro das categorias" msgid "close task info panel" msgstr "fechar o painel de informação de tarefa" msgid "Insert" msgstr "Inserir" msgid "add contact" msgstr "adicionar contacto" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "editar contacto" msgid "remove contact" msgstr "remover contacto" msgid "change search mode" msgstr "mudar o modo de pesquisa" msgid "close contact details panel" msgstr "fechar o painel de detalhe do contacto" msgid "Enter" msgstr "" msgid "open note" msgstr "abrir nota" msgid "add note" msgstr "adicionar nota" msgid "remove note" msgstr "remover a nota" msgid "edit note name and category" msgstr "editar o nome e categoria da nota" msgid "close note editor" msgstr "Fechar editor de notas" msgid "save note" msgstr "guardar contacto" msgid "find text" msgstr "pesquisar texto" msgid "clear selection attributes" msgstr "limpar atributos da selecção" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "O OSMO foi desenvolvido tendo em mente a conveniência do usuário, por isso " "existem muitos atalhos de teclado. Aqui está a lista completa:" msgid "Note editor" msgstr "" msgid "Selector" msgstr "" msgid "Editor" msgstr "" msgid "A handy personal organizer" msgstr "Uma pequena grande agenda!" msgid "compiled on" msgstr "compilado em" msgid "Programming" msgstr "Programação" msgid "Graphics" msgstr "Gráficos" msgid "Contributors" msgstr "Contribuidores" msgid "Translators" msgstr "Tradutores" msgid "Mailing lists" msgstr "" msgid "Bug tracker" msgstr "" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "" msgid "Compiled-in features" msgstr "Funcionalidades escolhidas na compilação" msgid "iCalendar support" msgstr "" msgid "Encrypted notes support" msgstr "" msgid "Backup support" msgstr "" msgid "Printing support" msgstr "" msgid "Spell checker support" msgstr "" msgid "version" msgstr "versão" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Teclas de atalho" msgid "License" msgstr "Licença" osmo-0.4.2/po/sv.mo0000664000175000017500000006567713204320602011035 00000000000000 l + +++ + +.+&,/,8,W,g,o, s, ,, ,, , , , ,,,(, &-1- :-H-N-&T-${- ---- - -----. .&.*,.W.`. w......".. // %/0/ 9/ D/ Q/ ^/ k/v///// /// /00"0(0>0M0T0 i0u00 0 000 0 0 0 0 00 11%1>1 N1 X1 d1p1 t11 111 1 1 111+1 2 2 '232N2n22222222222 2!2 3 3 *3 43>3E3M3!T3v33 33 3333333444%494>4 B4M4^4c4l4s4x4 44 444 4 44444 5555%5*525:5?5T5f5 k5u5 z5 5 5 5 5 5 5 5 5555566 (646H6 M6Y6h6o666666 6 6 66 66 7 7 7$7)7-737;7A7 E7 P7\7c7j7 r77777 77 777 777 78 88 8 *848=8@8U8*]88"8888 8 8 88 889'9769n99 99 99 99999:: : :$:+:E:N: W: e:q: :: :::::; ; ;";+;0;4;:;L;S;l;#;;;; ;;; < <$<+< 1<"=< `<j<r<y<< <<<<< << <= =!&="H=k===== ==> >)> />9> H> V>d>%s> > >> > >>!>J?`?f?l?????? ?? ??@ @ @$@)@ .@";@^@m@ s@ ~@@6@@@@1@A #A /A;ASA \AfAlAAAA AA AAAA#ABB"B(B8BGBKBQBWB]BrBBBBB B BB BB CC C&C +C 8C BC OC ZC gC tC C C C CC CCC CCC CCD# D1D@D WD bDoD DDDD DD"DE.E7E*IE tEE EE E EEF F FF F1FBFRF dFqFF F F FF FFF F F F F)G/G>GRGjGsGGGGG0GHH9HAH JH UH`HJsHIIIIJ9JMJcJ,vJJJJ J J JJJ K K K%K7K OK&]KKKKKK7K"K LL,L 2L>L PL^LpLvL ~LLLL*LLLM,MAMIM]MqMMMMM MM MNNN.N=5NsNNNN NNNNNNOO3ODO#LO pO}O O O OOOOO O O OOPP4#PXPhP |P PP P P P P PP P PPQ2!QTQ fQ pQ |QQQQQQQ QQ RR,R;R JR'WRR RRR RRR0RS/S ES"OS rS}SSSS SS S SSSTTT"T6T>TFTMTSTkTtTTTT T TTTTTTTU UUU !U-U3USUeU jUwU {UUU U U U UUUUUU!V #V-V AVKV ZV fVrVVVVV V VVVVVW WW'W :WDWMWVW\WaWhWnWsW WWWWW WWWWWWWWX X X%X -X 8X FX QX \X jXuX~XX X@XX$X!Y$Y *Y5YNY^Y mY zYYY Y=YZ Z,Z 5Z @ZMZ aZnZrZZ Z Z ZZZZZ Z Z [[#[B[S[g[x[[[[ [ [ [[\ \ \!\;\@\Z\v\\\\\\\] ]%].]5]";]^]o]x]}]] ]]]]] ]] ] ^^%-^ S^$]^ ^^(^%^^^_ )_7_ <_F_ Y_g_v_)____ __ ``P6```"`!```` a aa*a)9a cama}aaaa,a!a b bb9bD=bbbb2bb b b$b c &c3c8cXcvc ~c cc ccc!c%c dddd0dCd Ld Wd bdmdddddd d dd ee0e 7eCeGeNe `e ke veeeeeeeef ff!f $f2f EfPfcfyf+ffff f fg#g,g%Ig og"zg(gg gg5g/h@h[h!lh hh+hh h hhii/i?iTi eisi{i iii iiiiijj3$jXjhj}j jjjjjjCkGk%^kkk kkkt6;%Tq&A2H P.b'tgz&G^Q_|F9y^57%>/]- UBPI_0f{RL or, k"8$<u#431-!7 3DnXSdnz.[Sp"|wm;Cs,\ #>?@WvqM@xV+y$ !`:m N'LF +k[sG jKi`TrElae6O<joc(:iB Q/Vg9)c*(Y{KDY)JChRbw45\~J2AMX*Id}E0p lNvxufOeh=~} H?ZU=a]Z81W0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBestBirthdayBirthday dateBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CharactersCheck for events since last runChinese year animalCircleCityClearClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnter passwordErrorError printingEventEvent marker colorEventsExportExport contactsExport to iCal fileFastFaxField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFontsFowlFrom (hour)Full MoonFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIgnore day note eventsImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No.NoneNoteNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOperationOptionsOrganizationOutput filenameOutput formatOxPage orientation:Passwords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlease select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysReset fieldsReset timeResultRightSagittariusSave data after every modificationSave noteScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contactsShow day namesShow in bold tasks with high priorityShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.TigerTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclose contact details panelclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind texthourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateshow full-year calendarsubtractswitch to next tabswitch to previous tabswitch to selected pagethe last day of the yeartodaytoggle calendars for the previous and next monthtoggle hidden taskstoggle personal data visibilityversionwas bornweekweeksyearyearsyear oldyears oldProject-Id-Version: osmo svn version 664 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2009-01-23 02:04+0100 Last-Translator: Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; 0 för inaktiveringEn praktisk dagplanerareOmLägg till kontaktLägg till rubrikLägg till en ny uppgift då uppgiftslistan dubbelklickasLägg till anteckningLägg till uppgiftLägg till eller dra ifrån från ett datum Kompletterande informationAdressÅlderAlarmkommandoAlarmvarningAlarmvarning!AlgoritmAllaAlla filerAlla fältAlla objektAlla anteckningarAlternativa tidsenheterAlternativ vyEn annat exemplar av OSMO körs redan.UtseendeVattumanÄr du säker?VädurPilUppåtgående ordning i bläddrare för daganteckningarMinst en modul måste vara synlig.BefogenhetTillgängliga modulerBästFödelsedagFödelsedagsdatumFödelsedagarFödelsedagslistaBloggFetstilNederkantBläddra bland iCal-händelserBläddra bland anteckningarByteCSV (comma-separated values)-filer (*.csv)KalenderKalendarierfiler (*.ics)Typsnitt för kalenderKalenderanteckningarKräftaKan inte skapa fil.Kan inte öppna filKan inte öppna anteckningKan inte utföra vald åtgärd.Kan inte läsa in fil.StenbockSkiftlägeskänsligKategorierKategoriMobiltelefonMobiltelefon 2Mobiltelefon 3Mobiltelefon 4TeckenLeta efter händelser sedan förra gången programmet kördesKinesiska kalenderårets djurCirkelStadTömRensa textStäng kontaktpanelStäng beskrivningspanelStäng redigerareStäng hitta-postStäng anteckningspanelFärgKontakttaggarnas färgLänkarnas färgFärgerKompilerat med följande funktionerKomprimeringKontaktdetaljerKontakterFortsätt?MedarbetareLandSkapadAktuellt datumAktuell månadAktuell tidAktuellt årMarkörfärgMarkörtjockhetDD-MM-ÅÅÅÅDatumDatum och tid att lägga till eller dra ifrån frånDatumberäknareTypsnitt för datumDatumformatDatumperiodDagDagväljareDagkategorierDagkategoriDagens namnDaganteckningDaganteckningarDagnummerDaguppgifterDagarDagar kvar till födelsedagRadera färdigställda uppgifter utan bekräftelseRadera anteckningAvdelningBeskrivningInaktivera understreck i länkarVill du verkligen fortsätta?Vill du spara den?HundKlarKlart!DrakeFörfallodagVaraktighet mellan två datumE-postadressE-postadress 2E-postadress 3E-postadress 4E-postklientFEL: Kan inte skapa konfigurationsfilerRedigera kontaktRedigera postRedigera anteckningRedigera uppgiftRedigerareEllipsAktiveraAktivera stavninskontrollerare i daganteckningarAktivera ikon i aktivitetsfältAktivera verktygstipsKrypteradStöd för krypterade anteckningarKrypteringSlutSkriv in lösenordFelFelutskrivningHändelseFärg för händelsemarkörHändelserExporteraExportera kontakterExportera till iCal-filSnabbFaxFälttypFält att exporteraFilnamnFilnamnFilterHittaFärdigställde uppgiftFörnamnFörsta datum och tidFörnamnTypsnittHönaFrån (timme)FullmåneHelårskalenderTvillingAllmäntAllmänt notifieringskommandoBraGrafikGruppGrupperHareHashningHjälpmedelDöljDölj färdigställda uppgifterDölj gruppkolumnHögFärgmarkeraHemHemadressHemstadHemlandHemtelefon Hemtelefon 2Hemtelefon 3Hemtelefon 4Postnummer för hemHemkommun/hemstatHästTimmeTimmarIgnorera daganteckningshändelserImporteraImportera kontakterImporttypFel lösenord!InformationInformationInfoga filnamnInfogaInfoga aktuellt datum och tidInfoga tidslinjeInternetIntervallInverteraKursivHoppa till datumSnabbtangenterLandskapStorEfternamnAvtagande halvmåneSenaste ändringarEfternamnSkottårVänsterLejonVågLicensRaderLågMM-DD-ÅÅÅÅMärkta dagarMellanMinutMinuterDiverseModifieradModifiera ICAL-parametrarApaMånadMånadens namnMånaderMånfasNamnNamnsdagNamnsdagsdatumNamnsdagarNymåneNy kontaktNy anteckningNy uppgiftNästa dagNästa månadNästa årSmeknamnNejInga födelsedagar angivnaInget datumInga ytterligare dataåterställningar kommer att vara möjligt.Inget månadsbyteInga poster hittades i markerad fil.NrIngetAnteckningTypsnitt för anteckningAnteckningsnamnAnteckningstypAnteckningarInställningar för anteckningarInget att importera.Nummerfält per postAntal dagarAntalet dagar att leta framåt efter händelser (standard: 0)Antal helgdagarAntal veckorÅtgärdAlternativOrganisationFilnamn för utdataUtdataformatOxeSidorientering:Lösenord stämmer inte!PersonligtTelefonerFotografiFotografistorlekGrisFiskVar god markera fil först.PorträttPostnummerSkjut upp tidInställningarFöregående och nästa månadFöregående dagFöregående månadFöregående årSkriv ut kalenderSkriv ut synlig uppgiftslistaEgenskaper för utskrivningStöd för utskrivningPrioritetProgrammeringHalvmåneFrågaAvslutaRåttaFörhållandeSkriv in lösenordet igenPostKom ihåg markörpositionKom ihåg senast valda sidaKom ihåg senast valda kategoriPåminn mig senareKom ihåg-inställningarTa bort kontaktTa bort uppgiftUpprepaUpprepa de följande dagarnaStäll om fältStäll om tidResultatHögerSkyttSpara data efter varje modifieringSpara anteckningScorpionSökSekundAndra datum och tidMellannamnSekunderMarkera CSV-filMarkera ICS-filVälj ett typsnitt...Välj färgVälj dagfärgMarkera fältMarkera utdatafilVälj fotografiMarkerad kontakt kommer att tas bort.Markerad Markerad fil existerar! Skriv över?Vald månadVald månad och årMarkerad anteckning kommer att tas bort.Markerad uppgift kommer att tas bort.Valt årStäll in aktuellt datumStäll in aktuell tidStäll in tidFårVisa OsmoVisa födelsedagarVisa kalenderVisa kontakterVisa namnsdagarVisa högprioriterade uppgifter i fetstilVisa anteckningarVisa alternativVisa litet kalenderfönsterVisa uppgiftVisa uppgifterVisa veckonummerEnkel vy i helårskalenderAtt använda två eller fler exemplar av OSMO samtidigt kan orsaka dataförlust.LitenOrmSpråk för stavningskontrollerareStöd för stavningskontrollerareStartStarta i minimerat lägeBörjade med uppgiftKommunStatistikStep (minuter)GenomstrykningGenomstryk föregående dags anteckningarSummeringAktivitetsfältPositioner för flikarTaggarUppgiftUppgiftsdetaljerUppgiften har modifierats eller tagits bort.Typsnitt för uppgiftsinformationUppgifterUppgiftslistaInställningar för uppgifterOxeListan kommer att tömmas och alla poster kommer att gå förlorade.Anteckningen har ändrats.TjockTunnDenna beräknare stöder bara datum efter år ett.TigerTidsformatTidsperiodTid att lägga till eller dra ifrånTidslinjeTill (timme)IdagVäxla panel för daganteckningVäxla stavningskontrollerareImorgonÖverkantÖversättareTypUnderstreckOkäntAnvänd datumperiodAnvänd första posten som rubrikAnvänd systemformatets datum och tidGiltigVärdeJungfruSynliga kolumnerSynliga händelserWebbsidaWebbsida 2Webbsida 3Webbsida 4Halvmåne i sista kvarteretAvtagande HalvmåneVarningVågHalvmåne i första kvarteretTilltagande halvmåneWebbläsareVeckonummerVeckan börjar på måndagHelgdagarFärg för helgdagarVeckorVita teckenOrdArbeteArbetsplatsadressArbetsstadArbetslandArbetstelefonArbetstelefon 2Arbetstelefon 3Arbetstelefon 4Postnummer för arbetsplatsArbetskommun/arbetsstatÅÅÅÅ-DD-MMÅÅÅÅ-MM-DDÅrInformation om årÅrJaStjärnteckenaktivera sökfältlägg tilllägg till kontaktlägg till anteckninglägg till uppgiftöverlåt bakgrundsfärg till daganteckningskiftlägeskänsligbyt kategorifilterbyt dagbyt månadbyt söklägebyt årstäng panelen för kontaktdetaljerstäng anteckningsredigerarestäng panel för uppgiftsinformationkompileratkontakt tillagdkontakter tillagdakontakt exporteradkontakter exporteradedatumberäknaredagdagardaganteckningsbläddraredag kvar till årets slutdagar kvar till årets slutredigera kontaktredigera namn och kategoriredigera uppgiftStöd för kryptering inaktiveratpostposterhändelsehändelserhändelse exporteradhändelser exporteradeavslutahitta nästatimmetimmartimmariCalendar-händelseriCalendar-exporteringiCalendar-filerStöd för iCalendarhoppa till datumminutminuterminutermånadmånaderinga posteröppna anteckningellerUppskjutenta bort kontaktta bort daganteckningta bort anteckningta bort uppgiftavrundat nedåtspara anteckningrulla innehållet i panelen för information om dagsekundsekundervälj aktuellt datumvisa helårskalenderdra ifrånväxla till nästa flikväxla till föregående flikväxla till markerad sidaÅrets sista dagidagväxla kalendarier för den föregående månaden och nästa månadväxla dolda uppgifterväxla synlighet för personliga dataVersionföddesveckaveckorårårår gammalår gammalosmo-0.4.2/po/da.mo0000664000175000017500000011177513204320601010757 00000000000000l+9 99: : ,:.7:f:o:x::::: : :: :: : : ; ;8; W; b;p; ;;;(; ;; ;< <<<&%<$L< q<<< <<<<<< << ==.=3=8=?= R= _=k=*q=== ===== >>"2>U> g>q> >> > > > >> > ??/?C?J?O?U? f?q?? ?????.?!@ 9@Z@i@p@w@ @@@ @ @@@@ @ @ @ A A A(A;A TA bA oA |AA AA%AA A AA B B(B ,B9B HB UB_BhBqB B B BBBB+B B B C C&CACJCjCCCCCCCCCCCCC D!D 0D >D KD VD `DjDqDyDDDDD!DEE (E2E JEUEYE_EnEtEEE EEEEEE EEFF F F&F7FI[IlI|IIIII I I II II I I J JJ J+J/J5J=JBJHJ LJWJ `J nJ|J J JJJJ JJJJJ J K KK!K *K8KGKPK YKeKnKwK K KKK!KKK*K L"L!>L`L{LLL L L L LL LLLL7M:MQMoaMMM MM NN*N(JNsN NNNNN NNNO OO O"O&O-O3OMO:cOOOO O OO O P P&PFPUPnPPP P PPPPPP PPPPQ#4QXQhQyQ QQQQ Q Q QQQ Q R"R 8R BRMRUR\RcR xRRRRR RRR RR S!S"@ScSSSSS S ST TT+T>TGT MTWT fT tT TTTT%TU U (U 5UBU ]U gUrU!UJUUU U VV'V=VCVSV[V aVlV {VVVV V VVV V"V WW W )W7W3>W3rW0W6WXQ$XvX|X1XXXX X XX Y YY$Y3YIY^YgYY YY+Y YYYY#Y"Z(Z.Z7Z=Z#MZqZZZZZZZZZZZ Z [ [ "[/[B[H[Y[_[ d[ q[ {[ [ [ [ [ [ [ [ [[ [[[ \\\\"\)\2\6\<\C\K\Q\h\\\ \\\#\\\ ] ]] .]:]U] q]~]]] ]]"] ^^$^6^&G^*n^ ^^ ^^ ^ ^_%_ *_4_D_ V_a_g_x___ _ ___ _ __ _ ` ` ``'` 7` C` O` \`)f```````aa$$aIa\asaaaaaaa a0a$b;bOb `bnbbbbb bb(bc +c 6c@cSceczcee2e5e EeCSe ee eee ee f ff +f5f :f EfQf `f8kffff fff%g+g4g =gKgSgWg \g0hg!g ggggh&!hHhWh ]hih{h hhhhhhhhi"i)i2iHi [iiioiiiiiii!j "j-j 6jCjRjaj"pj'j j0jj kkkk +k5kFk\ksk kkk4k(k)l9lPlWl_l vll l l llll l l ll lmm$.mSm emsm mmmm;m mn nn3n NnZn ^n inwn n nnn n nnnno.o 6o@o IoUo'oo ooooooopp p"puCuHuNu Uubu iusuzuuu0uuuuu vv1v 6vBvQvYvyvvvvvvv v vvv w ww )w3w:wBwJwZw`wfwmwswzw~w w wwww"wwwwx xx&x*x1x@x IxSx Xx dxrx xx xx x x x x xx'xy 6y7Ayyy&y1yyz zzz+z:zCzLzRzdzxz z5zz znzb{ {{{ { {{{*{| |&|E| J| T|a|p|| | ||||| ||}>}^}{} } } }} }}} }~+%~Q~h~ ~ ~ ~ ~~~~~~ ~1Hgz     %#1U^ox}  ŀ ـ  '5 U!v "ց  +H]mr{  Ƃ&ۂ2G _i { (΃QIO V cmÄ Ȅ҄   #. @ JU,m# ˅2195k;݆`W[6` ʇ+և  ,Jdm . ш܈$#=DKRY'jщ % 5? Xdz ϊ  />BKO R^gotyϋ &#Ae z  Ȍ$4Y%h) ō΍(,JZx- Ŏ/ݎ - >IOfxΏݏ   $ *8 JUfu%~ʐ! ;,ErÑڑ(89r!ƒ&ڒ8 @KT*kԓ  \( 7InqHAcOPGT15qt8N[/9o3P K^r'n)r?wHw3F (,d 5Yg{S2fh1: u/Wk9e$cR<v@jCp<`p |Eh?XD~X6! -h}9Ov MWK03r@'{)QpjgD}"&k>PJD 2td+Q a;i_ GV[]X$*bONW&BsF$y1o=T6]U mc)7%~o:!,#s8l.kztxIZ4]bJYxK;"!"U+mCF|R*q~w f`^aizy#%RSmZUTbjfGg?>J7L6C8B2\ v0E(Y[VI{|xeL@a#*-i=A.ABuyNMQ's4\Hu&_eZLS_>:;<0M-n%+Vz E54}/ll.d,=`^0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackground colorBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCounterCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay colorDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable background colorsDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGIT versionGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHeader background colorHeader foreground colorHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrevious/Next month's day colorPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow hidden filesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.The user config path option is deprecated. Use XDG environment variables instead.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowToo many links selected!TopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac sign_Add_Cancel_Clear_Close_Jump to_OK_Open_Paste_Remove_Saveabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to datelinks openedminuteminutesminutesmonthmonthsno entriesofopen URLsopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow document statisticsshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2017-09-19 09:44+0000 Last-Translator: pasp Language-Team: Danish (http://www.transifex.com/pasp/osmo/language/da/) Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 for at deaktivereEn nem personlig planlæggerOmTilføj kontaktTilføj hovedTilføj ny begivenhed når der dobbeltklikkes på begivenhedslistenTilføj noteTilføj begivenhedLæg til eller træk fra en datoYderligere infoAdresseAvanceretAlderAlarmkommandoAlarmadvarselAlarmadvarsel!AlgoritmeAlleAlle filerAlle felterAlle elementerAlle noterAlle dine data vil blive erstattet af kopifilens indholdAlt+pileAlt+a, indsætAlt+e, Ctrl+ReturAlt+r, SletAlternative tidsenhederAlternativ visningEn anden kopi af OSMO kører alleredeUdseendeVandmandEr du sikker!VædderPilPilePile op/nedStigende sortering i fremviseren for i dag-noterMindst et modul skal være synligGodkendelseTilgængelige modulerBaggrundsfarveLav sikkerhedskopi af dataKopifilen er gemt korrektUnderstøttelse af sikkerhedskopieringGrundlæggendeBedreFødselsdagFødselsdags datoFarve på fødselsdagsmarkørFødselsdagFødselsdags listeBlogFedBundGennemse iCal-begivenhederGennemse noterFejlregistreringByteCSV-filer (kommasepareret) (*.csv)KalenderKalenderfiler (*.ics)KalenderskrifttypeKalendernoterKrebsKan ikke oprette kopi!Kan ikke oprette filerKan ikke åbne filKan ikke åbne notenKan ikke udføre valgt handlingKan ikke læse filStenbukSkeln mellem store/små bogstaverKategorierKategoriMobiltelefonMobiltelefon 2Mobiltelefon 3Mobiltelefon 4Ændr forfaldsdato til næste datoÆndr forfaldsdato til foregående datoBogstaverKontroller for begivenheder siden sidste kørselDyr for kinesisk årCirkelByRydFjern attributterRyd tekstLuk kontaktpanelLuk beskrivelsespanelLuk redigeringsprogramLuk find-indgangLuk notepanelFarveFarve på kontaktmærkerFarve på element der forfalder i de kommende 7 dageFarve på element der er forfalden i dagFarve på elementer der er gået over tidFarve på henvisningerFarverKolonneKompilerede funktionerKomprimeringKontaktdetaljerKontakterFortsæt?BidragydereTællerLandOprettetCtrl+ReturCtrl+SideNedCtrl+SideOpCtrl+MellemrumCtrl+op/nedNuværende datoNuværende dagmarkørFarve på markør for nuværende dagNuværende månedKlokken er nuNuværende årMarkørfarveTykkelse på markørDD-MM-ÅÅÅÅDatoDato og tid hvorfra der skal lægges til eller trækkes fraDato-udregnerDatoskrifttypeDatoformatFormatsyntaks for datoTeksthovedformat for hovedDatoperiodeDagDagvælgerDagkategorierDagens kategoriDag-farveDagens navnDag noteMarkør af dagnoteDagens noterDagens nummerDagens begivenhederDageDage til fødselsdagSletSlet afsluttede begivenheder uden bekræftelseSlet noteAvdelingBeskrivelseDeaktiver baggrundsfarverDeaktiver understregning i henvisningerDeaktiveretVil du virkelig fortsætteØnsker du at fortsætte?Ønsker du at gemme denDokumentHundFærdigFærdig!DrageForfaldsdatoVarighed mellem to datoerE-postE-post 2E-post 3E-post 4E-postprogramFEJL: Kan ikke oprette konfigurationsfilerRediger kategoriRediger kontaktRediger indgangRediger noteRediger begivenhedRedigeringsprogramEllipseAktiverAktiver ekstra kalendereAktiver blokmarkørAktiver påmindelsesdialogAktiver lydpåmindelseAktiver stavekontrol i dagsnoterAktiver statusfeltAktiver værktøjsfifKrypteretUnderstøttelse af krypterede noterKrypteringSlutReturIndtast adgangskodeFejlUdskrivningsfejlEscHændelseBegivenhedsmarkørFarve på begivenhedsmarkør Maksimumlængde for begivenhedBegivenhederEksporterEksporter kontakterEksporter begivenhederEksporter til iCal-filHurtigFaxFunktionsønskerFelttypeFelter der skal eksporteresFilFilnavnFilterFindFærdigFornavnFørste dato og tidFornavnSkriftstørrelseSkrifttyperHøneFrihåndscirkelFra (time)FuldmåneFuld datoKalender for hele åretGIT-versionTvillingGenereltGlobal påmindelseskommandoGodGrafikGruppeGrupperHareHashingBaggrundsfarve for teksthovederForgrundsfarve for teksthovederHjælpereGemGem afsluttede begivenhederGem gruppekolonneHøjFremhævHjemHjemadresseHjembyHjemlandHjemmetelefonHjemmetelefon 2Hjemmetelefon 3Hjemmetelefon 4Hjem-postnummerHjemstatHjem/slutVandretHestTimeTimerIM AOLIM Gadu GaduIM ICQIM jabberIM MSNIM SkypeIM TlenIM YahooIgnorer alarm hvis begivenheden udløb frakobletIgnorer dagnotebegivenhederIgnorer weekenddageImporterImporter kontakterImporttypeForkert adgangskode!InfoInformationInddatafilnavnIndsætIndsæt nuværende dato og tid Indsæt seperatorIndsæt tidslinjeInternetIntervalInverterKursivSkriftstørrelse på punktGå til datoGenvejstastLandskabStorEfternavn3. kvarterSeneste ændringerEfternavnLayoutSkudårVenstreVenstre, højreLøveVægtLicensLinjeLinjerLavMM-DD-ÅÅÅÅMM/DD/ÅÅPostlisteKortleverandørMarkerMarkerede dageMatch kontakter med angiven strengMellemMinutMinutterDiverseÆndretÆndr ICAL-parametreAbeMånedMånedens navnMånederMånefaseNavnDagens navnNavnedagsdatoSkriftstørrelse på navnNavnedageNymåneNy kontaktNy noteNy begivenhedNæste dagNæste månedNæste årKælenavnNejIngen adresser fundet i markeringen ...Ingen fødselsdage defineretIngen datoDet vil ikke være muligt at genoprette yderligere dataSkift ikke månedIngen fortegnelser fundet i valgt fil.Ingen begivenheder fundet med den definerede datoIngen gyldig kalender defineretNej.IngenNoteNoteredigeringsprogramNoteskrifttypeNotenavnNotetypeNoterNoteindstillingerIntet at importere.Antal felter per fortegnelseAntal dageAntal dage til kontrol for begivenheder (standard: 0)Antal weekenddageAntal ugerOSMO blev designet med henblik på brugeranvendelighed, derfor er der mange genvejstaster. Her er hele listen:Åbn adressehenvisningerÅbn kopifilHandlingIndstillingerOrganisationOsmo-kopifiler (*.bck)Osmo skal nu genstartesOsmo skal genstarte for at træde i kraft.Filnavn for uddataUddataformatOverskriv lokale indstillingerOksePolstringSideretning:SideOp/SideNedBeskyttelse med adgangskodeAdgangskoderne er ikke ens!PersonligTelefonerBilledeBilledstørrelseGrisFiskAlmindeligIndtast venligst adgangskodenVælg venligst adresseVælg venligst mindst en dag når tilbagevendende er aktiveretVælg venligst en fil førstPortrætPostnummerUdsæt tidPræferencerForegående og næste månedForrige dagForegående månedForegående årForrige/næste måneds dag-farveUdskriv kalenderUdskriv den synlige liste over begivenhederUdskrivningsegenskaberUnderstøttelse af udskrivningPrioritetProgrammering1. kvarterSpørgsmålAfslutRotteForholdIndtast adgangskoden igenSkrivebeskyttetFortegnelseTilbagevendende begivenhedHusk markørpositionHusk sidst valgte sideHusk den sidst valgte kategoriPåmind mig senereIndstillinger for påmindelseFjern kontaktFjern begivenhedGentagGentag i de følgende dageGentag lydalarmRyd felterNulstil tidenGendan dataResultatHøjreSkytteGem en kopiGem data efter hver eneste ændringGem noteGem begivenhederSkorpionSøgSekundAnden dato og tidEfternavnSekunderVælg CSV-filVælg ICS-filVælg en skrifttypeVælg farveVælg dato og tidVælg dagens farveVælg felterVælg uddatafilVælg billedeValgt kontakt vil blive fjernetValgte dagnote vil blive fjernetDen valgte fil findes! Overskriv?Valgt månedValgt måned og årValgt note vil blive fjernetValgt begivenhed vil blive fjernetValgt årMarkeringVælgerVælg nuværende datoVælg nuværende klokkeslætAngiv standardformatVælg tidspunktFårFra OsmoVis fødselsdageVis kalenderVis kontaktlokation på kortetVis kontakterVis navne på dageneVis afslutningsknap i værktøjslinjenVis skjulte filerVis med fed skrift begivenheder med høj prioritetVis i infopanel for dagVis noterVis indstillingerVis sekunderVis lille kalendervindueVis begivenhedVis begivenhederVis ugenumreSimpel visning i kalender for hele åretAnvendelse af to eller flere versioner af OSMO på samme tid kan medføre datatabLilleSlangeLydafspillerMellemrumSprog for stavekontrol Understøttelse af stavekontrolStartStart minimeretBegyndtStatStatistikSkridt (minutter)GennemstregGennemstreg forrige dags noterOpsummeringSyntaksStatusfeltFanebladspositionMærkaterBegivenhedDetaljer for begivenhedBegivenheden er blevet ændret eller fjernetSkrifttype for info om begivenhederBegivenhederListe over begivenhederIndstillinger for begivenhederTyr%s mønstret vil blive erstattet med e-postadresse%s mønstret vil blive erstattet med lydfilnavnet%s mønstret vil bliver erstattet med internetadresseDenne liste vil blive ryddet og alt indhold vil være tabt.Noten er blevet ændret.Brugerindstillingen for konfigurationsstien er forældet. Brug XDG-miljøvariabler i stedet for.TykTyndDenne lommeregner fungerer kun med datoer efter år 1.Dette er ikke en Osmo-kopifilTigerTidTidsformatTidsperiodeTid der skal lægges til eller trækkes fraTidslinjeTil (time)I dagDagens afstandSlå dagens notepanel til/fraSlå stavekontrol til/frai morgenFor mange valgte henvisninger!TopOversættereTypeAdresser vil blive åbnet i standardbrowseren.UnderstregUkendtBrug datoperiodeAnvend første fortegnelse som hovedAnvend systemformat for dato og tidGyldigVærdiLodretJomfruSynlige kolonnerSynlige kolonner i fødseldagsfremviserSynlige begivenhederWWWWWW 2WWW 3WWW 4Aftagende halvmåneAftagende gibbousmåneAdvarselBølgeTiltagende halvmåneTiltagende gibbousmåneInternetbrowserUgenummerUgen starter om mandagenWeekenddageFarve for weekenddageUgerHvide bogstaverOrdArbejdeArbejdsadresseArbejdsbyArbejdslandArbejdstelefonArbejdstelefon 2Arbejdstelefon 3Arbejdstelefon 4ArbejdspostnummerArbejdsstatÅÅÅÅ-DD-MMÅÅÅÅ-MM-DDÅrÅr-infoÅrJaStjernetegn_Tilføj_Afbryd_Ryd_Luk_Gå til_O.k._Åbn_Indsæt_Fjern_Gemforkortet månedsnavnforkortet ugedagsnavnaktiver søgefeltlæg tiltilføj kontakttilføj notetilføj begivenhedtilføj baggrundsfarve til daglig noteForskel på store og små bogstaverskift kategorifilterskift dagskift månedskift søgetilstandskift årfjern valgte attributterluk panel for kontaktdetaljerluk redigeringsprogramluk kalender for hele åretluk noteredigeringsprogramluk informationspanel for begivenhedkompileret denkontakt tilføjetkontakter tilføjetkontakt eksporteretkontakter eksporteretdatoudregnerdagdagefremviser for dagnoterdag i månedendag i måneden uden foranstillede nullerdag til årets udløbdage til årets udløbrediger kontaktrediger notenavn og -kategorirediger begivenhedUnderstøttelse for kryptering er deaktiveretpostposterbegivenhedbegivenhederbegivenhed eksporteretbegivenheder eksporteretlukfind tekstfuld månedsnavnfuld ugedagsnavntimetimertimeriCalendar-begivenhederiCalendar-eksportiCalender-filerUnderstøttelse af iCalendarspring til datohenvisninger blev åbnetminutminutterminuttermånedmånederIngen posterafåbn adresseråbn noteellerudsatfjern kontaktfjern daglig notefjern notefjern begivenhedafrundet nedadgem noteRul indholdet i infopanelet for dagensekundsekundervælg nuværende datobestem nuværende årvis vinduet omvis dokumentstatistikVis kalender for hele åretvis vinduet indstillingertræk fraskift side i indstillinger og om fanebladet skift til næste fanebladskift til tidligere fanebladskift til den valgte sidebegivenhed eksporteretårets sidste dagtiden ignorerestideri dagslå alternativ visning til/fraslå fed til/fraskift mellem kalender for den tidligere og næste månedskift fuldskærmstilstandslå skjulte begivenheder til/fraslå fremhævet til/fraslå kursiv til/fraslå visning af personlig data fra/tilslå gennemstreget til/fraslå understregning til/fraversionblev fødtugeugerweekenddagweekenddageweekenddag ignoreretweekenddage ignoreretarbejdsdagarbejdsdageårårår-infoår gammelår gammelår med århundredeår uden århundredeosmo-0.4.2/po/sr.po0000664000175000017500000013430513204320601011014 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # markosm , 2017 # markosm , 2015 msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2017-09-21 21:47+0000\n" "Last-Translator: markosm \n" "Language-Team: Serbian (http://www.transifex.com/pasp/osmo/language/sr/)\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "Colors" msgstr "Боје" msgid "Color of contact tags" msgstr "Боја за ознаке контакта" msgid "Color of links" msgstr "Боја линкова" msgid "Font size" msgstr "Величина фонта" msgid "Name font size" msgstr "Величина фонта за име" msgid "Item font size" msgstr "Величина фонта за ставку" msgid "Photo size" msgstr "Величина фотографије" msgid "Small" msgstr "Мала" msgid "Medium" msgstr "Средња" msgid "Large" msgstr "Велика" msgid "Hide group column" msgstr "Сакриј колону групе" msgid "Maps provider" msgstr "Провајдер мапа" msgid "Age" msgstr "Године" msgid "Birthday date" msgstr "Датум рођења" msgid "Zodiac sign" msgstr "Знаци зодијака" msgid "Contacts" msgstr "Контакти" msgid "Appearance" msgstr "Изглед" msgid "Miscellaneous" msgstr "Остало" msgid "Groups" msgstr "Групе" msgid "Visible columns in birthday browser" msgstr "Видљиве колоне у прегледачу рођендана" msgid "Algorithm" msgstr "Алгоритам" msgid "Hashing" msgstr "Хеширање" msgid "Compression" msgstr "Компресија" msgid "Ratio" msgstr "Однос" msgid "Fast" msgstr "Брз" msgid "Good" msgstr "Добар" msgid "Best" msgstr "Најбољи" msgid "Type" msgstr "Тип" msgid "Category" msgstr "Категорија" msgid "Last changes" msgstr "Последње напомене" msgid "Created" msgstr "Креирано" msgid "Remember the last selected category" msgstr "Запамти последњу одабрану категорију" msgid "Use system format for date and time" msgstr "Користи системски формат за датум и време" msgid "Notes" msgstr "Напомене" msgid "Encryption" msgstr "Шифровање" msgid "Visible columns" msgstr "Видљиве колоне" msgid "Categories" msgstr "Категорије" msgid "Notes options" msgstr "Опције напомена" msgid "Jump to date" msgstr "Пребаци на датум" msgid "Day" msgstr "Дан" msgid "Month" msgstr "Месец" msgid "Year" msgstr "Година" msgid "_Cancel" msgstr "_Откажи" msgid "_Jump to" msgstr "_Скочи на" msgid "Select a font..." msgstr "Одабери фонт..." msgid "None" msgstr "Ниједан" msgid "All items" msgstr "Све ставке" msgid "Question" msgstr "Питање" msgid "Information" msgstr "Информација" msgid "Error" msgstr "Грешка" msgid "Warning" msgstr "Упозорење" msgid "Show hidden files" msgstr "Прикажи скривене фајлове" msgid "_Save" msgstr "_Сачувај" msgid "_Open" msgstr "_Отвори" msgid "Selected file exist! Overwrite?" msgstr "Одабрани фајл постоји! Да га пребришем?" msgid "Selected contact will be removed." msgstr "Одабрани контакт ће бити обрисан." msgid "Are you sure?" msgstr "Да ли сте сигурни?" msgid "No date" msgstr "Без датума" msgid "Select photo" msgstr "Одабери фото" msgid "Address" msgstr "Адреса" msgid "Postcode" msgstr "Поштански број" msgid "City" msgstr "Град" msgid "State" msgstr "Држава" msgid "Country" msgstr "Земља" msgid "Edit contact" msgstr "Измени контакт" msgid "Add contact" msgstr "Додај контакт" msgid "Personal" msgstr "Лично" msgid "Group" msgstr "Група" msgid "Home" msgstr "Кућа" msgid "Work" msgstr "Посао" msgid "Phones" msgstr "Телефони" msgid "Internet" msgstr "Интернет" msgid "Additional info" msgstr "Додатни инфо" msgid "_OK" msgstr "_У реду" msgid "no entries" msgstr "без ставки" msgid "entry" msgid_plural "entries" msgstr[0] "унос" msgstr[1] "уноса" msgstr[2] "уноси" msgid "Calendar notes" msgstr "Напомене календара" msgid "Search" msgstr "Претражи" msgid "Filter" msgstr "Филтер" msgid "Current month" msgstr "Текући месец" msgid "Selected month" msgstr "Одабрани месец" msgid "Current year" msgstr "Текућа година" msgid "Selected year" msgstr "Одабрана година" msgid "Selected month and year" msgstr "Одабрани месец и година" msgid "All notes" msgstr "Све напомене" msgid "Case sensitive" msgstr "Осетљив предмет" msgid "Strikethrough past day notes" msgstr "Прецртај прошле дневне напомене" msgid "Date" msgstr "Датум" msgid "Note" msgstr "Напомена" msgid "_Close" msgstr "_Затвори" msgid "Rat" msgstr "Rat" msgid "Ox" msgstr "Во" msgid "Tiger" msgstr "Тигар" msgid "Hare" msgstr "Зец" msgid "Dragon" msgstr "Aждаја" msgid "Snake" msgstr "Змија" msgid "Horse" msgstr "Коњ" msgid "Sheep" msgstr "Овца" msgid "Monkey" msgstr "Мајмун" msgid "Fowl" msgstr "Петао" msgid "Dog" msgstr "Пас" msgid "Pig" msgstr "Свиња" msgid "Unknown" msgstr "Непознато" msgid "Aquarius" msgstr "Водолија" msgid "Pisces" msgstr "Рибе" msgid "Aries" msgstr "Ован" msgid "Taurus" msgstr "Бик" msgid "Gemini" msgstr "Близанци" msgid "Cancer" msgstr "Рак" msgid "Leo" msgstr "Лав" msgid "Virgo" msgstr "Девица" msgid "Libra" msgstr "Вага" msgid "Scorpio" msgstr "Шкорпија" msgid "Sagittarius" msgstr "Стрелац" msgid "Capricorn" msgstr "Јарац" msgid "Osmo has to be restarted to take effect." msgstr "Osmo мора бити поново покренут да промене ступе на снагу." msgid "Layout" msgstr "Распоред" msgid "Vertical" msgstr "Усправно" msgid "Horizontal" msgstr "Водоравно" msgid "Tabs position" msgstr "Позиција језичака" msgid "Left" msgstr "Лево" msgid "Right" msgstr "Десно" msgid "Top" msgstr "Врх" msgid "Bottom" msgstr "Дно" msgid "Disable underline in links" msgstr "Онемогући подвучено у линковима" msgid "Show exit button in toolbar" msgstr "Прикажи дугме напусти у траци алата" msgid "At least one module must be visible." msgstr "Најмање један модул мора бити видљив." msgid "Calendar" msgstr "Календар" msgid "Tasks" msgstr "Задаци" msgid "Override locale settings" msgstr "Препиши локална подешавања" msgid "Date format" msgstr "Формат датума" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "Формат времена" msgid "hours" msgstr "сати" msgid "Spell checker language" msgstr "Провера језичког правописа" msgid "Enable tooltips" msgstr "Омогући искачуће прозоре" msgid "Remember last selected page" msgstr "Запамти последњу одабрану страну" msgid "Save data after every modification" msgstr "Сачувај податке после сваке измене" msgid "Web browser" msgstr "Веб прегледач" msgid "E-mail client" msgstr "Клијент е-поште" msgid "Sound player" msgstr "Звучни плејер" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Образац %s ће бити замењен са веб адресом" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Образац %s ће бити замењен са адресом е-поште" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Образац %s ће бити замењен са звучним фајлом" msgid "Enable system tray" msgstr "Омогући системску касету" msgid "Start minimised" msgstr "Покрени минимизовано" msgid "Ignore day note events" msgstr "Игнориши дневне напомене догађаја" msgid "General" msgstr "Опште" msgid "Hide" msgstr "Сакриј" msgid "Helpers" msgstr "Помагачи" msgid "System tray" msgstr "Системска касета" msgid "Preferences" msgstr "Подешавања" msgid "Syntax" msgstr "Синтакса" msgid "abbreviated weekday name" msgstr "Скраћено име викенда" msgid "full weekday name" msgstr "Пуно име викенд дана" msgid "abbreviated month name" msgstr "скраћено име месеца" msgid "full month name" msgstr "пуно име месеца" msgid "day of the month" msgstr "дан у месецу" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "дан у месецу без водеће нуле" msgid "month" msgid_plural "months" msgstr[0] "месец" msgstr[1] "месеци" msgstr[2] "месеци" msgid "year without century" msgstr "година без века" msgid "year with century" msgstr "година са веком" msgid "Date header format" msgstr "Формат заглавља датума" msgid "Set default format" msgstr "Подеси подразумевани формат" msgid "Date format syntax" msgstr "Формат синтаксе датума" msgid "Day note marker" msgstr "Маркер дневне напомене" msgid "Event marker" msgstr "Маркер догађаја" msgid "Circle" msgstr "Круг" msgid "Ellipse" msgstr "Елипса" msgid "Wave" msgstr "Талас" msgid "Current day marker" msgstr "Текући маркер дана" msgid "Arrow" msgstr "Стрелица" msgid "Free-hand circle" msgstr "Слободан круг" msgid "Background color" msgstr "Боја позадине" msgid "Header background color" msgstr "Боја позадине наслова" msgid "Header foreground color" msgstr "Предња боја наслова" msgid "Weekend days color" msgstr "Колор викенд дана" msgid "Day color" msgstr "Боја дана" msgid "Previous/Next month's day color" msgstr "Боја за претходни/следећи месец" msgid "Cursor color" msgstr "Боја курсора" msgid "Event marker color" msgstr "Боја маркера за догађаје" msgid "Current day marker color" msgstr "Боја тренутног дневног маркера" msgid "Birthday marker color" msgstr "Боја маркера за рођендане" msgid "Date font" msgstr "Фонт датума" msgid "Calendar font" msgstr "Фонт календара" msgid "Note font" msgstr "Фонт напомена" msgid "Enable block cursor" msgstr "Омогући блокирање курсора" msgid "Cursor thickness" msgstr "Дебљина курсора" msgid "Thin" msgstr "Танак" msgid "Thick" msgstr "Дебео" msgid "Edit category" msgstr "Измени категорију" msgid "Color" msgstr "Боја" msgid "Name" msgstr "Име" msgid "Select ICS file" msgstr "Одабери ICS фајл" msgid "All Files" msgstr "Сви фајлови" msgid "Calendar files (*.ics)" msgstr "Календар фајлови (*.ics)" msgid "Modify ICAL parameters" msgstr "Измени ICAL параметре" msgid "Filename" msgstr "Име фајла" msgid "Options" msgstr "Опције" msgid "Disabled" msgstr "Онемогућено" msgid "Valid" msgstr "Исправно" msgid "Description" msgstr "Опис" msgid "Full date" msgstr "Пун датум" msgid "Mark" msgstr "Ознака" msgid "Week start on Monday" msgstr "Семица почиње понедељком" msgid "Show day names" msgstr "Прикажи имена дана" msgid "No month change" msgstr "Без измене месеца" msgid "Show week numbers" msgstr "Прикажи бројеве седмица" msgid "Simple view in full-year calendar" msgstr "Једноставан преглед у пуном календару" msgid "Enable auxilary calendars" msgstr "Омогући помоћне календаре" msgid "Ascending sorting in day notes browser" msgstr "Узлазно сортирање у прегледачу дневних напомена" msgid "Enable spell checker in day notes" msgstr "Омогући проверу правописа у дневним напоменама" msgid "Current time" msgstr "Тренутно време" msgid "Show seconds" msgstr "Прикажи секунде" msgid "Day number" msgstr "Број дана" msgid "Today distance" msgstr "Данашње растојање" msgid "Marked days" msgstr "Означени дани" msgid "Week number" msgstr "Број недеља" msgid "Weekend days" msgstr "Дани викенда" msgid "Day category" msgstr "Категорија дана" msgid "Moon phase" msgstr "Месечеве фазе" msgid "Day notes" msgstr "Дневне напомене" msgid "Day categories" msgstr "Категорије дана" msgid "iCalendar files" msgstr "iCalendar фајлови" msgid "Show in day info panel" msgstr "Прикажи дневном инфо панелу" msgid "Tasks list" msgstr "Листа задатака" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Не." msgid "Summary" msgstr "Сажетак" msgid "Due date" msgstr "Због датума" msgid "Priority" msgstr "Приоритет" msgid "Error printing" msgstr "Грешка у штампању" msgid "No birthdays defined" msgstr "Без одређеног рођендана" msgid "Birthdays list" msgstr "Листа рођендана" msgid "Days to birthday" msgstr "Дана до рођендана" msgid "today" msgstr "данас" msgid "Select CSV file" msgstr "Одабери CSV фајл" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (вредности одвојене зарезима) фајлови (*.csv)" msgid "Please select file first." msgstr "Молим прво одаберите фајл" msgid "Import contacts" msgstr "Увези контакте" msgid "Import type" msgstr "Увези тип" msgid "File" msgstr "Фајл" msgid "Input filename" msgstr "Име улазног фајла" msgid "Import" msgstr "Увоз" msgid "Nothing to import." msgstr "Ништа за извоз." msgid "contact added" msgid_plural "contacts added" msgstr[0] "додати контакт" msgstr[1] "додати контакти" msgstr[2] "додати контакти" msgid "of" msgstr "од" msgid "Record" msgstr "Сними" msgid "Number fields per record" msgstr "Број поља за снимање" msgid "Use first record as header" msgstr "Користи први снимак као заглавље" msgid "Field type" msgstr "Тип поља" msgid "Value" msgstr "Вредност" msgid "No records found in selected file." msgstr "Није пронађен снимак у одабраном фајлу." msgid "Cannot read file." msgstr "Не могу читати фајл." msgid "Cannot open file." msgstr "Не могу отворити фајл." msgid "Counter" msgstr "Бројач" msgid "Show calendar" msgstr "Прикажи календар" msgid "Show tasks" msgstr "Прикажи задатке" msgid "Show contacts" msgstr "Прикажи контакте" msgid "Show notes" msgstr "Прикажи напомене" msgid "Show options" msgstr "Прикажи опције" msgid "Quit" msgstr "Напусти" msgid "Show small calendar window" msgstr "Прикажи мали прозор календара" msgid "Check for events since last run" msgstr "Проверите последње догађаје" msgid "Number of days to check forward for events (default: 0)" msgstr "Број дана за проверу према догађају (подразумевано: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "Подудари контакте са датим низом" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" "Опција путање корисничких подешавања је застарела. Уместо тога користите " "варијабле XDG окружења." msgid "ERROR: Cannot create config files" msgstr "ГРЕШКА: Не могу креирати конфигурационе фајлове" msgid "Another copy of OSMO is already running." msgstr "Још једна копија OSMO је већ покренута." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Симултано коришћење две или више копије OSMO могу изазвати губитак података." msgid "Do you really want to continue?" msgstr "Да ли стварно желите да наставите?" #, fuzzy, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" "Стара Осмо подшавања 1%s су пронађена. Конфигурациони фајлови и подаци биће " "копирани у XDG одговарајућу фасциклу. Избришите стару конфигурациону " "фасциклу након успешне миграције." #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Низак" msgid "High" msgstr "Висок" msgid "Done!" msgstr "Готово!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "извезен контакт" msgstr[1] "извезени контакти" msgstr[2] "извезени контакти" msgid "Cannot create file." msgstr "Не могу креирати фајл." msgid "Select output file" msgstr "Одабери излазни фајл" msgid "Export contacts" msgstr "Извези контакте" msgid "Output format" msgstr "Излазни формат" msgid "Add header" msgstr "Додај заглавље" msgid "Fields to export" msgstr "Поља за извоз" msgid "All" msgstr "Сви" msgid "Invert" msgstr "Обрни" msgid "Select fields" msgstr "Одабери поља" msgid "Output filename" msgstr "Име излазног фајла" msgid "Export" msgstr "Извези" msgid "Color of items that are due today" msgstr "Боја ставки која су за данас" msgid "Color of items that are due in the next 7 days" msgstr "Боја ставки које су за следећих 7 дана" msgid "Color of items that are past due" msgstr "Боја ставки које су доспеле" msgid "Task info font" msgstr "Фонт за инфо задатка" msgid "Show in bold tasks with high priority" msgstr "Прикажу у подебљаним задацима са високим приоритетом" msgid "Hide completed tasks" msgstr "Сакриј комплетиране задатке" msgid "Delete completed tasks without confirmation" msgstr "Уклони комплетиране задатке без потврде" msgid "Add new task when double clicked on tasks list" msgstr "Додај нови задатак кад дупло кликнеш на листу задатака" msgid "Postpone time" msgstr "Одложено време" msgid "minutes" msgstr "минути" msgid "0 for disable" msgstr "0 за онемогућење" msgid "Repeat sound alarm" msgstr "Понављај звучни аларм" msgid "times" msgstr "времена" msgid "Global notification command" msgstr "Глобална команда обавештења" msgid "Tasks options" msgstr "Опције задатака" msgid "Reminder options" msgstr "Опције потсетника" msgid "Insert timeline" msgstr "Insert timeline" msgid "Timeline" msgstr "Временска линија" msgid "From (hour)" msgstr "Од (сат)" msgid "Step (minutes)" msgstr "Корак (минути)" msgid "To (hour)" msgstr "To (hour)" msgid "_Paste" msgstr "_Налепи" msgid "Please select at least one day when recurrency is enabled." msgstr "Изаберите најмање један дан када је омогућен повратак." msgid "Set time" msgstr "Подеси време" msgid "Hour" msgstr "Сат" msgid "Minute" msgstr "Минут" msgid "Today" msgstr "Данас" msgid "Tomorrow" msgstr "Сутра" msgid "Selected task will be removed." msgstr "Одабрани задатак ће бити обрисан." msgid "Select date and time" msgstr "Одабери датум и време" msgid "Enable sound notification" msgstr "Омогући звучно обавештење" msgid "Enable notification dialog" msgstr "Омогући дијалог обавештења" msgid "Alarm warning" msgstr "Аларм упозорења" msgid "Days" msgstr "Дани" msgid "Hours" msgstr "Сати" msgid "Minutes" msgstr "Минути" msgid "Alarm command" msgstr "Команда аларма" msgid "Date period" msgstr "Период датума" msgid "Months" msgstr "Месеци" msgid "Repeat" msgstr "Понови" msgid "Repeat in the following days" msgstr "Понови у наредним данима" msgid "Time period" msgstr "Временски период" msgid "Start" msgstr "Почетак" msgid "End" msgstr "Крај" msgid "Interval" msgstr "Интервал" msgid "Ignore alarm when task expired offline" msgstr "Игнориши аларм када је задатак истекао ван мреже" msgid "Recurrent task" msgstr "Повратни задатак" msgid "Enable" msgstr "Омогући" msgid "Edit task" msgstr "Измени задатак" msgid "Add task" msgstr "Додај задатак" msgid "Basic" msgstr "Основно" msgid "Advanced" msgstr "Напредно" msgid "New Moon" msgstr "Нови месец" msgid "Waxing Crescent Moon" msgstr "Три четвртине месеца" msgid "Quarter Moon" msgstr "Четвртина месеца" msgid "Waxing Gibbous Moon" msgstr "Пун месец" msgid "Full Moon" msgstr "Пун месец" msgid "Waning Gibbous Moon" msgstr "Трећа четвртина месеца" msgid "Last Quarter Moon" msgstr "Последња четвртина месеца" msgid "Waning Crescent Moon" msgstr "Трећа четвртина месеца" msgid "Cannot create backup!" msgstr "Не могу креирати резервну копију!" msgid "Save backup" msgstr "Сачувај резервну копију" msgid "Password protection" msgstr "Заштита лозинке" msgid "Enter password" msgstr "Унеси лозинку" msgid "Re-enter password" msgstr "Поново унеси лозинку" msgid "Please enter the password" msgstr "Молим унесите лозинку" msgid "Passwords do not match!" msgstr "Лозинке се не подударају!" msgid "Backup file saved successfully!" msgstr "Резервна копија је успешно сачувана!" msgid "Open backup file" msgstr "Отвори резервну копију" msgid "Osmo backup files (*.bck)" msgstr "Osmo резервна копија (*.bck)" msgid "This is not Osmo backup file" msgstr "Ово није Osmo резервна копија" msgid "Incorrect password!" msgstr "Неисправна лозинка!" msgid "All your data will be replaced with backup file content." msgstr "Сви ваши подаци ће бити замењени са резервном копијом." msgid "Osmo has to be restarted now..." msgstr "Osmo ће бити поново покренут..." msgid "Please select address" msgstr "Молим одаберите адресу" msgid "First name" msgstr "Име" msgid "Last name" msgstr "Презиме" msgid "Second name" msgstr "Средње име" msgid "Nickname" msgstr "Надимак" msgid "Tags" msgstr "Ознаке" msgid "Name day date" msgstr "Датум имендана" msgid "Home address" msgstr "Кућна адреса" msgid "Home postcode" msgstr "Поштански број" msgid "Home city" msgstr "Место становања" msgid "Home state" msgstr "Држава" msgid "Home country" msgstr "Земља" msgid "Organization" msgstr "Организација" msgid "Department" msgstr "Одељење" msgid "Work address" msgstr "Адреса на послу" msgid "Work postcode" msgstr "Поштански број" msgid "Work city" msgstr "Град где је посао" msgid "Work state" msgstr "Држава где је посао" msgid "Work country" msgstr "Земља где је посао" msgid "Fax" msgstr "Факс" msgid "Home phone" msgstr "Кућни телефон" msgid "Home phone 2" msgstr "Кућни телефон 2" msgid "Home phone 3" msgstr "Кућни телефон 4" msgid "Home phone 4" msgstr "Кућни телефон 4" msgid "Work phone" msgstr "Телефон на послу" msgid "Work phone 2" msgstr "Телефон на послу 2" msgid "Work phone 3" msgstr "Телефон на послу 3" msgid "Work phone 4" msgstr "Телефон на послу 4" msgid "Cell phone" msgstr "Мобилни телефон" msgid "Cell phone 2" msgstr "Мобилни телефон 2" msgid "Cell phone 3" msgstr "Мобилни телефон 3" msgid "Cell phone 4" msgstr "Мобилни телефон 4" msgid "E-Mail" msgstr "E-пошта" msgid "E-Mail 2" msgstr "E-пошта 2" msgid "E-Mail 3" msgstr "E-пошта 3" msgid "E-Mail 4" msgstr "E-пошта 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Блог" msgid "Photo" msgstr "Фото" msgid "New contact" msgstr "Нови контакт" msgid "Remove contact" msgstr "Обриши контакт" msgid "Show birthdays" msgstr "Прикажи рођендане" msgid "Show contact location on the map" msgstr "Прикажи локацију контакта на мапи" msgid "Backup data" msgstr "Резервни подаци" msgid "Restore data" msgstr "Опорави податке" msgid "About" msgstr "О програму" msgid "Clear" msgstr "Очисти" msgid "First Name" msgstr "Име" msgid "Last Name" msgstr "Презиме" msgid "All fields" msgstr "Сва поља" msgid "Contact details" msgstr "Детаљи контакта" msgid "Close contact panel" msgstr "Затвори контакт панел" msgid "The note has changed." msgstr "Напомена је промењена." msgid "Do you want to save it?" msgstr "Да ли желите да то сачувате?" msgid "No URLs found in the selection..." msgstr "Везе се не налазе у избору..." msgid "URLs will be opened in the default browser." msgstr "Веза ће бити отворена у подразумеваном прегледачу." msgid "Do you want to continue?" msgstr "Да ли желите да наставите?" msgid "Too many links selected!" msgstr "Превише линкова је одабрано!" msgid "links opened" msgstr "отворени линкови" msgid "Words" msgstr "Речи" msgid "Lines" msgstr "Линије" msgid "Characters" msgstr "Карактери" msgid "White characters" msgstr "Бели карактери" msgid "Bytes" msgstr "Бајтови" msgid "Document" msgstr "Документ" msgid "Selection" msgstr "Одабир" msgid "Modified" msgstr "Измењено" msgid "New note" msgstr "Нова напомена" msgid "Edit note" msgstr "Измени напомену" msgid "Delete note" msgstr "Уклони напомену" msgid "Save note" msgstr "Сачувај напомену" msgid "Find" msgstr "Пронађи" msgid "Toggle spell checker" msgstr "Укључи проверу правописа" msgid "Bold" msgstr "Подебљано" msgid "Italic" msgstr "Искошено" msgid "Underline" msgstr "Подвучено" msgid "Strikethrough" msgstr "Прецртано" msgid "Highlight" msgstr "Истакнуто" msgid "Clear attributes" msgstr "Очисти атрибуте" msgid "Open URL links" msgstr "Отвори везе" msgid "Insert current date and time" msgstr "Убаците тренутни датум и време" msgid "Insert separator" msgstr "Убаците размак" msgid "Statistics" msgstr "Статистике" msgid "Close editor" msgstr "Затвори едитор" msgid "Note name" msgstr "Име напомене" msgid "Read-only" msgstr "Само за читање" msgid "Line" msgstr "Линија" msgid "Column" msgstr "Колона" msgid "case sensitive" msgstr "Осетљиво на велика и мала слова" msgid "Close find entry" msgstr "Close find entry" msgid "Edit entry" msgstr "Измени ставку" msgid "Remember cursor position" msgstr "Запамти позицију курсора" msgid "Selected note will be removed." msgstr "Одабрана напомена ће бити уклоњена." msgid "No further data recovery will be possible." msgstr "Није могућ даљи опоравак података." msgid "Add note" msgstr "Додај напомену" msgid "Plain" msgstr "Чисти" msgid "Encrypted" msgstr "Шифрован" msgid "Note type" msgstr "Тип напомене" msgid "Cannot open the note." msgstr "Не могу отворити напомену." msgid "encryption support is disabled" msgstr "подршка шифровања је изсључена" msgid "Authorization" msgstr "Ауторизација" msgid "year" msgid_plural "years" msgstr[0] "година" msgstr[1] "година" msgstr[2] "године" msgid "day" msgid_plural "days" msgstr[0] "дан" msgstr[1] "дана" msgstr[2] "дани" msgid "hour" msgid_plural "hours" msgstr[0] "сат" msgstr[1] "сати" msgstr[2] "сати" msgid "minute" msgid_plural "minutes" msgstr[0] "минут" msgstr[1] "минута" msgstr[2] "минути" msgid "second" msgid_plural "seconds" msgstr[0] "секунд" msgstr[1] "секунди" msgstr[2] "секунде" msgid "or" msgstr "или" msgid "rounded down" msgstr "заокружује" msgid "week" msgid_plural "weeks" msgstr[0] "недеља" msgstr[1] "недеља" msgstr[2] "недеље" msgid "working day" msgid_plural "working days" msgstr[0] "радни дан" msgstr[1] "радних дана" msgstr[2] "радни дани" msgid "time is ignored" msgstr "време и игнорисано" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "дан викенда" msgstr[1] "дана викенда" msgstr[2] "дани викенда" msgid "This calculator only supports dates after year 1." msgstr "Овај калкулатор подржава само датуме после године 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "игнорисан дан викенда" msgstr[1] "игнорисани дани викенда" msgstr[2] "игнорисани дани викенда" msgid "Date calculator" msgstr "Калкулатор датума" msgid "Current date" msgstr "Тренутни датум" msgid "Set current date" msgstr "Подеси тренутни датум" msgid "Second" msgstr "Секунда" msgid "Set current time" msgstr "Подеси тренутно време" msgid "Reset time" msgstr "Ресетуј време" msgid "First date and time" msgstr "Први датум и време" msgid "Second date and time" msgstr "Други датум и време" msgid "Alternative time units" msgstr "Алтернативна временска јединица" msgid "Result" msgstr "Резултат" msgid "Duration between two dates" msgstr "Трајање измењу два датума" msgid "Operation" msgstr "Операција" msgid "add" msgstr "додај" msgid "subtract" msgstr "одузми" msgid "Date and time to add or subtract from" msgstr "Датум и време за додавање или одузимање од" msgid "Years" msgstr "Година" msgid "Weeks" msgstr "Недеље" msgid "Seconds" msgstr "Секунде" msgid "Ignore weekend days" msgstr "Игнориши дане викенда" msgid "Reset fields" msgstr "Ресетуј поља" msgid "Time to add or subtract" msgstr "Време за додавање или одузимање" msgid "Add to or subtract from a date" msgstr "Додај за или одузми од датума" msgid "Cannot perform selected operation." msgstr "Не може се извршити одабрана операција." msgid "Task has been modified or removed." msgstr "Задатак је измењен или уклоњен." msgid "Remind me later" msgstr "Подсети ме касније" msgid "Done" msgstr "Готово" msgid "Show task" msgstr "Прикажи задатак" msgid "Alarm warning!" msgstr "Аларм упозорења!" msgid "postponed" msgstr "одложено" msgid "Day note" msgstr "Дневна напомена" msgid "Events" msgstr "Догађаји" msgid "Event" msgstr "Догађај" msgid "Task" msgstr "Задатак" msgid "Birthday" msgstr "Рођендан" msgid "Show Osmo" msgstr "Прикажи Osmo" msgid "event" msgid_plural "events" msgstr[0] "догађај" msgstr[1] "догађаја" msgstr[2] "догађаји" msgid "No valid calendars defined" msgstr "Без исправно дефинисаног календара" msgid "iCalendar events" msgstr "iCalendar догађаји" msgid "Time" msgstr "Време" msgid "The list will be cleared and all entries will be lost." msgstr "Листа ће бити очишћена и све ставке ће бити изгубљене." msgid "event exported" msgid_plural "events exported" msgstr[0] "извезен догађај" msgstr[1] "извезени догађаји" msgstr[2] "извезени догађаји" msgid "iCalendar export" msgstr "iCalendar извоз" msgid "Day Selector" msgstr "Селектор дана" msgid "Use date period" msgstr "Користи период датума" msgid "_Add" msgstr "_Додај" msgid "_Clear" msgstr "_Очисти" msgid "_Remove" msgstr "_Обриши" msgid "No tasks with defined date found." msgstr "Без пронађених задатака са одређеним датумом." msgid "Save tasks" msgstr "Сачувај задатке" msgid "tasks exported" msgstr "извезени задаци" msgid "was born" msgstr "је рођен" msgid "year old" msgid_plural "years old" msgstr[0] "годину стар" msgstr[1] "година стар" msgstr[2] "година стар" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "дан до краја године" msgstr[1] "дана до краја године" msgstr[2] "дана до краја године" msgid "the last day of the year" msgstr "последњи дан у години" msgid "Day tasks" msgstr "Дневни задаци" msgid "Selected day note will be removed." msgstr "Одабрана дневна напомена ће бити обрисана." msgid "Continue?" msgstr "Настави?" msgid "Previous year" msgstr "Претходна година" msgid "Previous month" msgstr "Претходни месец" msgid "Previous day" msgstr "Претходни дан" msgid "Next day" msgstr "Наредни дан" msgid "Next month" msgstr "Следећи месец" msgid "Next year" msgstr "Следећа година" msgid "Full-year calendar" msgstr "Календар целе године" msgid "Print calendar" msgstr "Штампај календар" msgid "Toggle day note panel" msgstr "Прикажи панел дневних напомена" msgid "Select day color" msgstr "Одабери боју за дан" msgid "Browse notes" msgstr "Прегледај напомене" msgid "Browse iCal events" msgstr "Прегледај iCal догађаје" msgid "Export to iCal file" msgstr "Извези у iCal фајл" msgid "Previous and next month" msgstr "Претходни и следећи месец" msgid "Close note panel" msgstr "Затнови панел напомена" msgid "Clear text" msgstr "Очисти текст" msgid "Info" msgstr "Инфо" msgid "Select color" msgstr "Одабери боју" msgid "Name day" msgstr "Име дана" msgid "Printing properties" msgstr "Својства штампања" msgid "Month name" msgstr "Име месеца" msgid "Day name" msgstr "Име дана" msgid "Fonts" msgstr "Фонтови" msgid "Birthdays" msgstr "Рођендани" msgid "Namedays" msgstr "Име дана" msgid "Visible events" msgstr "Видљиви догађаји" msgid "Padding" msgstr "Испуњавање" msgid "Event maximum length" msgstr "Максимална дужина догађаја" msgid "Page orientation:" msgstr "Орјентација странице:" msgid "Portrait" msgstr "Портрет" msgid "Landscape" msgstr "Пејзаж" msgid "Disable background colors" msgstr "Искључи позадинске боје" msgid "Leap year" msgstr "Скок на годину" msgid "Yes" msgstr "Да" msgid "No" msgstr "Не" msgid "Chinese year animal" msgstr "Кинеска година" msgid "Number of days" msgstr "Број дана" msgid "Number of weeks" msgstr "Број недеља" msgid "Number of weekend days" msgstr "Број викенд дана" msgid "Year info" msgstr "Инфо о години" msgid "Alternative view" msgstr "Алтернативни поглед" msgid "Started" msgstr "Почето" msgid "Finished" msgstr "Завршено" msgid "New task" msgstr "Нови задатак" msgid "Remove task" msgstr "Обриши задатак" msgid "Change due date to previous date" msgstr "Промени због датума на претходни датум" msgid "Change due date to next date" msgstr "Промени због датума на следећи датум" msgid "Export tasks" msgstr "Извези задатке" msgid "Print visible tasks list" msgstr "Штампај видљиву листу задатака" msgid "Task details" msgstr "Детаљи задатка" msgid "Close description panel" msgstr "Затвори описни панел" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "пређи на претходни језичак" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "пређи на следећи језичак" msgid "switch to selected page" msgstr "пређи на одабрану страну" msgid "show options window" msgstr "прикажи опције прозора" msgid "show about window" msgstr "прикажи о прозору" msgid "toggle fullscreen mode" msgstr "пребаци у режим пуног екрана" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "пребаци страну у опције и О језичак" msgid "exit" msgstr "напусти" msgid "Space" msgstr "Размак" msgid "select current date" msgstr "одабери тренутни датум" msgid "Ctrl+Space" msgstr "Ctrl+Размак" msgid "toggle personal data visibility" msgstr "Прикажи личне податке видљивим" msgid "Arrows" msgstr "Стрелице" msgid "change day" msgstr "промени датум" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "спусти садржај у дневни инфо панел" msgid "change month" msgstr "промени месец" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "промени годину" msgid "toggle calendars for the previous and next month" msgstr "постави календаре за претходни и следећи месец" msgid "day notes browser" msgstr "прегледач дневних напомена" msgid "assign background color to day note" msgstr "доделите боју позадине за дневне напомене" msgid "date calculator" msgstr "калкулатор датума" msgid "show full-year calendar" msgstr "прикажи календар целе године" msgid "jump to date" msgstr "пребаци на датум" msgid "Delete" msgstr "Уклони" msgid "remove day note" msgstr "уклони дневну напомену" msgid "Alt+Arrows" msgstr "Alt+Arrows" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "затвори едитор" msgid "toggle bold" msgstr "одабери подебљано" msgid "toggle italic" msgstr "одабери искошено" msgid "toggle underline" msgstr "одабери подвучену" msgid "toggle strikethrough" msgstr "одабери прецртано" msgid "toggle highlight" msgstr "одабери истакнуто" msgid "Arrows Up/Down" msgstr "Arrows Up/Down" msgid "toggle alternative view" msgstr "Одабери алтернативни преглед" msgid "year info" msgstr "Годишњи инфо" msgid "set current year" msgstr "подеси тренутну годину" msgid "close full-year calendar" msgstr "затвори календар целе године" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "додај задатак" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "измени задатак" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "обриши задатак" msgid "toggle hidden tasks" msgstr "пребаци на скривене задатке" msgid "activate search field" msgstr "активирај поље претраге" msgid "Left, Right" msgstr "Лево, Десно" msgid "change category filter" msgstr "промени филтер" msgid "close task info panel" msgstr "затвори инфо панел" msgid "Insert" msgstr "Инсерт" msgid "add contact" msgstr "додај контакт" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "измени контакт" msgid "remove contact" msgstr "обриши контакт" msgid "change search mode" msgstr "промени модел претраге" msgid "close contact details panel" msgstr "затвори панел за детаље контаката" msgid "Enter" msgstr "Ентер" msgid "open note" msgstr "отвори напомену" msgid "add note" msgstr "додај напомену" msgid "remove note" msgstr "обриши напомену" msgid "edit note name and category" msgstr "измени име напомене и категорију" msgid "close note editor" msgstr "затвори едитор напомена" msgid "save note" msgstr "сачувај напомену" msgid "find text" msgstr "пронађи текст" msgid "clear selection attributes" msgstr "очисти одабране атрибуте" msgid "open URLs" msgstr "Отвори линкове" msgid "show document statistics" msgstr "прикажи статистику документа" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO је дизајниран да буде практичан за кориснике, тако да има много битних " "пречица. Овде је пун списак:" msgid "Note editor" msgstr "Едитор напомена" msgid "Selector" msgstr "Селектор" msgid "Editor" msgstr "Едитор" msgid "A handy personal organizer" msgstr "Лични организатор" msgid "compiled on" msgstr "уобличен" msgid "Programming" msgstr "Програмирање" msgid "Graphics" msgstr "Графика" msgid "Contributors" msgstr "Сарадници" msgid "Translators" msgstr "Преводиоци" msgid "Mailing lists" msgstr "Листа е-поште" msgid "Bug tracker" msgstr "Праћење багова" msgid "Feature requests" msgstr "Захтеви за функцијама" msgid "Available modules" msgstr "Доступни прикључци" msgid "Compiled-in features" msgstr "Уобличене функције" msgid "iCalendar support" msgstr "iCalendar подршка" msgid "Encrypted notes support" msgstr "Подршка за шифроване напомене" msgid "Backup support" msgstr "Подршка за резервне копије" msgid "Printing support" msgstr "Подршка за штампање" msgid "Spell checker support" msgstr "Подршка за проверу правописа" msgid "version" msgstr "верзија" msgid "GIT version" msgstr "Гит верзија" msgid "Key shortcuts" msgstr "Пречице" msgid "License" msgstr "Лиценца" #~ msgid "handy personal organizer" #~ msgstr "персонални организатор" osmo-0.4.2/po/hu.mo0000664000175000017500000011544213204320601011002 00000000000000l+9 99: : ,:.7:f:o:x::::: : :: :: : : ; ;8; W; b;p; ;;;(; ;; ;< <<<&%<$L< q<<< <<<<<< << ==.=3=8=?= R= _=k=*q=== ===== >>"2>U> g>q> >> > > > >> > ??/?C?J?O?U? f?q?? ?????.?!@ 9@Z@i@p@w@ @@@ @ @@@@ @ @ @ A A A(A;A TA bA oA |AA AA%AA A AA B B(B ,B9B HB UB_BhBqB B B BBBB+B B B C C&CACJCjCCCCCCCCCCCCC D!D 0D >D KD VD `DjDqDyDDDDD!DEE (E2E JEUEYE_EnEtEEE EEEEEE EEFF F F&F7FI[IlI|IIIII I I II II I I J JJ J+J/J5J=JBJHJ LJWJ `J nJ|J J JJJJ JJJJJ J K KK!K *K8KGKPK YKeKnKwK K KKK!KKK*K L"L!>L`L{LLL L L L LL LLLL7M:MQMoaMMM MM NN*N(JNsN NNNNN NNNO OO O"O&O-O3OMO:cOOOO O OO O P P&PFPUPnPPP P PPPPPP PPPPQ#4QXQhQyQ QQQQ Q Q QQQ Q R"R 8R BRMRUR\RcR xRRRRR RRR RR S!S"@ScSSSSS S ST TT+T>TGT MTWT fT tT TTTT%TU U (U 5UBU ]U gUrU!UJUUU U VV'V=VCVSV[V aVlV {VVVV V VVV V"V WW W )W7W3>W3rW0W6WXQ$XvX|X1XXXX X XX Y YY$Y3YIY^YgYY YY+Y YYYY#Y"Z(Z.Z7Z=Z#MZqZZZZZZZZZZZ Z [ [ "[/[B[H[Y[_[ d[ q[ {[ [ [ [ [ [ [ [ [[ [[[ \\\\"\)\2\6\<\C\K\Q\h\\\ \\\#\\\ ] ]] .]:]U] q]~]]] ]]"] ^^$^6^&G^*n^ ^^ ^^ ^ ^_%_ *_4_D_ V_a_g_x___ _ ___ _ __ _ ` ` ``'` 7` C` O` \`)f```````aa$$aIa\asaaaaaaa a0a$b;bOb `bnbbbbb bb(bc +c 6c@cSceczc e e;eDe[eApeee/e f"f 'f2f6fMfdf ~ff f f ffHf g g&g 8gFg^g#qg g g ggggg4g0h BhOh bhph&h hhh hhi!i1iJi Oi[i`iyi ii8iiiij%j.*jYjyjj.jjjj k "k -k:kIkXk.gk+k k4klll$l,lClUlpllllll.l!mp"Dpgp3npppppppq q4q JqUq[qaq hqrqqqqqqq8qrr3rLrbr xrr r!rr.r s.%sTsos s#s ssssssttt%t=t Xt ctptttttt ttt u uu u 'u3uIu Ru ^uluruuu uu uu u uuv v vv!v)v@vWv kvuvvv vv vvvvww+w=wVwew nwyw}www ww wwwww1wxx 6xCx]xrx x xxx%xxxy y (y6y}H}X}o} }7}} }}~ ~~~ ~)~+!Mj"}    '/5:OHh Ҁـ )5 D+P|,؁  '07L\cx(/ , >!I k% փ ,=Naj s~ ̈́2Pd)01!6'S#{ ̆!*=F[u,և)71(iĈو ')B_l̉҉ډ &:BZb iw - ˊ Պ%": ]gw,1‹)5Tmi׌ތ>&%LSXg"v   ߍ# (32: m y 0Ž  1,^szƏ֏ޏ *GWnt ֐(DVevz  đ ϑۑ ߑ  +I ^h,֒ + D%Q)wؓ&+/-[%ϔ-#);e"{+ƕ ! 9CH]n – ǖՖ 0M_q0Ɨܗ -Nm 9Ә )#? cqvy 0ə # 1 <H P [e3˚Ӛ    \( 7InqHAcOPGT15qt8N[/9o3P K^r'n)r?wHw3F (,d 5Yg{S2fh1: u/Wk9e$cR<v@jCp<`p |Eh?XD~X6! -h}9Ov MWK03r@'{)QpjgD}"&k>PJD 2td+Q a;i_ GV[]X$*bONW&BsF$y1o=T6]U mc)7%~o:!,#s8l.kztxIZ4]bJYxK;"!"U+mCF|R*q~w f`^aizy#%RSmZUTbjfGg?>J7L6C8B2\ v0E(Y[VI{|xeL@a#*-i=A.ABuyNMQ's4\Hu&_eZLS_>:;<0M-n%+Vz E54}/ll.d,=`^0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackground colorBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCounterCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay colorDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable background colorsDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGIT versionGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHeader background colorHeader foreground colorHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrevious/Next month's day colorPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow hidden filesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.The user config path option is deprecated. Use XDG environment variables instead.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowToo many links selected!TopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac sign_Add_Cancel_Clear_Close_Jump to_OK_Open_Paste_Remove_Saveabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to datelinks openedminuteminutesminutesmonthmonthsno entriesofopen URLsopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow document statisticsshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2017-09-19 09:44+0000 Last-Translator: Péter Polonkai Language-Team: Hungarian (http://www.transifex.com/pasp/osmo/language/hu/) Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 - letiltvaA kényelmes személyi szervezőNévjegyKapcsolat hozzáadásaFejléc hozzáadásaÚj feladat hozzáadás dupla kattintással a feladatok listábanJegyzet hozzáadásaFeladat hozzáadásaNövelés vagy csökkentés a dátumhoz képestTovábbi InformációCímBővítettKorFigyelmeztető parancsFigyelmeztető jelzésRiasztó figyelmeztetés!AlgoritmusMindMinden fájlÖsszes mezőMinden elemMinden jegyzetMinden adat cserélve lesz a biztonsági másolatban lévő tartalommal.Alt+NyilakAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternatív időegységAlternatív nézetMár fut egy másik OSMO példány.MegjelenésVízöntőBiztos benne?KosNyílNyilakNyilakkal Fel/LeEmelkedő sorrend a napi bejegyzések böngészőbenLegalább egy modulnak láthatónak kell lennie.AzonosításElérhető modulokHáttérszínBiztonsági mentésBiztonsági másolat mentése sikeres!Biztonsági mentés támogatásaAlapértelmezettLegjobbSzületésnapSzületési időSzületésnap jelölő színSzületésnapokSzületésnapok listájaBlogFélkövérLentiCal esemény tallózásJegyzetek kereséseHiba követőBájtokCSV (vesszővel elválasztott értékek) fájlok (*.csv)NaptárNaptár fájlok (*.ics)Naptár betűtípusNaptár bejegyzésekRákBiztonsági másolat létrehozása sikertelen!Fájl létrehozása sikertelen.A fájl nem nyitható meg.A jegyzet nem nyitható meg.A kiválasztott művelet nem hajtható végre.A fájl nem olvasható.Bakkis/nagybetű érzékenyKategóriákKategóriaMobiltelefonMobiltelefon 2Mobiltelefon 3Mobiltelefon 4Esedékesség váltása a következő dátumraEsedékesség váltása az előző dátumraKarakterekEsemények ellenőrzése a legutóbbi indítás ótaKínai állat naptárKörVárosTörölFormázások törléseSzöveg törléseKapcsolat panel bezárásaLeírás panel bezárásaSzerkesztő bezárásaKereső sáv bezárásaJegyzet panel bezárásaSzínkapcsolat címkék színeA következő 7 napban esedékes elemek színeMa esedékes elemek színeA már elmúlt tételek színeLinkek színeSzínekOszlopTámogatott lehetőségekTömörítésKapcsolat tulajdonságaiKapcsolatokFolytatja?KözreműködőkSzámlálóOrszágLétrehozvaCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownJelenlegi dátumAktuális nap megjelöléseAktuális nap jelölő színAktuális hónapJelenlegi időAktuális évKurzor színeKurzor vastagságaNN-HH-ÉÉÉÉDátumDátum és idő növelése vagy csökkentése innentőlDátum kalkulátorDátum betűtípusDátum formátumDátum formátum szintaxisaDátum fejléc formátumDátum periódusNapNap választóNap kategóriákNap kategóriaNap színeNap neveNapi jegyzetNapi bejegyzés megjelöléseNapi jegyezetekNapok számaNapi feladatokNapokSzületésnapig hátralévő napokDeleteA kész feladatok törlése megerősítés nélkülJegyzet törléseRészlegLeírásHáttérszínek letiltásaNe húzza alá a linkeketTiltvaBiztosan folytatni kívánja?Valóban folytatja?El szeretné menteni?DokumentumKutyaKészKész!SárkányLejárat napjaDátumok közötti időEmailEmail 2Email 3Email 4Levelező programHIBA: A konfigurációs fájlok létrehozása sikertelenKategória szerkesztéseKapcsolat szerkesztéseBejegyzés szerkesztéseJegyzet szerkesztéseFeladat szerkesztéseSzerkesztőElipszisEngedélyezveKülső naptárak engedélyezéseTömb kurzor engedélyezéseÉrtesítési párbeszédablak engedélyezéseHangjelzés engedélyezéseAlárírás ellenőrzése a napi jegyzeteknélTálcaikon engedélyezéseBuboréktippek engedélyezéseTitkosítottTitkosított jegyzetek támogatásaTitkosításVégeEnterJelszó megadásaHibaHiba a nyomtatáskorEscEseményEsemény jelöléseEsemény jelölő színEsemény maximális hosszaEseményekExportálásKapcsolatok exportálásaFeladatok exportálásaiCal fájl exportálásaGyorsFaxFunkciók kéréseMező típusaMezők exportálásaFájlFájlnévSzűrőKeresésBefejezettKeresztnévElső dátum és időUtónévBetűméretBetűtípusokKakasSzabadkézi körKezdete (óra)TeliholdTeljes dátumEgész éves naptárGIT verzióIkrekÁltalánosGlobális figyelmeztető parancsJóGrafikaCsoportCsoportokNyúlHashingFejléc háttérszíneFejléc előtérszíneSegédalkalmazásokElrejtésKész feladatok elrejtéseCsoport oszlop elrejtéseMagasKiemelésOtthoniOtthoni címOtthoni városOtthoni ország/területOtthoni telefonOtthoni telefon 2Otthoni telefon 3Otthoni telefon 4Otthoni irányítószámOtthoni államHome/EndVizszintesLóÓraÓrákIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooFigyelmen kivül hagyja ha a feladat már lejártNapi jegyzetek kihagyásaHétvégi napok kihagyásaImportálásKapcsolatok importálásaImportálás típusaÉrvénytelen jelszó!InformációInformációFájnév megadásaBeszúrAktuális dátum és idő beszúrásaElválasztó beszúrásaidővonal beszúrásaInternetIntervallumMegfordításDőltElem betűméreetUgrás dátumraBillentyű kombinációkFekvőNagyVezetéknévUtolsó negyedUtolsó módosításVezetéknévElrendezésSzökőévBaloldaltBal, JobbOroszlánMérlegLicencSorSorokAlacsonyHH-NN-ÉÉÉÉNN/HH/ÉÉLevelező listákTérkép szolgáltatóMegjelöltMegjelölt napokEgyező kapcsolatok a megadott karakterlánccal.KözepesPercPercekEgyébMódosítvaICAL paraméterek módosításaMajomHónapHónap neveHónapokHold fázisNévNévnapNévnapNév betűméretNévnapokÚj HoldÚj kapcsolatÚj jegyzetÚj feladatKövetkező napKövetkező hónapKövetkező évBecenévNemNincs URL a kiválasztott részen...Nincsenek születésnapok meghatározvaNincs dátumAz adatok visszaállítása nem lehetséges.Nincs hónap váltásNincs egyetlen rekord sem a kiválasztott fájlban.Nincsenek feladatok a meghatározott dátumban.Nincsenek valós naptárak meghatározvaNo.NincsJegyzetJegyzet szerkesztőJegyzet betűtípusJegyzet neveJegyzet típusaJegyzetekJegyzet opciókNincs mit importálni.Mezők száma rekordonkéntNapok számaEsemények ellenőrzése napokban (alapértelmezett: 0)Hétvégek napjainak számaHetek számaAz OSMO-t úgy tervezték, hogy szem előtt tartsa a felhasználó kényelmét, ezért sok gyorsbillentyű van. Itt van a teljes lista:URL linkek megnyitásaBiztonsági másolat megnyitásaMűveletBeállításokSzervezetOsmo biztonsági másolat fájlok (*.bck)Az Osmo most újra indul...Az Osmo újraindítása után lép életbe.Kimeneti fájlnév megadásaKimenet formátumaHelyi beállítások felülírásaÖkörHelykitöltésLap tájolása:PageUp/PageDnJelszó védettA jelszavak nem egyeznek!SzemélyesTelefonokFotóFotó méreteDisznóHalakSimaJelszó még egyszerKérem adja meg a címetKérem válasszon legalább egy napot az ismétlés engedélyezéséhez.Kérem előbb válasszon fájlt.ÁllóIrányítószámhalasztási időBeállításokElőző és következő hónapElőző napElőző hónapElőző évElőző/Következő hónap napjának színeNaptár nyomtatásaLátható feladatok listájának nyomtatásaNyomtatási beállításokNyomtatás támogatásaPrioritásProgramozóElső negyedKérdésKilépésPatkányArányJelszó mé gegyszerCsak olvashatóRekordIsmétlődő feladatKurzor pozíció megjegyzéseUtoljára kiválasztott lap megjegyzéseUtoljára kiválasztott kategória megjegyzéseJegyezze megEmlékeztető opciókKapcsolat eltávolításaFeladat törléseIsmétlésIsmétlés a következő napokbanHang figyelmeztetés ismétléseMezők alaphelyzetbeIdő törléseBiztonsági mentés visszaállításaEredményJobboldaltNyilasBiztonsági másolat mentéseAdatok mentése minden egyes módosításkorJegyzet mentéseFeladatok mentéseSkorpióKeresésMásodpercMásodik dátum és időKözépső névMásodpercekCSV fájl kiválasztásaVálasszon ICS fájltBetűtípus választása...Szín kiválasztásaVálasszon dátumot és időtNap színének kiválasztásaMezők választásaVálasszon kimeneti fájltFotó kiválasztásaA kiválasztott kapcsolat törölve lesz.A kiválasztott nap jegyzetei törölve lesznek.A kiválasztott fájl már létezik! Felülírja?Kiválasztott hónapKiválasztott hónap és évA kiválasztott jegyzet törölve lesz.A kijelölt feladat törölve lesz.Kiválasztott évKiválasztásElválasztóJelenlegi dátum beállításaJelenlegi idő beállításaLegyen alapértelmezett formátumIdő beállításaBárányOsmo megjelenítéseSzületésnapok mutatásaNaptár megjelenítéseA kapcsolat helyének mutatása a térképenKapcsolatok megjelenítéseNap nevének mutatásaKilépés gomb mutatása az eszköztáronRejtett fájlok mutatásaMutassa félkövérrel a magas prioritású feladatokatNapi információs panel megjelenítéseJegyzetek megjelenítéseOpciók megjelenítéseMásodperc mutatásaKis naptár ablak mutatásaFeladat megjelenítéseFeladatok megjelenítéseHetek számának mutatásaEgyszerű nézet a teljes évi naptárbanEgyszerre kettő vagy több példány használata az OSMO programból adatvesztéshez vezethez.KicsiKígyóZenelejátszóSzóközHelyesírás ellenőrzés nyelveHelyesírás ellenőrzés támogatásaKezdésIndítás kis méretbenKezdeteÁllamStatisztikákLépés (perc)ÁthúzottA már elmúlt napok jegyzetének áthúzásaÖsszegzésSzintaxisTálcaikonFülek pozíciójaTagekFeladatFeladat részleteiA feladat módosítva vagy törölve.Feladatok információ betűtípusFeladatokFeladatok listaFeladatok beállításaiBikaA %s minta le lesz cserélve az email címreA %s minta le lesz cserélve a zene fájl nevéreA %s minta le lesz cserélve a web címreA lista törölve lesz és minden elem el fog veszni.A jegyzet módosult.A felhasználói konfiguráció útvonal opció elavult. Használja az XDG környezeti változókat helyette.VastagVékonyA kalkulátor csak az 1. év utántól támogatja a dátumokatEz nem Osmo biztonsági másolat fájlTigrisIdőIdő formátumIdő periódusIdő növelése vagy csökkentéseIdővonalVége (óra)MaMai teendőkVáltás a nap jegyzet panelraaláírásellenőrzés váltásaHolnapTúl sok link kiválasztva!FentFordítókTípusURL megnyitása az alapértelmezett böngészőbenAláhúzottIsmeretlenDátum periódus használataAz első rekord legyen a fejlécA rendszer dátum és idő formátum használataÉrvényesÉrtékFüggőlegesSzűzLátható oszlopokLátható oszlopok a születésnap böngészőbenLátható eseményekHonlapHonlap 2Honlap 3Honlap 4Csökkenő első negyedCsökkenő három negyedFigyelmeztetésHullámNövekvő első negyedNövekvő három negyedWeb böngészőHetek számaA hét kezdőnapja a HétfőHétvégi napokHétvégi napok színeHetekFehér karakterekeSzavakMunkahelyMunkahelyi címMunkahelyi városMunkahelyi ország/területMunkahelyi telefonMunkahelyi telefon 2Munkahelyi telefon 3Munkahelyi telefon 4Munkahelyi irányítószámMunkahelyi államÉÉÉÉ-HH-NNÉÉÉÉÉ-NN-HHÉvÉv információÉvekIgenZodiákus jelHozzá_adás_Mégsem_TörlésBe_zárás_Ugrás ide_OKMeg_nyitás_Beillesztés_EltávolításMenté_srövidített hónap névrövidített hétköznap névaktív kereső mezőnöveléskapcsolat hozzáadásajegyzet hozzáadásafeladat hozzáadásaháttérszín kijelölése a napi jegyzethezkis/nagybetűre érzékenykategória szűrő váltásanap cseréjehónap cseréjekeresési mód váltásaév cseréjekijelölés formázásának törlésekapcsolat tulajdonságai panel bezárásaszerkesztő bezárásaegész éves naptár bezárásajegyzet szerkesztő bezárásafeladat információs panel bezárásafordítás idejekapcsolat hozzáadvakapcsolatok hozzáadvakapcsolat exportálvakapcsolatok exportálvadátum kalkulátornapnapnapi bejegyzés böngészőa hónap napjaa hónap napja vezető nulla nélkülnap telt el az évbőlnap telt el az évbőlkapcsolat szerkesztésejegyzet név és kategória szerkesztésefeladat szerkesztésetitkosítási támogatás letiltvabejegyzésbejegyzéseseményeseményesemény exportálvaesemények exportálvakilépésszöveg kereséseteljes hónap névteljes hétköznap névóraóraóraiCalendar eseményekiCalendar exportiCalendar fájlokiCalendar támogatásaugrás dátumralinkek megnyitvapercpercperchónaphónapnincs bejegyzés/URL megnyitásajegyzet megnyitásavagyhalasztottkapcsolat törlésenapi jegyzet eltávolításajegyzet törlésefeladat törléselefelé kerekítvejegyzet mentésetartalom görgetése a nap információs panelenmásodpercmásodpercaktuális dátum kiválasztásalegyen az aktuális évnévjegy ablak mutatásadokumentum statisztika mutatásaEgész éves naptár mutatásabeállítások ablak mutatásacsökkentésváltás a beállítások és névjegy fülek között isváltás a következő fülreváltás az előző fülreváltás a következő laprafeladatok exportálvahátralévő napok száma az évbenidő kihagyvaidőmaalternatív nézetfélkövérelőző és következő hónap naptár váltásateljes képernyős módrejtett feladatok váltásakiemelésdőltszemélyi adatok rejtése/mutatásaáthúzottaláhúzottverziószületetthéthétHétvégi napHétvégi napokHétvégi nap kihagyásaHétvégi napok kihagyásamunkanapmunkanapokévévév információévesévesév évszázaddal együttév évszázad nélkülosmo-0.4.2/po/gl_ES.po0000664000175000017500000011251713204320601011362 00000000000000# Galician (Spain) translation of Osmo # This file is distributed under the same license as the Osmo package. # Miguel Anxo Bouzada , 2012 # xesusmosquera , 2012 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2014-08-06 09:53+0000\n" "Last-Translator: xesusmosquera \n" "Language-Team: Galician (Spain)\n" "Language: gl_ES\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" msgid "Colors" msgstr "Cores" msgid "Color of contact tags" msgstr "Cor das etiquetas dos contactos" msgid "Color of links" msgstr "Cor das ligazóns" msgid "Font size" msgstr "Tamaño da letra" msgid "Name font size" msgstr "Tamaño da letra dos nomes" msgid "Item font size" msgstr "Tamaño da letra dos elementos" msgid "Photo size" msgstr "Tamaño da foto" msgid "Small" msgstr "Pequena" msgid "Medium" msgstr "Mediana" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Agochar a columna de grupos" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Idade" msgid "Birthday date" msgstr "Data de nacemento" msgid "Zodiac sign" msgstr "Signo do zodíaco" msgid "Contacts" msgstr "Contactos" msgid "Appearance" msgstr "Aparencia" msgid "Miscellaneous" msgstr "Varios" msgid "Groups" msgstr "Grupos" msgid "Visible columns in birthday browser" msgstr "Columnas visíbeis na lista de aniversarios" msgid "Algorithm" msgstr "Algoritmo" msgid "Hashing" msgstr "Resumo" msgid "Compression" msgstr "Compresión" msgid "Ratio" msgstr "Relación" msgid "Fast" msgstr "Rápido" msgid "Good" msgstr "Bo" msgid "Best" msgstr "Mellor" msgid "Type" msgstr "Tipo" msgid "Category" msgstr "Categoría" msgid "Last changes" msgstr "Último cambio" msgid "Created" msgstr "Creado" msgid "Remember the last selected category" msgstr "Lembrar a última categoría seleccionada" msgid "Use system format for date and time" msgstr "Usar formato de data e hora do sistema" msgid "Notes" msgstr "Notas" msgid "Encryption" msgstr "Cifrado" msgid "Visible columns" msgstr "Columnas visíbeis" msgid "Categories" msgstr "Categorías" msgid "Notes options" msgstr "Opcións das notas" msgid "Jump to date" msgstr "Ir á data" msgid "Day" msgstr "Día" msgid "Month" msgstr "Mes" msgid "Year" msgstr "Ano" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleccione un tipo de letra..." msgid "None" msgstr "Ningún" msgid "All items" msgstr "Todos os elementos" msgid "Question" msgstr "Pregunta" msgid "Information" msgstr "Información" msgid "Error" msgstr "Produciuse un erro" msgid "Warning" msgstr "Aviso" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "O ficheiro seleccionado xa existe. Quere sobrescribilo?" msgid "Selected contact will be removed." msgstr "O contacto seleccionado vai seren retirado." msgid "Are you sure?" msgstr "Está seguro?" msgid "No date" msgstr "Sen data" msgid "Select photo" msgstr "Seleccione unha foto" msgid "Address" msgstr "Enderezo" msgid "Postcode" msgstr "Código postal" msgid "City" msgstr "Cidade" msgid "State" msgstr "Estado" msgid "Country" msgstr "País" msgid "Edit contact" msgstr "Editar o contacto" msgid "Add contact" msgstr "Novo contacto" msgid "Personal" msgstr "Persoal" msgid "Group" msgstr "Grupo" msgid "Home" msgstr "Particular" msgid "Work" msgstr "Traballo" msgid "Phones" msgstr "Teléfonos" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Información adicional" msgid "_OK" msgstr "" msgid "no entries" msgstr "sen entradas" msgid "entry" msgid_plural "entries" msgstr[0] "entrada" msgstr[1] "entradas" msgid "Calendar notes" msgstr "Notas do calendario" msgid "Search" msgstr "Buscar" msgid "Filter" msgstr "Filtro" msgid "Current month" msgstr "Mes actual" msgid "Selected month" msgstr "Mes seleccionado" msgid "Current year" msgstr "Ano actual" msgid "Selected year" msgstr "Ano seleccionado" msgid "Selected month and year" msgstr "Mes e ano seleccionado" msgid "All notes" msgstr "Todos as notas" msgid "Case sensitive" msgstr "Sensíbel a maiúsculas/minúsculas" msgid "Strikethrough past day notes" msgstr "Tachar notas de días pasados" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rata" msgid "Ox" msgstr "Boi" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lebre" msgid "Dragon" msgstr "Dragón" msgid "Snake" msgstr "Serpe" msgid "Horse" msgstr "Cabalo" msgid "Sheep" msgstr "Ovella" msgid "Monkey" msgstr "Mono" msgid "Fowl" msgstr "Galo" msgid "Dog" msgstr "Can" msgid "Pig" msgstr "Porco" msgid "Unknown" msgstr "Descoñecido" msgid "Aquarius" msgstr "Acuario" msgid "Pisces" msgstr "Peixes" msgid "Aries" msgstr "Aries" msgid "Taurus" msgstr "Tauro" msgid "Gemini" msgstr "Xemelgos" msgid "Cancer" msgstr "Cancro" msgid "Leo" msgstr "Leo" msgid "Virgo" msgstr "Virgo" msgid "Libra" msgstr "Libra" msgid "Scorpio" msgstr "Escorpion" msgid "Sagittarius" msgstr "Saxitario" msgid "Capricorn" msgstr "Capricornio" msgid "Osmo has to be restarted to take effect." msgstr "Osmo debe ser reiniciado para que tena efecto." msgid "Layout" msgstr "Deseño" msgid "Vertical" msgstr "Vertical" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Posición das lapelas" msgid "Left" msgstr "Esquerda" msgid "Right" msgstr "Dereita" msgid "Top" msgstr "Arriba" msgid "Bottom" msgstr "Abaixo" msgid "Disable underline in links" msgstr "Desactivar o subliñado nas ligazóns" msgid "Show exit button in toolbar" msgstr "Amosar o botón de saída na barra de ferramentas" msgid "At least one module must be visible." msgstr "Polo menos un módulo debe ser visíbel." msgid "Calendar" msgstr "Calendario" msgid "Tasks" msgstr "Tarefas" msgid "Override locale settings" msgstr "Ignorar a configuración do sistema" msgid "Date format" msgstr "Formato da data" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Formato da hora" msgid "hours" msgstr "horas" msgid "Spell checker language" msgstr "Idioma do corrector ortográfico" msgid "Enable tooltips" msgstr "Amosar consellos" msgid "Remember last selected page" msgstr "Lembrar a última páxina seleccionada" msgid "Save data after every modification" msgstr "Gardar os datos despois de cada modificación" msgid "Web browser" msgstr "Navegador" msgid "E-mail client" msgstr "Cliente de correo-e" msgid "Sound player" msgstr "Reprodutor de son" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "O patrón %s vai seren substituído polo enderezo web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "O patrón %s vai seren substituído polo correo-e" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "O patrón %s vai seren substituído polo nome do ficheiro de son" msgid "Enable system tray" msgstr "Amosar a icona na área de notificación" msgid "Start minimised" msgstr "Iniciar minimizado" msgid "Ignore day note events" msgstr "Ignorar eventos de nota del día" msgid "General" msgstr "Xeral" msgid "Hide" msgstr "Agochar" msgid "Helpers" msgstr "Axudantes" msgid "System tray" msgstr "Área de notificación" msgid "Preferences" msgstr "Preferencias" msgid "Syntax" msgstr "Sintaxe" msgid "abbreviated weekday name" msgstr "nome abreviado do día da semana" msgid "full weekday name" msgstr "nome do día da semana" msgid "abbreviated month name" msgstr "nome abreviado do mes" msgid "full month name" msgstr "nome do mes" msgid "day of the month" msgstr "día do mes" msgid "MM/DD/YY" msgstr "MM/DD/AA" msgid "day of the month without leading zeros" msgstr "día do mes sen ceros á esquerda" msgid "month" msgid_plural "months" msgstr[0] "mes" msgstr[1] "meses" msgid "year without century" msgstr "ano sen século" msgid "year with century" msgstr "ano con século" msgid "Date header format" msgstr "Formato da cabeceira de data" msgid "Set default format" msgstr "Estabelecer o formato predeterminado" msgid "Date format syntax" msgstr "Sintaxe do formato da data" msgid "Day note marker" msgstr "Marca para nota do día" msgid "Event marker" msgstr "Marca de actividades" msgid "Circle" msgstr "Círculo" msgid "Ellipse" msgstr "Elipse" msgid "Wave" msgstr "Onda" msgid "Current day marker" msgstr "Marca de data actual" msgid "Arrow" msgstr "Frecha" msgid "Free-hand circle" msgstr "Círculo a man alzada" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Cor dos días de fin de semana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cor do cursor" msgid "Event marker color" msgstr "Cor da marca de actividades" msgid "Current day marker color" msgstr "Cor da marca de data actual" msgid "Birthday marker color" msgstr "Cor da marca de aniversario" msgid "Date font" msgstr "Tipo de letra da data" msgid "Calendar font" msgstr "Tipo de letra do calendario" msgid "Note font" msgstr "Tipo de letra das notas" msgid "Enable block cursor" msgstr "Activar o cursor de bloque" msgid "Cursor thickness" msgstr "Groso do cursor" msgid "Thin" msgstr "Delgado" msgid "Thick" msgstr "Groso" msgid "Edit category" msgstr "Editar a categoría" msgid "Color" msgstr "Cor" msgid "Name" msgstr "Nome" msgid "Select ICS file" msgstr "Seleccionar ficheiro ICS" msgid "All Files" msgstr "Todos os ficheiros" msgid "Calendar files (*.ics)" msgstr "Ficheiros de calendario (*.ics)" msgid "Modify ICAL parameters" msgstr "Modificar parámetros de ICAL" msgid "Filename" msgstr "Nome de ficheiro" msgid "Options" msgstr "Opcións" msgid "Disabled" msgstr "Desactivado" msgid "Valid" msgstr "Válido" msgid "Description" msgstr "Descrición" msgid "Full date" msgstr "Data completa" msgid "Mark" msgstr "Marca" msgid "Week start on Monday" msgstr "A semana comeza o luns" msgid "Show day names" msgstr "Amosar o nome do día" msgid "No month change" msgstr "Non cambiar de mes" msgid "Show week numbers" msgstr "Amosar o número de semana" msgid "Simple view in full-year calendar" msgstr "Vista simple do calendario anual" msgid "Enable auxilary calendars" msgstr "Amosar calendarios auxiliares" msgid "Ascending sorting in day notes browser" msgstr "Ordenación ascendente en notas do día" msgid "Enable spell checker in day notes" msgstr "Activar o corrector ortográfico nas notas do día" msgid "Current time" msgstr "Hora actual" msgid "Show seconds" msgstr "Amosar os segundos" msgid "Day number" msgstr "Número do día" msgid "Today distance" msgstr "Días ata o día de hoxe" msgid "Marked days" msgstr "Días marcados" msgid "Week number" msgstr "Número da semana" msgid "Weekend days" msgstr "Días en fin de semana" msgid "Day category" msgstr "Categoría de días" msgid "Moon phase" msgstr "Fase luar" msgid "Day notes" msgstr "Notas do día" msgid "Day categories" msgstr "Categorías de días" msgid "iCalendar files" msgstr "Ficheiros de iCalendar" msgid "Show in day info panel" msgstr "Amosar no calendario" msgid "Tasks list" msgstr "Lista de tarefas" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Núm." msgid "Summary" msgstr "Resumo" msgid "Due date" msgstr "Data de caducidade" msgid "Priority" msgstr "Prioridade" msgid "Error printing" msgstr "Produciuse un erro de impresión" msgid "No birthdays defined" msgstr "Non se definiron aniversarios" msgid "Birthdays list" msgstr "Lista de aniversarios" msgid "Days to birthday" msgstr "Días ata o aniversario" msgid "today" msgstr "hoxe" msgid "Select CSV file" msgstr "Seleccione ficheiro CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Archivos CSV (valores separados por comas) (*.csv)" msgid "Please select file first." msgstr "Seleccione antes o ficheiro." msgid "Import contacts" msgstr "Importar contactos" msgid "Import type" msgstr "Tipo de importación" msgid "File" msgstr "Ficheiro" msgid "Input filename" msgstr "Nome do ficheiro de entrada" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Nada para importar." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contacto engadido" msgstr[1] "contactos engadidos" msgid "of" msgstr "de" msgid "Record" msgstr "Rexistro" msgid "Number fields per record" msgstr "Numero de campos por rexistro" msgid "Use first record as header" msgstr "Usar o primeiro rexistro como cabeceira" msgid "Field type" msgstr "Tipo de campo" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Non se atopou ningún rexistro no ficheiro seleccionado." msgid "Cannot read file." msgstr "Non é posíbel ler o ficheiro." msgid "Cannot open file." msgstr "Non é posíbel abrir o ficheiro." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Amosar o calendario" msgid "Show tasks" msgstr "Amosar as tarefas" msgid "Show contacts" msgstr "Amosar os contactos" msgid "Show notes" msgstr "Amosar as notas" msgid "Show options" msgstr "Amosar as opcións" msgid "Quit" msgstr "Saír" msgid "Show small calendar window" msgstr "Amosar unha xanela pequena co calendario" msgid "Check for events since last run" msgstr "Comprobar as actividades desde a última execución" msgid "Number of days to check forward for events (default: 0)" msgstr "" "Número de días para comprobar actividades cara adiante (o predeterminado é: " "0)" msgid "Set absolute path for settings and data files" msgstr "Estabeleza a ruta absoluta para os ficheiros de datos e configuración" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERRO: Non foi posíbel crear o ficheiro de configuración." msgid "Another copy of OSMO is already running." msgstr "Xa está a executarse outra instancia de OSMO." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Usar simultaneamente dúas ou máis instancias de OSMO pode provocar a perda " "de datos." msgid "Do you really want to continue?" msgstr "Quere continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baixa" msgid "High" msgstr "Alta" msgid "Done!" msgstr "Feito!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contacto exportado" msgstr[1] "contactos exportados" msgid "Cannot create file." msgstr "Non foi posíbel crear o ficheiro." msgid "Select output file" msgstr "Seleccione o ficheiro de saída" msgid "Export contacts" msgstr "Exportar contactos" msgid "Output format" msgstr "Formato de saída" msgid "Add header" msgstr "Engadir cabeceira" msgid "Fields to export" msgstr "Campos a exportar" msgid "All" msgstr "Todo" msgid "Invert" msgstr "Inverter" msgid "Select fields" msgstr "Seleccione campos" msgid "Output filename" msgstr "Nome do ficheiro de saída" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Cor dos elementos que caducan hoxe" msgid "Color of items that are due in the next 7 days" msgstr "Cor dos elementos que caducan nos próximos 7 días" msgid "Color of items that are past due" msgstr "Cor dos elementos que xa caducaron" msgid "Task info font" msgstr "Tipo de letra para os detalles" msgid "Show in bold tasks with high priority" msgstr "Amosar en negriña as tarefas con prioridade alta" msgid "Hide completed tasks" msgstr "Agochar as tarefas completadas" msgid "Delete completed tasks without confirmation" msgstr "Eliminar as tarefas completadas sen confirmación" msgid "Add new task when double clicked on tasks list" msgstr "Engadir unha nova tarefa ao premer dúas veces na lista de tarefas" msgid "Postpone time" msgstr "Atraso de aviso posposto" msgid "minutes" msgstr "minutos" msgid "0 for disable" msgstr "0 para desactivar" msgid "Repeat sound alarm" msgstr "Repetir a alarma sonora" msgid "times" msgstr "veces" msgid "Global notification command" msgstr "Orde global de notificación" msgid "Tasks options" msgstr "Opcións das tarefas" msgid "Reminder options" msgstr "Opcións de lembranzas" msgid "Insert timeline" msgstr "Inserir liña de tempo" msgid "Timeline" msgstr "Liña de tempo" msgid "From (hour)" msgstr "Desde (hora)" msgid "Step (minutes)" msgstr "Salto (minutos)" msgid "To (hour)" msgstr "Ata (hora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Seleccione polo menos un día se a tarefa é repetitiva." msgid "Set time" msgstr "Estabelecer a hora" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minuto" msgid "Today" msgstr "Hoxe" msgid "Tomorrow" msgstr "Mañá" msgid "Selected task will be removed." msgstr "As tarefas seleccionadas van seren retiradas." msgid "Select date and time" msgstr "Seleccione data e hora" msgid "Enable sound notification" msgstr "Activar a notificación sonora" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarma de aviso" msgid "Days" msgstr "Días" msgid "Hours" msgstr "Horas" msgid "Minutes" msgstr "Minutos" msgid "Alarm command" msgstr "Orde da alarma" msgid "Date period" msgstr "Período de datas" msgid "Months" msgstr "Meses" msgid "Repeat" msgstr "Repetir" msgid "Repeat in the following days" msgstr "Repetir nos días seguintes" msgid "Time period" msgstr "Período de tempo" msgid "Start" msgstr "Inicio" msgid "End" msgstr "Fin" msgid "Interval" msgstr "Intervalo" msgid "Ignore alarm when task expired offline" msgstr "Ignorar as alarmas cando a tarefa caduca sen conexión" msgid "Recurrent task" msgstr "Tarefa repetitiva" msgid "Enable" msgstr "Activar" msgid "Edit task" msgstr "Editar tarefa" msgid "Add task" msgstr "Engadir unha tarefa" msgid "Basic" msgstr "Básico" msgid "Advanced" msgstr "Avanzado" msgid "New Moon" msgstr "Lúa nova" msgid "Waxing Crescent Moon" msgstr "Crecente" msgid "Quarter Moon" msgstr "Cuarto crecente" msgid "Waxing Gibbous Moon" msgstr "Crecente" msgid "Full Moon" msgstr "Lúa chea" msgid "Waning Gibbous Moon" msgstr "Minguante" msgid "Last Quarter Moon" msgstr "Cuarto minguante" msgid "Waning Crescent Moon" msgstr "Minguante" msgid "Cannot create backup!" msgstr "Non é posíbel crear a copia de seguranza!" msgid "Save backup" msgstr "Gardar copia de seguranza" msgid "Password protection" msgstr "Protección con contrasinal" msgid "Enter password" msgstr "Escriba un contrasinal" msgid "Re-enter password" msgstr "Escriba, outra vez, o contrasinal" msgid "Please enter the password" msgstr "Escriba o contrasinal" msgid "Passwords do not match!" msgstr "Os contrasinais non coinciden!" msgid "Backup file saved successfully!" msgstr "A copia de seguranza foi gardada correctamente!" msgid "Open backup file" msgstr "Abrir o ficheiro da copia de seguranza" msgid "Osmo backup files (*.bck)" msgstr "Ficheiros de copia de seguranza de Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Isto non é un ficheiro de copia de seguranza de Osmo" msgid "Incorrect password!" msgstr "Contrasinal incorrecto!" msgid "All your data will be replaced with backup file content." msgstr "" "Todos os datos van seren substituídos cos do ficheiro da copia de seguranza." msgid "Osmo has to be restarted now..." msgstr "Osmo debe ser reiniciado agora..." msgid "Please select address" msgstr "Escolla o enderezo." msgid "First name" msgstr "Nome" msgid "Last name" msgstr "Apelidos" msgid "Second name" msgstr "Segundo nome" msgid "Nickname" msgstr "Alcume" msgid "Tags" msgstr "Etiquetas" msgid "Name day date" msgstr "Data do día do santo" msgid "Home address" msgstr "Enderezo particular" msgid "Home postcode" msgstr "Código postal particular" msgid "Home city" msgstr "Cidade de residencia" msgid "Home state" msgstr "Estado de residencia" msgid "Home country" msgstr "País de residencia" msgid "Organization" msgstr "Organización" msgid "Department" msgstr "Departamento" msgid "Work address" msgstr "Enderezo do traballo" msgid "Work postcode" msgstr "Código postal do traballo" msgid "Work city" msgstr "Cidade do traballo" msgid "Work state" msgstr "Estado do traballo" msgid "Work country" msgstr "País do traballo" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Teléfono particular" msgid "Home phone 2" msgstr "Teléfono particular 2" msgid "Home phone 3" msgstr "Teléfono particular 3" msgid "Home phone 4" msgstr "Teléfono particular 4" msgid "Work phone" msgstr "Teléfono do traballo" msgid "Work phone 2" msgstr "Teléfono do traballo 2" msgid "Work phone 3" msgstr "Teléfono do traballo 3" msgid "Work phone 4" msgstr "Teléfono do traballo 4" msgid "Cell phone" msgstr "Teléfono móbil" msgid "Cell phone 2" msgstr "Teléfono móbil 2" msgid "Cell phone 3" msgstr "Teléfono móbil 3" msgid "Cell phone 4" msgstr "Teléfono móbil 4" msgid "E-Mail" msgstr "Correo-e" msgid "E-Mail 2" msgstr "Correo-e 2" msgid "E-Mail 3" msgstr "Correo-e 3" msgid "E-Mail 4" msgstr "Correo-e 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "MI Gadu-Gadu" msgid "IM Yahoo" msgstr "MI Yahoo" msgid "IM MSN" msgstr "MI MSN" msgid "IM ICQ" msgstr "MI ICQ" msgid "IM AOL" msgstr "MI AOL" msgid "IM Jabber" msgstr "MI Jabber" msgid "IM Skype" msgstr "MI Skype" msgid "IM Tlen" msgstr "MI Tlen" msgid "Blog" msgstr "Blogue" msgid "Photo" msgstr "Fotografía" msgid "New contact" msgstr "Novo contacto" msgid "Remove contact" msgstr "Retirar o contacto" msgid "Show birthdays" msgstr "Amosar aniversarios" msgid "Show contact location on the map" msgstr "Amosar a localización dos contactos no mapa" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Sobre" msgid "Clear" msgstr "Limpar" msgid "First Name" msgstr "Nome" msgid "Last Name" msgstr "Apelidos" msgid "All fields" msgstr "Todos os campos" msgid "Contact details" msgstr "Detalles do contacto" msgid "Close contact panel" msgstr "Pechar os detalles do contacto" msgid "The note has changed." msgstr "A nota cambiou." msgid "Do you want to save it?" msgstr "Quere gardala?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Palabras" msgid "Lines" msgstr "Liñas" msgid "Characters" msgstr "Caracteres" msgid "White characters" msgstr "Espazos" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Documento" msgid "Selection" msgstr "Selección" msgid "Modified" msgstr "Modificado" msgid "New note" msgstr "Nova nota" msgid "Edit note" msgstr "Editar nota" msgid "Delete note" msgstr "Eliminar nota" msgid "Save note" msgstr "Gardar nota" msgid "Find" msgstr "Buscar" msgid "Toggle spell checker" msgstr "Activar o corrector ortográfico" msgid "Bold" msgstr "Negriña" msgid "Italic" msgstr "Cursiva" msgid "Underline" msgstr "Subliñado" msgid "Strikethrough" msgstr "Tachado" msgid "Highlight" msgstr "Resaltado" msgid "Clear attributes" msgstr "Limpar formato" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Inserir a data e a hora actual" msgid "Insert separator" msgstr "Inserir separador" msgid "Statistics" msgstr "Estatísticas" msgid "Close editor" msgstr "Pechar o editor" msgid "Note name" msgstr "Nome da nota" msgid "Read-only" msgstr "Só lectura" msgid "Line" msgstr "Liña" msgid "Column" msgstr "Columna" msgid "case sensitive" msgstr "Coincidencia de maiúsculas / minúsculas" msgid "Close find entry" msgstr "Pechar a barra de buscas" msgid "Edit entry" msgstr "Editar a entrada" msgid "Remember cursor position" msgstr "Lembrar a posición do cursor" msgid "Selected note will be removed." msgstr "A nota seleccionada vai seren retirada." msgid "No further data recovery will be possible." msgstr "Despois non se poderá recuperar os datos." msgid "Add note" msgstr "Engadir nota" msgid "Plain" msgstr "Sinxelo" msgid "Encrypted" msgstr "Cifrado" msgid "Note type" msgstr "Tipo de nota" msgid "Cannot open the note." msgstr "Non é posíbel abrir a nota." msgid "encryption support is disabled" msgstr "A compatibilidade para notas cifradas está desactivada" msgid "Authorization" msgstr "Autorización" msgid "year" msgid_plural "years" msgstr[0] "ano" msgstr[1] "anos" msgid "day" msgid_plural "days" msgstr[0] "día" msgstr[1] "días" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" msgid "or" msgstr "ou" msgid "rounded down" msgstr "redondeado cara abaixo" msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" msgid "working day" msgid_plural "working days" msgstr[0] "día laborábel" msgstr[1] "días laborábeis" msgid "time is ignored" msgstr "ignorase a hora" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "día en fin de semana" msgstr[1] "días en fin de semana" msgid "This calculator only supports dates after year 1." msgstr "Esta calculadora só admite datas posteriores ao ano 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "día de fin de semana ignorado" msgstr[1] "días de fin de semana ignorados" msgid "Date calculator" msgstr "Calculadora de datas" msgid "Current date" msgstr "Data actual" msgid "Set current date" msgstr "Estabelecer a data actual" msgid "Second" msgstr "Segundo" msgid "Set current time" msgstr "Estabelecer a hora actual" msgid "Reset time" msgstr "Restabelecer a hora" msgid "First date and time" msgstr "Data e hora de inicio" msgid "Second date and time" msgstr "Data e hora de fin" msgid "Alternative time units" msgstr "Unidades alternativas de tempo" msgid "Result" msgstr "Resultado" msgid "Duration between two dates" msgstr "Tempo entre dúas datas" msgid "Operation" msgstr "Operación" msgid "add" msgstr "sumar" msgid "subtract" msgstr "restar" msgid "Date and time to add or subtract from" msgstr "Data e hora da que sumar ou restar" msgid "Years" msgstr "Anos" msgid "Weeks" msgstr "Semanas" msgid "Seconds" msgstr "Segundos" msgid "Ignore weekend days" msgstr "Ignorar días en fin de semana" msgid "Reset fields" msgstr "Restabelecer os campos" msgid "Time to add or subtract" msgstr "Hora que sumar ou restar" msgid "Add to or subtract from a date" msgstr "Sumar ou restar dunha data" msgid "Cannot perform selected operation." msgstr "Non é posíbel realizar a operación seleccionada." msgid "Task has been modified or removed." msgstr "A tarefa foi modificada ou retirada." msgid "Remind me later" msgstr "Lembrarmo máis adiante" msgid "Done" msgstr "Feito" msgid "Show task" msgstr "Amosar a tarefa" msgid "Alarm warning!" msgstr "Alarma de aviso!" msgid "postponed" msgstr "Posposto" msgid "Day note" msgstr "Nota do día" msgid "Events" msgstr "Actividades" msgid "Event" msgstr "Actividade" msgid "Task" msgstr "Tarefa" msgid "Birthday" msgstr "Aniversario" msgid "Show Osmo" msgstr "Amosar Osmo" msgid "event" msgid_plural "events" msgstr[0] "actividade" msgstr[1] "actividades" msgid "No valid calendars defined" msgstr "Non se definiron calendarios válidos" msgid "iCalendar events" msgstr "actividades de iCalendar" msgid "Time" msgstr "Hora" msgid "The list will be cleared and all entries will be lost." msgstr "Vaise a baleirar a lista, perderanse todas as entradas." msgid "event exported" msgid_plural "events exported" msgstr[0] "actividade exportada" msgstr[1] "actividades exportadas" msgid "iCalendar export" msgstr "Exportación de iCalendar" msgid "Day Selector" msgstr "Seleccionar día" msgid "Use date period" msgstr "Usar un período de datas" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Non hai tarefas con data definida." msgid "Save tasks" msgstr "Gardar as tarefas" msgid "tasks exported" msgstr "tarefas exportadas" msgid "was born" msgstr "Nado o" msgid "year old" msgid_plural "years old" msgstr[0] "ano de idade" msgstr[1] "anos de idade" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "día ata fin de ano" msgstr[1] "días ata fin de ano" msgid "the last day of the year" msgstr "Último día do ano" msgid "Day tasks" msgstr "Tarefas do día" msgid "Selected day note will be removed." msgstr "A nota do día seleccionado será eliminada." msgid "Continue?" msgstr "Continuar?" msgid "Previous year" msgstr "Ano anterior" msgid "Previous month" msgstr "Mes anterior" msgid "Previous day" msgstr "Día anterior" msgid "Next day" msgstr "Día seguinte" msgid "Next month" msgstr "Mes seguinte" msgid "Next year" msgstr "Ano seguinte" msgid "Full-year calendar" msgstr "Calendario de ano completo" msgid "Print calendar" msgstr "Imprimir calendario" msgid "Toggle day note panel" msgstr "Amosar/agochar notas do día" msgid "Select day color" msgstr "Seleccionar a cor do día" msgid "Browse notes" msgstr "Examinar notas" msgid "Browse iCal events" msgstr "Examinar actividades de iCalendar" msgid "Export to iCal file" msgstr "Exportar a ficheiro iCal" msgid "Previous and next month" msgstr "Mes anterior e seguinte" msgid "Close note panel" msgstr "Pechar o panel de notas" msgid "Clear text" msgstr "Limpar texto" msgid "Info" msgstr "Información" msgid "Select color" msgstr "Seleccionar cor" msgid "Name day" msgstr "Día do santo" msgid "Printing properties" msgstr "Propiedades da impresión" msgid "Month name" msgstr "Nome do mes" msgid "Day name" msgstr "Nome do día" msgid "Fonts" msgstr "Tipos de letra" msgid "Birthdays" msgstr "Aniversarios" msgid "Namedays" msgstr "Santoral" msgid "Visible events" msgstr "Actividades visíbeis" msgid "Padding" msgstr "Espazado" msgid "Event maximum length" msgstr "Lonxitude máxima das actividades" msgid "Page orientation:" msgstr "Orientación da páxina:" msgid "Portrait" msgstr "Vertical" msgid "Landscape" msgstr "Horizontal" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Ano bisesto" msgid "Yes" msgstr "Si" msgid "No" msgstr "Non" msgid "Chinese year animal" msgstr "Animal do calendario chino" msgid "Number of days" msgstr "Número de días" msgid "Number of weeks" msgstr "Número de semanas" msgid "Number of weekend days" msgstr "Días en fin de semana" msgid "Year info" msgstr "Información do ano" msgid "Alternative view" msgstr "Vista alternativa" msgid "Started" msgstr "Iniciado" msgid "Finished" msgstr "Terminado" msgid "New task" msgstr "Nova tarefa" msgid "Remove task" msgstr "Retirar tarefa" msgid "Change due date to previous date" msgstr "Cambiar a data de caducidade ao día anterior" msgid "Change due date to next date" msgstr "Cambiar a data de caducidade ao día seguinte" msgid "Export tasks" msgstr "Exportar tarefas" msgid "Print visible tasks list" msgstr "Imprimir a lista de tarefas visíbeis" msgid "Task details" msgstr "Detalles da tarefa" msgid "Close description panel" msgstr "Pechar o panel de descrición" msgid "Ctrl+PageUp" msgstr "Ctrl+Re.Páx." msgid "switch to previous tab" msgstr "Ir á lapela anterior" msgid "Ctrl+PageDn" msgstr "Ctrl+Av.Páx." msgid "switch to next tab" msgstr "Ir á lapela seguinte" msgid "switch to selected page" msgstr "Ir á lapela seleccionada" msgid "show options window" msgstr "Amosar a xanela de opcións" msgid "show about window" msgstr "Amosar a xanela «Sobre»" msgid "toggle fullscreen mode" msgstr "Cambiar o modo de pantalla completa" msgid "PageUp/PageDn" msgstr "Re.Páx./Av.Páx." msgid "switch page in options and about tab" msgstr "Cambiar de páxina nas lapelas «Opcións» e «Sobre»" msgid "exit" msgstr "Saír" msgid "Space" msgstr "Espazo" msgid "select current date" msgstr "Seleccionar a data actual" msgid "Ctrl+Space" msgstr "Ctrl+Espazo" msgid "toggle personal data visibility" msgstr "Cambiar a visibilidade dos datos persoais" msgid "Arrows" msgstr "Frechas" msgid "change day" msgstr "Cambiar o día" msgid "Ctrl+Up/Down" msgstr "Ctrl+Arriba/Abaixo" msgid "scroll the contents in the day info panel" msgstr "Desprazar o contido do panel de información do día" msgid "change month" msgstr "Cambiar o mes" msgid "Home/End" msgstr "Inicio/Fin" msgid "change year" msgstr "Cambiar o ano" msgid "toggle calendars for the previous and next month" msgstr "Amosar/agochar os calendarios para os meses anterior e seguinte" msgid "day notes browser" msgstr "Examinador das notas do día" msgid "assign background color to day note" msgstr "Asignar a cor do fondo ás notas do día" msgid "date calculator" msgstr "Calculadora de datas" msgid "show full-year calendar" msgstr "Amosar o calendario do ano completo" msgid "jump to date" msgstr "Ir á data" msgid "Delete" msgstr "Eliminar" msgid "remove day note" msgstr "Retirar as notas do día" msgid "Alt+Arrows" msgstr "Alt+Frechas" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "Pechar o editor" msgid "toggle bold" msgstr "Activar/desactivar negriña" msgid "toggle italic" msgstr "Activar/desactivar itálica" msgid "toggle underline" msgstr "Activar/desactivar subliñado" msgid "toggle strikethrough" msgstr "Activar/desactivar tachado" msgid "toggle highlight" msgstr "Activar/desactivar resaltado" msgid "Arrows Up/Down" msgstr "Frechas arriba/abaixo" msgid "toggle alternative view" msgstr "Cambiar o tipo de vista" msgid "year info" msgstr "Información do ano" msgid "set current year" msgstr "Estabelecer o ano actual" msgid "close full-year calendar" msgstr "Pechar o calendario do ano completo" msgid "Alt+a, Insert" msgstr "Alt+A, Inserir" msgid "add task" msgstr "Engadir unha tarefa" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+E, Ctrl+Intro" msgid "edit task" msgstr "Editar a tarefa" msgid "Alt+r, Delete" msgstr "Alt+R, Supr." msgid "remove task" msgstr "Eliminar a/unha tarea" msgid "toggle hidden tasks" msgstr "Amosar/agochar as tarefas agochadas" msgid "activate search field" msgstr "Activar o campo de buscas" msgid "Left, Right" msgstr "Esquerda, dereita" msgid "change category filter" msgstr "Cambiar o filtro de categorías" msgid "close task info panel" msgstr "Pechar a información da tarefa" msgid "Insert" msgstr "Inserir" msgid "add contact" msgstr "Engadir un contacto" msgid "Ctrl+Enter" msgstr "Ctrl+Intro" msgid "edit contact" msgstr "Editar o contacto" msgid "remove contact" msgstr "Retirar o contacto" msgid "change search mode" msgstr "Cambiar o modo de busca" msgid "close contact details panel" msgstr "Pechar os detalles do contacto" msgid "Enter" msgstr "Intro" msgid "open note" msgstr "Abrir unha nota" msgid "add note" msgstr "Engadir unha nota" msgid "remove note" msgstr "Retirar unha nota" msgid "edit note name and category" msgstr "Editar o nome e a categoría da nota" msgid "close note editor" msgstr "Pechar o editor de notas" msgid "save note" msgstr "Gardar a nota" msgid "find text" msgstr "Buscar por texto" msgid "clear selection attributes" msgstr "Limpar os atributos da selección" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO foi deseñado para seren de uso moi doado, por iso existen multitude de " "atallos de teclado. Esta é a lista completa:" msgid "Note editor" msgstr "Editor de notas" msgid "Selector" msgstr "Seleccionar" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Un organizador persoal moi práctico" msgid "compiled on" msgstr "Compilado o" msgid "Programming" msgstr "Desenvolvemento" msgid "Graphics" msgstr "Gráficos" msgid "Contributors" msgstr "Colaboradores" msgid "Translators" msgstr "Tradutores" msgid "Mailing lists" msgstr "Roldas de correo" msgid "Bug tracker" msgstr "Sistema de seguimento de fallos" msgid "Feature requests" msgstr "Peticións de características" msgid "Available modules" msgstr "Módulos dispoñíbeis" msgid "Compiled-in features" msgstr "Características compiladas" msgid "iCalendar support" msgstr "Compatibilidade con iCalendar" msgid "Encrypted notes support" msgstr "Compatibilidade con notas cifradas" msgid "Backup support" msgstr "Compatibilidade con copia de seguranza" msgid "Printing support" msgstr "Compatibilidade con impresión" msgid "Spell checker support" msgstr "Compatibilidade con verificación ortográfica" msgid "version" msgstr "Versión" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Atallos de teclado" msgid "License" msgstr "Licenza" #~ msgid "handy personal organizer" #~ msgstr "práctico organizador persoal" osmo-0.4.2/po/ur_PK.po0000664000175000017500000012456413204320601011416 00000000000000# Urdu translation of Osmo # This file is distributed under the same license as the Osmo package. # Muhammad Ali Makki , 2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-04-07 00:59+0500\n" "Last-Translator: Muhammad Ali Makki \n" "Language-Team: urducoder.com \n" "Language: ur_PK\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" msgid "Colors" msgstr "رنگ" msgid "Color of contact tags" msgstr "رابطے کے ٹیگ کا رنگ" msgid "Color of links" msgstr "روابط کے رنگ" msgid "Font size" msgstr "فونٹ حجم" msgid "Name font size" msgstr "فونٹ حجم نام" msgid "Item font size" msgstr "عنصر کا فونٹ حجم" msgid "Photo size" msgstr "تصویر کا حجم" msgid "Small" msgstr "چھوٹا" msgid "Medium" msgstr "درمیانہ" msgid "Large" msgstr "بڑا" msgid "Hide group column" msgstr "گروپ کالم چھپائیں" msgid "Maps provider" msgstr "" msgid "Age" msgstr "عمر" msgid "Birthday date" msgstr "سالگرہ تاریخ" msgid "Zodiac sign" msgstr "علاقہ بروج کی علامت" msgid "Contacts" msgstr "رابطے" msgid "Appearance" msgstr "مواجہ" msgid "Miscellaneous" msgstr "متفرق" msgid "Groups" msgstr "گروپ" msgid "Visible columns in birthday browser" msgstr "سالگرہ براؤزر میں مرئی کالم" msgid "Algorithm" msgstr "الگورتھم" msgid "Hashing" msgstr "ہیشنگ" msgid "Compression" msgstr "دباؤ" msgid "Ratio" msgstr "قدر" msgid "Fast" msgstr "تیز" msgid "Good" msgstr "اچھا" msgid "Best" msgstr "بہترین" msgid "Type" msgstr "نوعیت" msgid "Category" msgstr "زمرہ" msgid "Last changes" msgstr "آخری تبدیلیاں" msgid "Created" msgstr "بنایا گیا" msgid "Remember the last selected category" msgstr "آخری منتخب کردہ زمرے کو یاد رکھیں" msgid "Use system format for date and time" msgstr "تاریخ اور وقت کے لیے نظام کی ہیئت استعمال کریں" msgid "Notes" msgstr "نوٹس" msgid "Encryption" msgstr "رمز نگاری" msgid "Visible columns" msgstr "مرئی کالم" msgid "Categories" msgstr "زمرے" msgid "Notes options" msgstr "نوٹس اختیارات" msgid "Jump to date" msgstr "تاریخ پر جائیں" msgid "Day" msgstr "دن" msgid "Month" msgstr "مہینہ" msgid "Year" msgstr "سال" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "فونٹ منتخب کریں..." msgid "None" msgstr "کچھ نہیں" msgid "All items" msgstr "تمام عناصر" msgid "Question" msgstr "سوال" msgid "Information" msgstr "معلومات" msgid "Error" msgstr "غلطی" msgid "Warning" msgstr "انتباہ" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "منتخب کردہ فائل پہلے ہی موجود ہے! کیا اس کے اوپر لکھ دیا جائے؟" msgid "Selected contact will be removed." msgstr "منتخب کردہ رابطہ حذف کردیا جائے گا." msgid "Are you sure?" msgstr "کیا آپ پُریقین ہیں؟" msgid "No date" msgstr "بلا تاریخ" msgid "Select photo" msgstr "تصویر منتخب کریں" msgid "Address" msgstr "پتہ" msgid "Postcode" msgstr "پوسٹ کوڈ" msgid "City" msgstr "شہر" msgid "State" msgstr "حالت" msgid "Country" msgstr "مُلک" msgid "Edit contact" msgstr "رابطہ مدون کریں" msgid "Add contact" msgstr "رابطہ شامل کریں" msgid "Personal" msgstr "ذاتی" msgid "Group" msgstr "گروپ" msgid "Home" msgstr "گھر" msgid "Work" msgstr "کام" msgid "Phones" msgstr "فون" msgid "Internet" msgstr "انٹرنیٹ" msgid "Additional info" msgstr "اضافی معلومات" msgid "_OK" msgstr "" msgid "no entries" msgstr "کوئی اندارجات نہیں" msgid "entry" msgid_plural "entries" msgstr[0] "اندراج" msgstr[1] "اندراجات" msgid "Calendar notes" msgstr "تقویم نوٹس" msgid "Search" msgstr "تلاش" msgid "Filter" msgstr "فلٹر" msgid "Current month" msgstr "حالیہ ماہ" msgid "Selected month" msgstr "منتخب کردہ ماہ" msgid "Current year" msgstr "حالیہ سال" msgid "Selected year" msgstr "منتخب کردہ سال" msgid "Selected month and year" msgstr "ماہ اور سال منتخب کریں" msgid "All notes" msgstr "تمام نوٹس" msgid "Case sensitive" msgstr "حساس" msgid "Strikethrough past day notes" msgstr "گزشتہ دن اور نوٹس خط مقطوع کریں" msgid "Date" msgstr "تاریخ" msgid "Note" msgstr "نوٹ" msgid "_Close" msgstr "" msgid "Rat" msgstr "چوہا" msgid "Ox" msgstr "بیل" msgid "Tiger" msgstr "شیر" msgid "Hare" msgstr "خرگوش" msgid "Dragon" msgstr "اژدہا" msgid "Snake" msgstr "سانپ" msgid "Horse" msgstr "گھوڑا" msgid "Sheep" msgstr "بھیڑ" msgid "Monkey" msgstr "بندر" msgid "Fowl" msgstr "پرندہ" msgid "Dog" msgstr "کُتا" msgid "Pig" msgstr "خنزیر" msgid "Unknown" msgstr "نامعلوم" msgid "Aquarius" msgstr "برج دلو" msgid "Pisces" msgstr "برج حوت" msgid "Aries" msgstr "برج حمل" msgid "Taurus" msgstr "برج ثور" msgid "Gemini" msgstr "برج جوزا" msgid "Cancer" msgstr "برج سرطان" msgid "Leo" msgstr "برج اسد" msgid "Virgo" msgstr "برج عذراء" msgid "Libra" msgstr "برج میزان" msgid "Scorpio" msgstr "برج عقرب" msgid "Sagittarius" msgstr "برج قوس" msgid "Capricorn" msgstr "برج جدی" msgid "Osmo has to be restarted to take effect." msgstr "تبدیلیوں کی اثر پذیری کے لیے اوسمو کو دوبارہ چلانا ہوگا." msgid "Layout" msgstr "خاکہ" msgid "Vertical" msgstr "عمودی" msgid "Horizontal" msgstr "افقی" msgid "Tabs position" msgstr "ٹیبز کا مقام" msgid "Left" msgstr "بائیں" msgid "Right" msgstr "دائیں" msgid "Top" msgstr "اوپر" msgid "Bottom" msgstr "نیچے" msgid "Disable underline in links" msgstr "روابط میں خط کشیدگی معطل کریں" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "کم سے کم ایک ماڈیول ظاہر ہونا چاہیے." msgid "Calendar" msgstr "تقویم" msgid "Tasks" msgstr "مہم" msgid "Override locale settings" msgstr "لوکل ترتیاب پر فائق ہوں" msgid "Date format" msgstr "تاریخ ہیئت" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "وقت کی ہیئت" msgid "hours" msgstr "گھنٹے" msgid "Spell checker language" msgstr "املاء پڑتال زبان" msgid "Enable tooltips" msgstr "ٹول ٹِپ فعال کریں" msgid "Remember last selected page" msgstr "آخری منتخب کردہ صفحہ یاد رکھیں" msgid "Save data after every modification" msgstr "ہر تبدیلی پر تاریخ محفوظ کریں" msgid "Web browser" msgstr "ویب براؤزر" msgid "E-mail client" msgstr "ای میل موکل" msgid "Sound player" msgstr "موسیقی سازندہ" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s نمونہ ویب پتہ سے بدل دیا جائے گا" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s نمونہ ای میل پتہ سے بدل دیا جائے گا" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s نمونہ صوتی فائل نام سے بدل دیا جائے گا" msgid "Enable system tray" msgstr "نظام ٹرے فعال کریں" msgid "Start minimised" msgstr "منمائز شروع کریں" msgid "Ignore day note events" msgstr "دن نوٹ واقعات نظر انداز کریں" msgid "General" msgstr "عام" msgid "Hide" msgstr "چھپائیں" msgid "Helpers" msgstr "معاون" msgid "System tray" msgstr "نظام ٹرے" msgid "Preferences" msgstr "ترجیحات" msgid "Syntax" msgstr "نحو" msgid "abbreviated weekday name" msgstr "مختصر ہفتے کے دن کا نام" msgid "full weekday name" msgstr "مکمل ہفتے کے دن کا نام" msgid "abbreviated month name" msgstr "مختصر ماہ کا نام" msgid "full month name" msgstr "ماہ کا پورا نام" msgid "day of the month" msgstr "ماہ کا دن" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "مہینے کا دن ابتدائی صفروں کے بغیر" msgid "month" msgid_plural "months" msgstr[0] "ماہ" msgstr[1] "مہینے" msgid "year without century" msgstr "سال بغیر صدی" msgid "year with century" msgstr "سال بمع صدی" msgid "Date header format" msgstr "تاریخ سرساز ہیئت" msgid "Set default format" msgstr "طے شدہ ہیئت مرتب کریں" msgid "Date format syntax" msgstr "تاریخ ہیئت ساخت" msgid "Day note marker" msgstr "دن نوٹ مارکر" msgid "Event marker" msgstr "واقعہ مارکر" msgid "Circle" msgstr "دائری" msgid "Ellipse" msgstr "بیضوی" msgid "Wave" msgstr "لہر" msgid "Current day marker" msgstr "حالیہ دن مارکر" msgid "Arrow" msgstr "تیر" msgid "Free-hand circle" msgstr "آزاد-دستی حلقہ" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "آخرِ ہفتہ کے دنوں کا رنگ" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "کرسر کا رنگ" msgid "Event marker color" msgstr "واقعات مارکر رنگ" msgid "Current day marker color" msgstr "حالیہ دن مارکر رنگ" msgid "Birthday marker color" msgstr "سالگرہ مارکر رنگ" msgid "Date font" msgstr "تاریخ فونٹ" msgid "Calendar font" msgstr "تقویم فونٹ" msgid "Note font" msgstr "نوٹ کا فونٹ" msgid "Enable block cursor" msgstr "بلاک کرسر فعال کریں" msgid "Cursor thickness" msgstr "کرسر کی کثافت" msgid "Thin" msgstr "پتلا" msgid "Thick" msgstr "گھنا" msgid "Edit category" msgstr "زمرہ مدون کریں" msgid "Color" msgstr "رنگ" msgid "Name" msgstr "نام" msgid "Select ICS file" msgstr "ICS فائل منتخب کریں" msgid "All Files" msgstr "تمام فائلیں" msgid "Calendar files (*.ics)" msgstr "تقویم فائلیں (*.ics)" msgid "Modify ICAL parameters" msgstr "ICAL پیرامیٹر تبدیل کریں" msgid "Filename" msgstr "فائل کا نام" msgid "Options" msgstr "اختیارات" msgid "Disabled" msgstr "معطل" msgid "Valid" msgstr "موزوں" msgid "Description" msgstr "تفصیل" msgid "Full date" msgstr "پوری تاریخ" msgid "Mark" msgstr "نشان" msgid "Week start on Monday" msgstr "ہفتہ پیر کو شروع ہو" msgid "Show day names" msgstr "دنوں کے نام دکھائیں" msgid "No month change" msgstr "کوئی ماہ کی تبدیلی نہیں" msgid "Show week numbers" msgstr "ہفتے کے اعداد ظاہر کریں" msgid "Simple view in full-year calendar" msgstr "مکمل-سال تقویم میں سادہ منظر" msgid "Enable auxilary calendars" msgstr "اضافی تقویمیں فعال کریں" msgid "Ascending sorting in day notes browser" msgstr "دن نوٹس براؤزر میں صعودی ترتیب" msgid "Enable spell checker in day notes" msgstr "دن کے نوٹس میں املاء کی پڑتال فعال کریں" msgid "Current time" msgstr "حالیہ وقت" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "دن کا عدد" msgid "Today distance" msgstr "آج کا فاصلہ" msgid "Marked days" msgstr "نشان زد دن" msgid "Week number" msgstr "ہفتے کا عدد" msgid "Weekend days" msgstr "آخر ہفتہ کے دن" msgid "Day category" msgstr "دن کا زمرہ" msgid "Moon phase" msgstr "چاند کا دورانیہ" msgid "Day notes" msgstr "دن کے نوٹس" msgid "Day categories" msgstr "دن زمرہ جات" msgid "iCalendar files" msgstr "آئی کلینڈر فائلیں" msgid "Show in day info panel" msgstr "دن کے معلوماتی پینل میں دکھائیں" msgid "Tasks list" msgstr "مہم فہرست" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "نہیں." msgid "Summary" msgstr "خلاصہ" msgid "Due date" msgstr "باقی تاریخ" msgid "Priority" msgstr "اہمیت" msgid "Error printing" msgstr "طباعت کی غلطی" msgid "No birthdays defined" msgstr "کوئی سالگرہ متعین نہیں" msgid "Birthdays list" msgstr "سالگرہیں فہرست" msgid "Days to birthday" msgstr "سالگرہ میں دن" msgid "today" msgstr "آج" msgid "Select CSV file" msgstr "CSV فائل منتخب کریں" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (کوما-مقسم قدر) فائلیں (*.csv)" msgid "Please select file first." msgstr "براہ مہربانی پہلے فائل منتخب کریں." msgid "Import contacts" msgstr "رابطے درآمد کریں" msgid "Import type" msgstr "درآمد نوعیت" msgid "File" msgstr "فائل" msgid "Input filename" msgstr "ماداخل فائل نام" msgid "Import" msgstr "درآمد" msgid "Nothing to import." msgstr "درآمد کرنے کے لیے کچھ نہیں ہے." msgid "contact added" msgid_plural "contacts added" msgstr[0] "رابطہ شامل کردیا گیا" msgstr[1] "رابطے شامل کردیے گئے" msgid "of" msgstr "برائے" msgid "Record" msgstr "ریکارڈ" msgid "Number fields per record" msgstr "فی اندراج حلقوں کی تعداد" msgid "Use first record as header" msgstr "ہیڈر کے طور پر پہلا ریکارڈ استعمال کریں" msgid "Field type" msgstr "حلقہ نوعیت" msgid "Value" msgstr "قدر" msgid "No records found in selected file." msgstr "منتخب کردہ فائل میں کوئی ریکارڈ نہیں پایا گیا." msgid "Cannot read file." msgstr "فائل نہیں پڑھی جاسکتی." msgid "Cannot open file." msgstr "فائل نہیں کھولی جاسکتی." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "تقویم دکھائیں" msgid "Show tasks" msgstr "مہم دکھائیں" msgid "Show contacts" msgstr "رابطے دکھائیں" msgid "Show notes" msgstr "نوٹس دکھائیں" msgid "Show options" msgstr "اختیارات دکھائیں" msgid "Quit" msgstr "برخاست" msgid "Show small calendar window" msgstr "چوٹی تقویم دریچہ دکھائیں" msgid "Check for events since last run" msgstr "آخری بار چلانے سے واقعات چیک کریں" msgid "Number of days to check forward for events (default: 0)" msgstr "آئندہ واقعات کو چیک کرنے کے لیے دنوں کی تعداد (طے شدہ: 0)" msgid "Set absolute path for settings and data files" msgstr "ترتیبات اور ڈیٹا فائلوں کے لیے مطلق پاتھ مرتب کریں" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "غلطی: کانفگ (config) فائل نہیں بنائی جاسکتی" msgid "Another copy of OSMO is already running." msgstr "اوسمو کا دوسرا نسخہ پہلے ہی چل رہا ہے." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "ایک ہی وقت میں اوسمو کے دو نسخوں کے استعمال سے ڈیٹا کا نقصان ہوسکتا ہے." msgid "Do you really want to continue?" msgstr "کیا آپ واقعی آگے بڑھنا چاہتے ہیں؟" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "پست" msgid "High" msgstr "بالا" msgid "Done!" msgstr "ہوگیا!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "رابطہ برآمد کردیا گیا" msgstr[1] "رابطے برآمد کردیے گئے" msgid "Cannot create file." msgstr "فائل نہیں بنائی جاسکتی." msgid "Select output file" msgstr "ماحاصل فائل منتخب کریں" msgid "Export contacts" msgstr "رابطے برآمد کریں" msgid "Output format" msgstr "ماحاصل ہیئت" msgid "Add header" msgstr "سرساز شامل کریں" msgid "Fields to export" msgstr "حلقے برائے برآمد" msgid "All" msgstr "تمام" msgid "Invert" msgstr "پلٹیں" msgid "Select fields" msgstr "حلقے منتخب کریں" msgid "Output filename" msgstr "ماحاصل فائل نام" msgid "Export" msgstr "برآمد" msgid "Color of items that are due today" msgstr "ان عناصر کا رنگ جو آج کے لیے باقی ہیں" msgid "Color of items that are due in the next 7 days" msgstr "ان عناصر کا رنگ جو اگلے 7 دنوں تک باقی ہیں" msgid "Color of items that are past due" msgstr "ان عناصر کا رنگ جن کا وقت گزر گیا" msgid "Task info font" msgstr "مہم معلومات فونٹ" msgid "Show in bold tasks with high priority" msgstr "چوڑی مہموں میں زیادہ اہمیت کے ساتھ دکھائیں" msgid "Hide completed tasks" msgstr "تکمیل شدہ مہم چھپائیں" msgid "Delete completed tasks without confirmation" msgstr "تکمیل شدہ مہمیں بغیر تصدیق کے حذف کردیں" msgid "Add new task when double clicked on tasks list" msgstr "مہم فہرست میں دہرے کلک پر نئی مہم شامل کریں" msgid "Postpone time" msgstr "موخر کرنے کا وقت" msgid "minutes" msgstr "منٹ" msgid "0 for disable" msgstr "0 برائے معطلی" msgid "Repeat sound alarm" msgstr "الارم کی آواز دہرائیں" msgid "times" msgstr "اوقات" msgid "Global notification command" msgstr "عالمگیر اطلاعی کمانڈ" msgid "Tasks options" msgstr "مہم کے اختیارات" msgid "Reminder options" msgstr "یاد دہانی اختیارات" msgid "Insert timeline" msgstr "ٹائم لائن شامل کریں" msgid "Timeline" msgstr "خطِ وقت" msgid "From (hour)" msgstr "از (گھنٹہ)" msgid "Step (minutes)" msgstr "مرحلہ (منٹ)" msgid "To (hour)" msgstr "تا (گھنٹہ)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "براہ مہربانی کم سے کم ایک دن منتخب کریں جب ری کرنسی فعال ہو." msgid "Set time" msgstr "وقت متعین کریں" msgid "Hour" msgstr "گھنٹہ" msgid "Minute" msgstr "منٹ" msgid "Today" msgstr "آج" msgid "Tomorrow" msgstr "کل" msgid "Selected task will be removed." msgstr "منتخب کردہ مہم حذف کردی جائے گی." msgid "Select date and time" msgstr "تاریخ اور وقت منتخب کریں" msgid "Enable sound notification" msgstr "صوتی اطلاع فعال کریں" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "الارم انتباہ" msgid "Days" msgstr "دن" msgid "Hours" msgstr "گھنٹے" msgid "Minutes" msgstr "منٹ" msgid "Alarm command" msgstr "الارم کمانڈ" msgid "Date period" msgstr "تاریخ مدت" msgid "Months" msgstr "مہینے" msgid "Repeat" msgstr "دہرائیں" msgid "Repeat in the following days" msgstr "مندرجہ ذیل دنوں میں دہرائیں" msgid "Time period" msgstr "وقت مدت" msgid "Start" msgstr "ابتداء" msgid "End" msgstr "آخر" msgid "Interval" msgstr "وقفہ" msgid "Ignore alarm when task expired offline" msgstr "جب مہم آف لائن اختتام پذیر ہو الارم نظر انداز کریں" msgid "Recurrent task" msgstr "باز گرد مہم" msgid "Enable" msgstr "فعال کریں" msgid "Edit task" msgstr "مہم مدون کریں" msgid "Add task" msgstr "مہم شامل کریں" msgid "Basic" msgstr "بنیادی" msgid "Advanced" msgstr "اعلی" msgid "New Moon" msgstr "نیا چاند" msgid "Waxing Crescent Moon" msgstr "بڑھتا ہلال چاند" msgid "Quarter Moon" msgstr "چوتھائی چاند" msgid "Waxing Gibbous Moon" msgstr "بڑھتا ابھرا چاند" msgid "Full Moon" msgstr "مکمل چاند" msgid "Waning Gibbous Moon" msgstr "ماند ابھرا چاند" msgid "Last Quarter Moon" msgstr "آخری چوتھائی چاند" msgid "Waning Crescent Moon" msgstr "ماند ہلال چاند" msgid "Cannot create backup!" msgstr "بیک اپ نہیں بنایا جاسکتا!" msgid "Save backup" msgstr "بیک اپ محفوظ کریں" msgid "Password protection" msgstr "پاس ورڈ تحفظ" msgid "Enter password" msgstr "پاس ورڈ داخل کریں" msgid "Re-enter password" msgstr "پاس ورڈ دوبارہ داخل کریں" msgid "Please enter the password" msgstr "براہ مہربانی پاس ورڈ داخل کریں" msgid "Passwords do not match!" msgstr "پاس ورڈ مطابقت نہیں رکھتا!" msgid "Backup file saved successfully!" msgstr "بیک اپ کی فائل کامیابی سے محفوظ کردی گئی!" msgid "Open backup file" msgstr "بیک اپ فائل کھولیں" msgid "Osmo backup files (*.bck)" msgstr "اوسمو بیک اپ فائلیں (*.bck)" msgid "This is not Osmo backup file" msgstr "یہ اوسمو بیک اپ فائل نہیں ہے" msgid "Incorrect password!" msgstr "غلط پاس ورڈ!" msgid "All your data will be replaced with backup file content." msgstr "آپ کا تمام ڈیٹا بیک اپ فائل کے مواد سے بدل دیا جائے گا." msgid "Osmo has to be restarted now..." msgstr "اوسمو کو پھر سے چلانے کی ضرورت ہے..." msgid "Please select address" msgstr "براہ مہربانی پتہ منتخب کریں" msgid "First name" msgstr "پہلا نام" msgid "Last name" msgstr "آخری نام" msgid "Second name" msgstr "دوسرا نام" msgid "Nickname" msgstr "عرفیت" msgid "Tags" msgstr "ٹیگ" msgid "Name day date" msgstr "نام دن تاریخ" msgid "Home address" msgstr "گھر کا پتہ" msgid "Home postcode" msgstr "گھر کا پوسٹ کوڈ" msgid "Home city" msgstr "شہر" msgid "Home state" msgstr "صوبہ" msgid "Home country" msgstr "ملک" msgid "Organization" msgstr "ادارہ" msgid "Department" msgstr "محکمہ" msgid "Work address" msgstr "کام کا پتہ" msgid "Work postcode" msgstr "کام کا پوسٹ کوڈ" msgid "Work city" msgstr "کام کا شہر" msgid "Work state" msgstr "کام کا صوبہ" msgid "Work country" msgstr "کام کا ملک" msgid "Fax" msgstr "فیکس" msgid "Home phone" msgstr "گھر کا فون" msgid "Home phone 2" msgstr "گھر کا فون 2" msgid "Home phone 3" msgstr "گھر کا فون 3" msgid "Home phone 4" msgstr "گھر کا فون 4" msgid "Work phone" msgstr "کام کا فون" msgid "Work phone 2" msgstr "کام کا فون 2" msgid "Work phone 3" msgstr "کام کا فون 3" msgid "Work phone 4" msgstr "کام کا فون 4" msgid "Cell phone" msgstr "سیل فون" msgid "Cell phone 2" msgstr "سیل فون 2" msgid "Cell phone 3" msgstr "سیل فون 3" msgid "Cell phone 4" msgstr "سیل فون 4" msgid "E-Mail" msgstr "برقی پتہ" msgid "E-Mail 2" msgstr "برقی پتہ 2" msgid "E-Mail 3" msgstr "برقی پتہ 3" msgid "E-Mail 4" msgstr "برقی پتہ 4" msgid "WWW" msgstr "ویب سائٹ" msgid "WWW 2" msgstr "ویب سائٹ 2" msgid "WWW 3" msgstr "ویب سائٹ 3" msgid "WWW 4" msgstr "ویب سائٹ 4" msgid "IM Gadu-Gadu" msgstr "گاڈو-گادو پیغام رساں" msgid "IM Yahoo" msgstr "یاہو پیغام رساں" msgid "IM MSN" msgstr "ایم ایس این پیغام رساں" msgid "IM ICQ" msgstr "آئی سی کیو پیغام رساں" msgid "IM AOL" msgstr "اے او ایل پیغام رساں" msgid "IM Jabber" msgstr "جبر پیغام رساں" msgid "IM Skype" msgstr "سکائپی پیغام رساں" msgid "IM Tlen" msgstr "ٹلن پیغام رساں" msgid "Blog" msgstr "بلاگ" msgid "Photo" msgstr "تصویر" msgid "New contact" msgstr "نیا رابطہ" msgid "Remove contact" msgstr "رابطہ حذف کریں" msgid "Show birthdays" msgstr "سالگرہیں دکھائیں" msgid "Show contact location on the map" msgstr "نقشے پر رابطہ کا مقام ظاہر کریں" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "بابت" msgid "Clear" msgstr "صاف" msgid "First Name" msgstr "پہلا نام" msgid "Last Name" msgstr "آخری نام" msgid "All fields" msgstr "تمام حلقے" msgid "Contact details" msgstr "رابطے کی تفصیلات" msgid "Close contact panel" msgstr "رابطے کا پینل بند کریں" msgid "The note has changed." msgstr "نوٹ تبدیل کردیا گیا." msgid "Do you want to save it?" msgstr "کیا آپ اسے محفوظ کرنا چاہتے ہیں؟" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "الفاظ" msgid "Lines" msgstr "لکیریں" msgid "Characters" msgstr "کیریکٹرز" msgid "White characters" msgstr "سفید کیریکٹرز" msgid "Bytes" msgstr "بائٹس" msgid "Document" msgstr "دستاویز" msgid "Selection" msgstr "انتخاب" msgid "Modified" msgstr "تبدیل شدہ" msgid "New note" msgstr "نیا نوٹ" msgid "Edit note" msgstr "نوٹ مدون کریں" msgid "Delete note" msgstr "نوٹ حذف کریں" msgid "Save note" msgstr "نوٹ محفوظ کریں" msgid "Find" msgstr "تلاش" msgid "Toggle spell checker" msgstr "املاء کی پڑتال معکوس کریں" msgid "Bold" msgstr "چوڑا" msgid "Italic" msgstr "ٹیڑھا" msgid "Underline" msgstr "خد کشیدہ" msgid "Strikethrough" msgstr "خط مقطوع" msgid "Highlight" msgstr "نشان زدہ" msgid "Clear attributes" msgstr "اوصاف صاف کریں" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "حالیہ تاریخ اور وقت شامل کریں" msgid "Insert separator" msgstr "جداگار شامل کریں" msgid "Statistics" msgstr "شُماریات" msgid "Close editor" msgstr "مدون بند کریں" msgid "Note name" msgstr "نوٹ کا نام" msgid "Read-only" msgstr "فقط-برائے-پڑھائی" msgid "Line" msgstr "لکیر" msgid "Column" msgstr "کالم" msgid "case sensitive" msgstr "حساس" msgid "Close find entry" msgstr "اندراج تلاش بند کریں" msgid "Edit entry" msgstr "اندراج مدون کریں" msgid "Remember cursor position" msgstr "کرسر کی جگہ یاد رکھیں" msgid "Selected note will be removed." msgstr "منتخب کردہ نوٹ حذف کردیا جائے گا." msgid "No further data recovery will be possible." msgstr "مزید ڈیٹا کی بازیافتگی ممکن نہیں ہوگی." msgid "Add note" msgstr "نوٹ شامل کریں" msgid "Plain" msgstr "سادہ" msgid "Encrypted" msgstr "رمز شدہ" msgid "Note type" msgstr "نوٹ کی نوعیت" msgid "Cannot open the note." msgstr "نوٹ نہیں کھولا جاسکتا." msgid "encryption support is disabled" msgstr "رمز نگاری کی معاونت معطل ہے" msgid "Authorization" msgstr "منظوری" msgid "year" msgid_plural "years" msgstr[0] "سال" msgstr[1] "سال" msgid "day" msgid_plural "days" msgstr[0] "دن" msgstr[1] "دن" msgid "hour" msgid_plural "hours" msgstr[0] "گھنٹہ" msgstr[1] "گھنٹے" msgid "minute" msgid_plural "minutes" msgstr[0] "منٹ" msgstr[1] "منٹ" msgid "second" msgid_plural "seconds" msgstr[0] "سیکنڈ" msgstr[1] "سیکنڈ" msgid "or" msgstr "یا" msgid "rounded down" msgstr "راؤنڈ کردیے گئے" msgid "week" msgid_plural "weeks" msgstr[0] "ہفتہ" msgstr[1] "ہفتے" msgid "working day" msgid_plural "working days" msgstr[0] "کام کرنے کا دن" msgstr[1] "کام کرنے کے دن" msgid "time is ignored" msgstr "وقت نظر انداز کردیا گیا" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "اختتام ہفتہ کا دن" msgstr[1] "اختتام ہفتے کے دن" msgid "This calculator only supports dates after year 1." msgstr "یہ شُمار کُنندہ صرف 1 سال بعد کی تاریخوں کی معاونت رکھتا ہے." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "آخرِ ہفتہ کا دن نظر انداز کردیا گیا" msgstr[1] "آخرِ ہفتہ کے دن نظر انداز کردیے گئے" msgid "Date calculator" msgstr "تاریخ شُمار کُنندہ" msgid "Current date" msgstr "حالیہ تاریخ" msgid "Set current date" msgstr "حالیہ تاریخ مرتب کریں" msgid "Second" msgstr "سیکنڈ" msgid "Set current time" msgstr "حالیہ وقت مرتب کریں" msgid "Reset time" msgstr "وقت صاف کریں" msgid "First date and time" msgstr "پہلی تاریخ اور وقت" msgid "Second date and time" msgstr "دوسری تاریخ اور وقت" msgid "Alternative time units" msgstr "متبادل وقت کی اکائیاں" msgid "Result" msgstr "نتیجہ" msgid "Duration between two dates" msgstr "دو تاریخوں کے درمیان مدت" msgid "Operation" msgstr "عمل" msgid "add" msgstr "شامل کریں" msgid "subtract" msgstr "تفریق" msgid "Date and time to add or subtract from" msgstr "تاریخ اور وقت کی شمولیت یا اس سے حصول" msgid "Years" msgstr "سال" msgid "Weeks" msgstr "ہفتے" msgid "Seconds" msgstr "سیکنڈ" msgid "Ignore weekend days" msgstr "آخرِ ہفتہ کے دنوں کو نظر انداز کریں" msgid "Reset fields" msgstr "حلقے صاف کریں" msgid "Time to add or subtract" msgstr "وقت برائے اضافہ یا حصول" msgid "Add to or subtract from a date" msgstr "تاریخ میں شامل یا حاصل کریں" msgid "Cannot perform selected operation." msgstr "منتخب کردہ عمل ادا نہیں کیا جاسکتا." msgid "Task has been modified or removed." msgstr "مہم تبدیل یا حذف کردی گئی." msgid "Remind me later" msgstr "بعد میں یاد دلائیں" msgid "Done" msgstr "تکمیل شدہ" msgid "Show task" msgstr "مہم دکھائیں" msgid "Alarm warning!" msgstr "الارم انتباہ!" msgid "postponed" msgstr "مؤخر کردہ" msgid "Day note" msgstr "دن نوٹ" msgid "Events" msgstr "واقعات" msgid "Event" msgstr "واقعہ" msgid "Task" msgstr "مہم" msgid "Birthday" msgstr "سالگرہ" msgid "Show Osmo" msgstr "اوسمو کو ظاہر کریں" msgid "event" msgid_plural "events" msgstr[0] "واقعہ" msgstr[1] "واقعات" msgid "No valid calendars defined" msgstr "کوئی موزوں تقویم متعین نہیں ہے" msgid "iCalendar events" msgstr "آئی کیلینڈر واقعات" msgid "Time" msgstr "وقت" msgid "The list will be cleared and all entries will be lost." msgstr "فہرست صاف کردی جائے گی اور تمام اندراجات ضائع ہوجائیں گے." msgid "event exported" msgid_plural "events exported" msgstr[0] "واقعہ برآمد کردیا گیا" msgstr[1] "واقعات برآمد کردیے گئے" msgid "iCalendar export" msgstr "آئی کلینڈر برآمد" msgid "Day Selector" msgstr "دن منتخب کار" msgid "Use date period" msgstr "تاریخ کی مدت استعمال کریں" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "متعین کردہ تاریخ میں کوئی مہمیں نہیں پائی گئیں." msgid "Save tasks" msgstr "مہم محفوظ کریں" msgid "tasks exported" msgstr "مہمیں برآمد کردی گئیں" msgid "was born" msgstr "تاریخ پیدائش" msgid "year old" msgid_plural "years old" msgstr[0] "سال پرانا" msgstr[1] "سال پرانے" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "دن سال کے ختم ہونے میں باقی ہے" msgstr[1] "دن سال کے ختم ہونے میں باقی ہیں" msgid "the last day of the year" msgstr "سال کا آخری دن" msgid "Day tasks" msgstr "دن کی مہم" msgid "Selected day note will be removed." msgstr "منتخب کردہ دن کا نوٹ حذف کردیا جائے گا." msgid "Continue?" msgstr "جاری رہیں؟" msgid "Previous year" msgstr "سابقہ سال" msgid "Previous month" msgstr "سابقہ ماہ" msgid "Previous day" msgstr "سابقہ دن" msgid "Next day" msgstr "اگلا دن" msgid "Next month" msgstr "اگلا ماہ" msgid "Next year" msgstr "اگلا سال" msgid "Full-year calendar" msgstr "پورے سال کی تقویم" msgid "Print calendar" msgstr "تقویم طبع کریں" msgid "Toggle day note panel" msgstr "دن نوٹ پینل معکوس کریں" msgid "Select day color" msgstr "دن کا رنگ منتخب کریں" msgid "Browse notes" msgstr "نوٹس دیکھیں" msgid "Browse iCal events" msgstr "iCal واقعات دیکھیں" msgid "Export to iCal file" msgstr "iCal فائل میں برآمد کریں" msgid "Previous and next month" msgstr "سابقہ اور اگلا ماہ" msgid "Close note panel" msgstr "نوٹ پینل بند کریں" msgid "Clear text" msgstr "متن صاف کریں" msgid "Info" msgstr "معلومات" msgid "Select color" msgstr "رنگ منتخب کریں" msgid "Name day" msgstr "دن نام" msgid "Printing properties" msgstr "طباعت خصوصیات" msgid "Month name" msgstr "ماہ نام" msgid "Day name" msgstr "دن کا نام" msgid "Fonts" msgstr "فونٹ" msgid "Birthdays" msgstr "سالگرہیں" msgid "Namedays" msgstr "دنوں کے نام" msgid "Visible events" msgstr "مرئی واقعات" msgid "Padding" msgstr "پیڈنگ" msgid "Event maximum length" msgstr "واقعہ کا زیادہ سے زادہ طول" msgid "Page orientation:" msgstr "صفحہ کی رُخ بندی" msgid "Portrait" msgstr "پورٹریٹ" msgid "Landscape" msgstr "لینڈسکیپ" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "لیپ کا سال" msgid "Yes" msgstr "ہاں" msgid "No" msgstr "نہیں" msgid "Chinese year animal" msgstr "چینی سال جانور" msgid "Number of days" msgstr "دنوں کی تعداد" msgid "Number of weeks" msgstr "ہفتوں کی تعداد" msgid "Number of weekend days" msgstr "آخرِ ہفتہ کے دنوں کی تعداد" msgid "Year info" msgstr "سال کی تفصیلات" msgid "Alternative view" msgstr "متبادل منظر" msgid "Started" msgstr "شروع کردہ" msgid "Finished" msgstr "تکمیل یافتہ" msgid "New task" msgstr "نئی مہم" msgid "Remove task" msgstr "مہم حذف کریں" msgid "Change due date to previous date" msgstr "باقی تاریخ کو سابقہ تاریخ پر تبدیل کریں" msgid "Change due date to next date" msgstr "باقی تاریخ کو اگلی تاریخ پر تبدیل کریں" msgid "Export tasks" msgstr "مہم برآمد کریں" msgid "Print visible tasks list" msgstr "مرئی مہم کی فہرست طبع کریں" msgid "Task details" msgstr "مہم تفصیلات" msgid "Close description panel" msgstr "تفصیلات پینل بند کریں" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "سابقہ ٹیب پر منتقل ہوں" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "اگلے ٹیب پر منتقل ہوں" msgid "switch to selected page" msgstr "منتخب کردہ صفحہ پر منتقل ہوں" msgid "show options window" msgstr "اختیارات کا دریچہ دکھائیں" msgid "show about window" msgstr "بابت کا دریچہ دکھائیں" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "اختیارات اور بابت ٹیب میں صفحہ کو بدلیں" msgid "exit" msgstr "برخاست" msgid "Space" msgstr "خلاء" msgid "select current date" msgstr "حالیہ تاریخ منتخب کریں" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "ذاتی ڈیٹا روئیت معکوس کریں" msgid "Arrows" msgstr "تیر" msgid "change day" msgstr "دن تبدیل کریں" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "دن کے معلوماتی پینل کے مواد کو سکرول کریں" msgid "change month" msgstr "ماہ تبدیل کریں" msgid "Home/End" msgstr "گھر/آخر" msgid "change year" msgstr "سال تبدیل کریں" msgid "toggle calendars for the previous and next month" msgstr "گزشتہ اور آئندہ ماہ کی تقویم کو ظاہر یا غائب کریں" msgid "day notes browser" msgstr "دن نوٹس براؤزر" msgid "assign background color to day note" msgstr "دن نوٹ کو پس منظر رنگ دیں" msgid "date calculator" msgstr "تاریخ شمار کنندہ" msgid "show full-year calendar" msgstr "پورے سال کی تقویم دکھائیں" msgid "jump to date" msgstr "تاریخ پر جائیں" msgid "Delete" msgstr "حذف" msgid "remove day note" msgstr "دن کا نوٹ حذف کریں" msgid "Alt+Arrows" msgstr "Alt+Arrows" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "مدون بند کریں" msgid "toggle bold" msgstr "چوڑائی معکوس کریں" msgid "toggle italic" msgstr "ٹیڑھا معکوس کریں" msgid "toggle underline" msgstr "خط کشیدہ معکوس کریں" msgid "toggle strikethrough" msgstr "خط مقطوع منعکس کریں" msgid "toggle highlight" msgstr "نشان زدگی معکوس کریں" msgid "Arrows Up/Down" msgstr "تیر اوپر/نیچے" msgid "toggle alternative view" msgstr "متبادل منظر معکوس کریں" msgid "year info" msgstr "سال کی معلومات" msgid "set current year" msgstr "حالیہ سال مرتب کریں" msgid "close full-year calendar" msgstr "پورے سال کی تقویم بند کریں" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "مہم شامل کریں" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "مہم مدون کریں" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "مہم حذف کریں" msgid "toggle hidden tasks" msgstr "پوشیدہ مہمیں معکوس کریں" msgid "activate search field" msgstr "تلاش کے حلقے فعال کریں" msgid "Left, Right" msgstr "بائیں، دائیں" msgid "change category filter" msgstr "زمرہ فلٹر تبدیل کریں" msgid "close task info panel" msgstr "مہم کا معلوماتی پینل بند کریں" msgid "Insert" msgstr "داخل کریں" msgid "add contact" msgstr "رابطہ شامل کریں" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "رابطہ مدون کریں" msgid "remove contact" msgstr "رابطہ حذف کریں" msgid "change search mode" msgstr "تلاش کا انداز تبدیل کریں" msgid "close contact details panel" msgstr "رابطے کی تفصیلات کا پینل بند کریں" msgid "Enter" msgstr "انٹر" msgid "open note" msgstr "نوٹ کھولیں" msgid "add note" msgstr "نوٹ شامل کریں" msgid "remove note" msgstr "نوٹ حذف کریں" msgid "edit note name and category" msgstr "نوٹ کا نام اور زمرہ مدون کریں" msgid "close note editor" msgstr "نوٹ مدون بند کریں" msgid "save note" msgstr "نوٹ محفوظ کریں" msgid "find text" msgstr "متن تلاش کریں" msgid "clear selection attributes" msgstr "انتخاب کے خواص صاف کریں" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "اوسمو صارف کی سہولت کو مدِ نظر رکھ کر تیار کیا گیا ہے، چنانچہ اس کے بہت سارے " "کلیدی اختصارات (شارٹ کٹ) ہیں. ذیل میں ان اختصارات کی پوری فہرست ہے:" msgid "Note editor" msgstr "نوٹ مدون" msgid "Selector" msgstr "منتخب کار" msgid "Editor" msgstr "مدون" msgid "A handy personal organizer" msgstr "آسان ذاتی منظم" msgid "compiled on" msgstr "تالیف کیا گیا" msgid "Programming" msgstr "پروگرامنگ" msgid "Graphics" msgstr "ترسیمیات" msgid "Contributors" msgstr "معاونین" msgid "Translators" msgstr "مترجمین" msgid "Mailing lists" msgstr "میلنگ لسٹ" msgid "Bug tracker" msgstr "بگ ٹریکر" msgid "Feature requests" msgstr "خوبیوں کی درخواستیں" msgid "Available modules" msgstr "دستیاب ماڈیول" msgid "Compiled-in features" msgstr "تالیفی خوبیاں" msgid "iCalendar support" msgstr "آئی کیلینڈر معاونت" msgid "Encrypted notes support" msgstr "رمز شدہ نوٹس معاونت" msgid "Backup support" msgstr "بیک اپ معاونت" msgid "Printing support" msgstr "طباعت کی معاونت" msgid "Spell checker support" msgstr "املاء کی پڑتال کی معاونت" msgid "version" msgstr "نسخہ" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "کلید اختصار" msgid "License" msgstr "اجازہ" #~ msgid "handy personal organizer" #~ msgstr "آسان ذاتی منظم" osmo-0.4.2/po/es.po0000664000175000017500000011171513204320601010777 00000000000000# Spanish translation of Osmo # This file is distributed under the same license as the Osmo package. # Nacho Alonso González , 2009. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.8 \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-03-29 16:059+100\n" "Last-Translator: Nacho Alonso González \n" "Language-Team: Spanish\n" "Language: es\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" msgid "Colors" msgstr "Colores" msgid "Color of contact tags" msgstr "Color de las etiquetas de contactos" msgid "Color of links" msgstr "Color de enlaces" msgid "Font size" msgstr "Tamaño de la fuente" msgid "Name font size" msgstr "Tamaño de fuente de los nombres" msgid "Item font size" msgstr "Tamaño de fuente de los elementos" msgid "Photo size" msgstr "Tamaño de la foto" msgid "Small" msgstr "Pequeña" msgid "Medium" msgstr "Mediana" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Ocultar columna de grupos" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Edad" msgid "Birthday date" msgstr "Fecha de nacimiento" msgid "Zodiac sign" msgstr "Signo del zodiaco" msgid "Contacts" msgstr "Contactos" msgid "Appearance" msgstr "Apariencia" msgid "Miscellaneous" msgstr "Varios" msgid "Groups" msgstr "Grupos" msgid "Visible columns in birthday browser" msgstr "Columnas visibles en lista de cumpleaños" msgid "Algorithm" msgstr "Algoritmo" msgid "Hashing" msgstr "Resumen" msgid "Compression" msgstr "Compresión" msgid "Ratio" msgstr "Ratio" msgid "Fast" msgstr "Rápido" msgid "Good" msgstr "Bueno" msgid "Best" msgstr "Mejor" msgid "Type" msgstr "Tipo" msgid "Category" msgstr "Categoría" msgid "Last changes" msgstr "Último cambio" msgid "Created" msgstr "Creado" msgid "Remember the last selected category" msgstr "Recordar última categoría seleccionada" msgid "Use system format for date and time" msgstr "Usar formato de fecha y hora del sistema" msgid "Notes" msgstr "Notas" msgid "Encryption" msgstr "Cifrado" msgid "Visible columns" msgstr "Columnas visibles" msgid "Categories" msgstr "Categorías" msgid "Notes options" msgstr "Opciones de notas" msgid "Jump to date" msgstr "Ir a fecha" msgid "Day" msgstr "Día" msgid "Month" msgstr "Mes" msgid "Year" msgstr "Año" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleccione una fuente..." msgid "None" msgstr "Ninguno" msgid "All items" msgstr "Todos los elementos" msgid "Question" msgstr "Pregunta" msgid "Information" msgstr "Información" msgid "Error" msgstr "Error" msgid "Warning" msgstr "Aviso" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "El fichero seleccionado existe. ¿Sobrescribir?" msgid "Selected contact will be removed." msgstr "El contacto seleccionado será eliminado." msgid "Are you sure?" msgstr "¿Está seguro?" msgid "No date" msgstr "Sin fecha" msgid "Select photo" msgstr "Seleccione fotografía" msgid "Address" msgstr "Dirección" msgid "Postcode" msgstr "Código postal" msgid "City" msgstr "Ciudad" msgid "State" msgstr "Región" msgid "Country" msgstr "País" msgid "Edit contact" msgstr "Editar contacto" msgid "Add contact" msgstr "Nuevo contacto" msgid "Personal" msgstr "Personal" msgid "Group" msgstr "Grupo" msgid "Home" msgstr "Casa" msgid "Work" msgstr "Trabajo" msgid "Phones" msgstr "Teléfonos" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Información adicional" msgid "_OK" msgstr "" msgid "no entries" msgstr "sin entradas" msgid "entry" msgid_plural "entries" msgstr[0] "elemento" msgstr[1] "elementos" msgid "Calendar notes" msgstr "Notas del calendario" msgid "Search" msgstr "Buscar" msgid "Filter" msgstr "Filtro" msgid "Current month" msgstr "Mes actual" msgid "Selected month" msgstr "Mes seleccionado" msgid "Current year" msgstr "Año actual" msgid "Selected year" msgstr "Año seleccionado" msgid "Selected month and year" msgstr "Mes y año seleccionado" msgid "All notes" msgstr "Todos las notas" msgid "Case sensitive" msgstr "Coincidencia de mayúsculas / minúsculas" msgid "Strikethrough past day notes" msgstr "Tachar notas de días pasados" msgid "Date" msgstr "Fecha" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rata" msgid "Ox" msgstr "Buey" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Liebre" msgid "Dragon" msgstr "Dragón" msgid "Snake" msgstr "Serpiente" msgid "Horse" msgstr "Caballo" msgid "Sheep" msgstr "Oveja" msgid "Monkey" msgstr "Mono" msgid "Fowl" msgstr "Gallo" msgid "Dog" msgstr "Perro" msgid "Pig" msgstr "Cerdo" msgid "Unknown" msgstr "Desconocido" msgid "Aquarius" msgstr "Acuario" msgid "Pisces" msgstr "Piscis" msgid "Aries" msgstr "Aries" msgid "Taurus" msgstr "Tauro" msgid "Gemini" msgstr "Géminis" msgid "Cancer" msgstr "Cáncer" msgid "Leo" msgstr "Leo" msgid "Virgo" msgstr "Virgo" msgid "Libra" msgstr "Libra" msgid "Scorpio" msgstr "Escorpio" msgid "Sagittarius" msgstr "Sagitario" msgid "Capricorn" msgstr "Capricornio" msgid "Osmo has to be restarted to take effect." msgstr "Osmo debe ser reiniciado para que tome efecto." msgid "Layout" msgstr "Formato" msgid "Vertical" msgstr "Vertical" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Posición de las pestañas" msgid "Left" msgstr "Izquierda" msgid "Right" msgstr "Derecha" msgid "Top" msgstr "Arriba" msgid "Bottom" msgstr "Abajo" msgid "Disable underline in links" msgstr "Deshabilitar subrayado en los enlaces" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Al menos un módulo debe ser visible." msgid "Calendar" msgstr "Calendario" msgid "Tasks" msgstr "Tareas" msgid "Override locale settings" msgstr "Ignorar configuración del sistema" msgid "Date format" msgstr "Formato fecha" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Formato de hora" msgid "hours" msgstr "horas" msgid "Spell checker language" msgstr "Idioma del corrector ortográfico" msgid "Enable tooltips" msgstr "Mostrar sugerencias" msgid "Remember last selected page" msgstr "Recordar última página seleccionada" msgid "Save data after every modification" msgstr "Guardar datos después de cada modificación" msgid "Web browser" msgstr "Navegador" msgid "E-mail client" msgstr "Cliente de correo electrónico" msgid "Sound player" msgstr "Reproductor de sonido" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "El patrón %s será reemplazado por la dirección web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "El patrón %s será reemplazado por el correo electrónico" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "El patrón %s será reemplazado por el nombre del fichero de sonido" msgid "Enable system tray" msgstr "Mostrar icono en bandeja de sistema" msgid "Start minimised" msgstr "Iniciar minimizado" msgid "Ignore day note events" msgstr "Ignorar eventos de nota del día" msgid "General" msgstr "General" msgid "Hide" msgstr "Ocultar" msgid "Helpers" msgstr "Programas auxiliares" msgid "System tray" msgstr "Bandeja de sistema" msgid "Preferences" msgstr "Preferencias" msgid "Syntax" msgstr "Sintaxis" msgid "abbreviated weekday name" msgstr "nombre abreviado del día de la semana" msgid "full weekday name" msgstr "nombre del día de la semana" msgid "abbreviated month name" msgstr "nombre abreviado del mes" msgid "full month name" msgstr "nombre del mes" msgid "day of the month" msgstr "día del mes" msgid "MM/DD/YY" msgstr "MM/DD/AA" msgid "day of the month without leading zeros" msgstr "día del mes sin ceros a la izquierda" msgid "month" msgid_plural "months" msgstr[0] "mes" msgstr[1] "meses" msgid "year without century" msgstr "año sin siglo" msgid "year with century" msgstr "año con siglo" msgid "Date header format" msgstr "Formato de la cabecera de fecha" msgid "Set default format" msgstr "Formato por defecto" msgid "Date format syntax" msgstr "Formato de fecha" msgid "Day note marker" msgstr "Marca para nota del día" msgid "Event marker" msgstr "Marca de eventos" msgid "Circle" msgstr "Círculo" msgid "Ellipse" msgstr "Elipse" msgid "Wave" msgstr "Onda" msgid "Current day marker" msgstr "Marca de fecha actual" msgid "Arrow" msgstr "Flecha" msgid "Free-hand circle" msgstr "Círculo" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Color de los días de fin de semana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Color del cursor" msgid "Event marker color" msgstr "Color de marca de eventos" msgid "Current day marker color" msgstr "Color de marca de fecha actual" msgid "Birthday marker color" msgstr "Color de marca de cumpleaños" msgid "Date font" msgstr "Fuente de la fecha" msgid "Calendar font" msgstr "Fuente del calendario" msgid "Note font" msgstr "Fuente de las notas" msgid "Enable block cursor" msgstr "Usar cursor de bloque" msgid "Cursor thickness" msgstr "Grosor del cursor" msgid "Thin" msgstr "Delgado" msgid "Thick" msgstr "Grueso" msgid "Edit category" msgstr "Editar categoría" msgid "Color" msgstr "Color" msgid "Name" msgstr "Nombre" msgid "Select ICS file" msgstr "Seleccione fichero ICS" msgid "All Files" msgstr "Todos los ficheros" msgid "Calendar files (*.ics)" msgstr "Ficheros de calendario (*.ics)" msgid "Modify ICAL parameters" msgstr "Modificar parámetros de ICAL" msgid "Filename" msgstr "Nombre de archivo" msgid "Options" msgstr "Opciones" msgid "Disabled" msgstr "Deshabilitado" msgid "Valid" msgstr "Válido" msgid "Description" msgstr "Descripción" msgid "Full date" msgstr "Fecha completa" msgid "Mark" msgstr "Marca" msgid "Week start on Monday" msgstr "La semana empieza el lunes" msgid "Show day names" msgstr "Mostrar nombre del día" msgid "No month change" msgstr "No cambiar de mes" msgid "Show week numbers" msgstr "Mostrar numero de semana" msgid "Simple view in full-year calendar" msgstr "Vista simple del calendario anual" msgid "Enable auxilary calendars" msgstr "Mostrar calendarios auxiliares" msgid "Ascending sorting in day notes browser" msgstr "Ordenación ascendente en notas del día" msgid "Enable spell checker in day notes" msgstr "Habilitar corrector ortográfico en notas del día" msgid "Current time" msgstr "Hora actual" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Número de día" msgid "Today distance" msgstr "Distancia al día de hoy" msgid "Marked days" msgstr "Días marcados" msgid "Week number" msgstr "Número de semana" msgid "Weekend days" msgstr "Días en fin de semana" msgid "Day category" msgstr "Categoría de días" msgid "Moon phase" msgstr "Fase lunar" msgid "Day notes" msgstr "Nota del día" msgid "Day categories" msgstr "Categorías de días" msgid "iCalendar files" msgstr "Archivos de iCalendar" msgid "Show in day info panel" msgstr "Mostrar en el calendario" msgid "Tasks list" msgstr "Lista de tareas" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Núm." msgid "Summary" msgstr "Resumen" msgid "Due date" msgstr "Fecha de fin" msgid "Priority" msgstr "Prioridad" msgid "Error printing" msgstr "Error imprimiendo" msgid "No birthdays defined" msgstr "No se han definido cumpleaños" msgid "Birthdays list" msgstr "Lista de cumpleaños" msgid "Days to birthday" msgstr "Días hasta el cumpleaños" msgid "today" msgstr "Hoy" msgid "Select CSV file" msgstr "Seleccione fichero CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Archivos CSV (valores separados por comas) (*.csv)" msgid "Please select file first." msgstr "Por favor, seleccione el fichero antes." msgid "Import contacts" msgstr "Importar contactos" msgid "Import type" msgstr "Tipo de importación" msgid "File" msgstr "Fichero" msgid "Input filename" msgstr "Fichero de entrada" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Nada que importar." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contacto añadido" msgstr[1] "contactos añadidos" msgid "of" msgstr "de" msgid "Record" msgstr "Registro" msgid "Number fields per record" msgstr "Numero de campos por registro" msgid "Use first record as header" msgstr "Usar primer registro como cabecera" msgid "Field type" msgstr "Tipo de campo" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Ningún registro encontrado en el fichero seleccionado." msgid "Cannot read file." msgstr "El fichero no se puede leer." msgid "Cannot open file." msgstr "El fichero no se puede abrir." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Mostrar calendario" msgid "Show tasks" msgstr "Mostrar tareas" msgid "Show contacts" msgstr "Mostrar contactos" msgid "Show notes" msgstr "Mostrar notas" msgid "Show options" msgstr "Mostrar opciones" msgid "Quit" msgstr "Salir" msgid "Show small calendar window" msgstr "Mostrar pequeña ventana de calendario" msgid "Check for events since last run" msgstr "Comprobar los eventos desde la última ejecución" msgid "Number of days to check forward for events (default: 0)" msgstr "Número de días para comprobar eventos hacia delante (por defecto: 0)" msgid "Set absolute path for settings and data files" msgstr "Establezca la ruta absoluta para los ficheros de datos y configuración" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERROR: No se pudo crear el fichero de configuración." msgid "Another copy of OSMO is already running." msgstr "Otra copia de OSMO ya se esta ejecutando." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Usar simultáneamente dos o mas copias de OSMO puede causar perdida de datos." msgid "Do you really want to continue?" msgstr "¿Desea continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baja" msgid "High" msgstr "Alta" msgid "Done!" msgstr "¡Hecho!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contacto exportado" msgstr[1] "contactos exportados" msgid "Cannot create file." msgstr "No se pudo crear el fichero." msgid "Select output file" msgstr "Seleccione el fichero de salida" msgid "Export contacts" msgstr "Exportar contactos" msgid "Output format" msgstr "Formato de salida" msgid "Add header" msgstr "Añadir cabecera" msgid "Fields to export" msgstr "Campos a exportar" msgid "All" msgstr "Todo" msgid "Invert" msgstr "Invertir" msgid "Select fields" msgstr "Seleccione campos" msgid "Output filename" msgstr "Fichero de salida" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Color de los elementos que finalizan hoy" msgid "Color of items that are due in the next 7 days" msgstr "Color de los elementos que finalizan en los próximos 7 días" msgid "Color of items that are past due" msgstr "Color de los elementos que ya han vencido" msgid "Task info font" msgstr "Fuente para detalles" msgid "Show in bold tasks with high priority" msgstr "Mostrar en negrita tareas con prioridad alta" msgid "Hide completed tasks" msgstr "Ocultar tareas terminadas" msgid "Delete completed tasks without confirmation" msgstr "Eliminar las tareas terminadas sin confirmación" msgid "Add new task when double clicked on tasks list" msgstr "Crear nueva tarea al hacer doble-click en la lista de tareas" msgid "Postpone time" msgstr "Retraso de aviso pospuesto" msgid "minutes" msgstr "minutos" msgid "0 for disable" msgstr "0 para deshabilitar" msgid "Repeat sound alarm" msgstr "Repetir alarma de sonido" msgid "times" msgstr "veces" msgid "Global notification command" msgstr "Comando global de notificación" msgid "Tasks options" msgstr "Opciones de las tareas" msgid "Reminder options" msgstr "Opciones de avisos" msgid "Insert timeline" msgstr "Insertar franja de tiempo" msgid "Timeline" msgstr "Franjas de tiempo" msgid "From (hour)" msgstr "Desde (hora)" msgid "Step (minutes)" msgstr "Salto (minutos)" msgid "To (hour)" msgstr "Hasta (hora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Seleccione al menos un día si la tarea es repetitiva." msgid "Set time" msgstr "Fijar hora" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minuto" msgid "Today" msgstr "Hoy" msgid "Tomorrow" msgstr "Mañana" msgid "Selected task will be removed." msgstr "Las tareas seleccionadas se eliminarán." msgid "Select date and time" msgstr "Seleccione fecha y hora" msgid "Enable sound notification" msgstr "Notificar con sonido" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarma de aviso" msgid "Days" msgstr "Días" msgid "Hours" msgstr "Horas" msgid "Minutes" msgstr "Minutos" msgid "Alarm command" msgstr "Comando de alarma" msgid "Date period" msgstr "Periodo de fechas" msgid "Months" msgstr "Meses" msgid "Repeat" msgstr "Repetir" msgid "Repeat in the following days" msgstr "Repetir en los días siguientes" msgid "Time period" msgstr "Periodo de tiempo" msgid "Start" msgstr "Inicio" msgid "End" msgstr "Fin" msgid "Interval" msgstr "Intervalo" msgid "Ignore alarm when task expired offline" msgstr "Ignorar alarmas cuando la tarea expira sin conexión" msgid "Recurrent task" msgstr "Tarea repetitiva" msgid "Enable" msgstr "Habilitar" msgid "Edit task" msgstr "Editar tarea" msgid "Add task" msgstr "Nueva tarea" msgid "Basic" msgstr "Básico" msgid "Advanced" msgstr "Avanzado" msgid "New Moon" msgstr "Luna nueva" msgid "Waxing Crescent Moon" msgstr "Creciente" msgid "Quarter Moon" msgstr "Cuarto creciente" msgid "Waxing Gibbous Moon" msgstr "Creciente" msgid "Full Moon" msgstr "Luna llena" msgid "Waning Gibbous Moon" msgstr "Menguante" msgid "Last Quarter Moon" msgstr "Cuarto menguante" msgid "Waning Crescent Moon" msgstr "Menguante" msgid "Cannot create backup!" msgstr "¡No se puede crear la copia de seguridad!" msgid "Save backup" msgstr "Guardar copia de seguridad" msgid "Password protection" msgstr "Proteger con contraseña" msgid "Enter password" msgstr "Contraseña" msgid "Re-enter password" msgstr "Escriba la contraseña de nuevo" msgid "Please enter the password" msgstr "Escriba la contraseña" msgid "Passwords do not match!" msgstr "¡Las contraseñas no coinciden!" msgid "Backup file saved successfully!" msgstr "¡Copia de seguridad guardada correctamente!" msgid "Open backup file" msgstr "Abrir fichero de copia de seguridad" msgid "Osmo backup files (*.bck)" msgstr "Ficheros de copia de seguridad de Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Este no es un fichero de copia de seguridad de Osmo" msgid "Incorrect password!" msgstr "¡Contraseña incorrecta!" msgid "All your data will be replaced with backup file content." msgstr "" "Todos los datos serán reemplazados con los del fichero de copia de seguridad." msgid "Osmo has to be restarted now..." msgstr "Osmo debe ser reiniciado ahora..." msgid "Please select address" msgstr "Por favor, seleccione la dirección." msgid "First name" msgstr "Nombre" msgid "Last name" msgstr "Apellidos" msgid "Second name" msgstr "Segundo nombre" msgid "Nickname" msgstr "Apodo" msgid "Tags" msgstr "Etiquetas" msgid "Name day date" msgstr "Santo" msgid "Home address" msgstr "Dirección de residencia" msgid "Home postcode" msgstr "Código postal" msgid "Home city" msgstr "Ciudad de residencia" msgid "Home state" msgstr "Región de residencia" msgid "Home country" msgstr "País de residencia" msgid "Organization" msgstr "Organización" msgid "Department" msgstr "Departamento" msgid "Work address" msgstr "Dirección de trabajo" msgid "Work postcode" msgstr "Código postal de trabajo" msgid "Work city" msgstr "Ciudad de trabajo" msgid "Work state" msgstr "Región de trabajo" msgid "Work country" msgstr "País de trabajo" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Teléfono" msgid "Home phone 2" msgstr "Teléfono 2" msgid "Home phone 3" msgstr "Teléfono 3" msgid "Home phone 4" msgstr "Teléfono 4" msgid "Work phone" msgstr "Teléfono del trabajo" msgid "Work phone 2" msgstr "Teléfono del trabajo 2" msgid "Work phone 3" msgstr "Teléfono del trabajo 3" msgid "Work phone 4" msgstr "Teléfono del trabajo 4" msgid "Cell phone" msgstr "Teléfono móvil" msgid "Cell phone 2" msgstr "Teléfono móvil 2" msgid "Cell phone 3" msgstr "Teléfono móvil 3" msgid "Cell phone 4" msgstr "Teléfono móvil 4" msgid "E-Mail" msgstr "Correo electrónico" msgid "E-Mail 2" msgstr "Correo electrónico 2" msgid "E-Mail 3" msgstr " Correo electrónico 3" msgid "E-Mail 4" msgstr " Correo electrónico 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotografía" msgid "New contact" msgstr "Nuevo contacto" msgid "Remove contact" msgstr "Eliminar contacto" msgid "Show birthdays" msgstr "Mostrar cumpleaños" msgid "Show contact location on the map" msgstr "Mostrar localización de contactos en mapa" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Acerca de" msgid "Clear" msgstr "Borrar" msgid "First Name" msgstr "Nombre" msgid "Last Name" msgstr "Apellidos" msgid "All fields" msgstr "Todos los campos" msgid "Contact details" msgstr "Detalles del contacto" msgid "Close contact panel" msgstr "Cerrar detalles del contacto" msgid "The note has changed." msgstr "La nota ha cambiado." msgid "Do you want to save it?" msgstr "¿Desea guardarla?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Palabras" msgid "Lines" msgstr "Líneas" msgid "Characters" msgstr "Caracteres" msgid "White characters" msgstr "Espacios" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Documento" msgid "Selection" msgstr "Selección" msgid "Modified" msgstr "Modificado" msgid "New note" msgstr "Nueva nota" msgid "Edit note" msgstr "Editar nota" msgid "Delete note" msgstr "Borrar nota" msgid "Save note" msgstr "Guardar nota" msgid "Find" msgstr "Buscar" msgid "Toggle spell checker" msgstr "Revisor ortográfico" msgid "Bold" msgstr "Negrita" msgid "Italic" msgstr "Cursiva" msgid "Underline" msgstr "Subrayado" msgid "Strikethrough" msgstr "Tachado" msgid "Highlight" msgstr "Destacado" msgid "Clear attributes" msgstr "Borrar formato" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Insertar fecha y hora actual" msgid "Insert separator" msgstr "Insertar separador" msgid "Statistics" msgstr "Estadísticas" msgid "Close editor" msgstr "Cerrar editor" msgid "Note name" msgstr "Nombre de la nota" msgid "Read-only" msgstr "Solo lectura" msgid "Line" msgstr "Línea" msgid "Column" msgstr "Columna" msgid "case sensitive" msgstr "Coincidencia de mayúsculas / minúsculas" msgid "Close find entry" msgstr "Cerrar barra de búsqueda" msgid "Edit entry" msgstr "Editar elemento" msgid "Remember cursor position" msgstr "Recordar posición del cursor" msgid "Selected note will be removed." msgstr "La nota seleccionada será eliminada." msgid "No further data recovery will be possible." msgstr "No se podrán recuperar los datos después." msgid "Add note" msgstr "Añadir nota" msgid "Plain" msgstr "Sencillo" msgid "Encrypted" msgstr "Cifrado" msgid "Note type" msgstr "Tipo de nota" msgid "Cannot open the note." msgstr "La nota no se puede abrir." msgid "encryption support is disabled" msgstr "El soporte para notas cifradas está deshabilitado" msgid "Authorization" msgstr "Autorización" msgid "year" msgid_plural "years" msgstr[0] "año" msgstr[1] "años" msgid "day" msgid_plural "days" msgstr[0] "día" msgstr[1] "días" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" msgid "or" msgstr "o" msgid "rounded down" msgstr "redondeado hacia abajo" msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" msgid "working day" msgid_plural "working days" msgstr[0] "día laborable" msgstr[1] "días laborables" msgid "time is ignored" msgstr "se ignora la hora" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "día en fin de semana" msgstr[1] "días en fin de semana" msgid "This calculator only supports dates after year 1." msgstr "Esta calculadora solo admite fechas posteriores al año 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "día de fin de semana ignorado" msgstr[1] "días de fin de semana ignorados" msgid "Date calculator" msgstr "Calculadora de fechas" msgid "Current date" msgstr "Fecha actual" msgid "Set current date" msgstr "Fijar fecha actual" msgid "Second" msgstr "Segundo" msgid "Set current time" msgstr "Fijar hora actual" msgid "Reset time" msgstr "Reiniciar hora" msgid "First date and time" msgstr "Fecha y hora de inicio" msgid "Second date and time" msgstr "Fecha y hora de fin" msgid "Alternative time units" msgstr "Unidades de tiempo alternativas" msgid "Result" msgstr "Resultado" msgid "Duration between two dates" msgstr "Tiempo entre dos fechas" msgid "Operation" msgstr "Operación" msgid "add" msgstr "sumar" msgid "subtract" msgstr "restar" msgid "Date and time to add or subtract from" msgstr "Fecha y hora de la que sumar o restar" msgid "Years" msgstr "Años" msgid "Weeks" msgstr "Semanas" msgid "Seconds" msgstr "Segundos" msgid "Ignore weekend days" msgstr "Ignorar días en fin de semana" msgid "Reset fields" msgstr "Reiniciar campos" msgid "Time to add or subtract" msgstr "Hora que sumar o restar" msgid "Add to or subtract from a date" msgstr "Sumar o restar de una fecha" msgid "Cannot perform selected operation." msgstr "No se puede realizar la operación seleccionada." msgid "Task has been modified or removed." msgstr "La tarea ha sido editada o eliminada" msgid "Remind me later" msgstr "Recordarme más tarde" msgid "Done" msgstr "Hecho" msgid "Show task" msgstr "Mostrar tarea" msgid "Alarm warning!" msgstr "!Aviso de alarma!" msgid "postponed" msgstr "Pospuesto" msgid "Day note" msgstr "Nota del día" msgid "Events" msgstr "Eventos" msgid "Event" msgstr "Evento" msgid "Task" msgstr "Tarea" msgid "Birthday" msgstr "Fecha de nacimiento" msgid "Show Osmo" msgstr "Mostrar Osmo" msgid "event" msgid_plural "events" msgstr[0] "evento" msgstr[1] "eventos" msgid "No valid calendars defined" msgstr "No se han definido calendarios válidos" msgid "iCalendar events" msgstr "eventos de iCalendar" msgid "Time" msgstr "Hora" msgid "The list will be cleared and all entries will be lost." msgstr "La lista será vaciada, todas las entradas se perderán." msgid "event exported" msgid_plural "events exported" msgstr[0] "evento exportado" msgstr[1] "eventos exportados" msgid "iCalendar export" msgstr "Exportación de iCalendar" msgid "Day Selector" msgstr "Seleccionar día" msgid "Use date period" msgstr "Periodo de fechas" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "No hay tareas con fecha definida." msgid "Save tasks" msgstr "Guardar tareas" msgid "tasks exported" msgstr "tareas exportadas" msgid "was born" msgstr "nació" msgid "year old" msgid_plural "years old" msgstr[0] "año de edad" msgstr[1] "años de edad" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "día hasta fin de año" msgstr[1] "días hasta fin de año" msgid "the last day of the year" msgstr "Último día del año" msgid "Day tasks" msgstr "Tareas del día" msgid "Selected day note will be removed." msgstr "La nota del día seleccionado será eliminada." msgid "Continue?" msgstr "¿Continuar?" msgid "Previous year" msgstr "Año anterior" msgid "Previous month" msgstr "Mes anterior" msgid "Previous day" msgstr "Día anterior" msgid "Next day" msgstr "Día siguiente" msgid "Next month" msgstr "Mes siguiente" msgid "Next year" msgstr "Año siguiente" msgid "Full-year calendar" msgstr "Calendario de año completo" msgid "Print calendar" msgstr "Imprimir calendario" msgid "Toggle day note panel" msgstr "Mostrar / ocultar notas del día" msgid "Select day color" msgstr "Seleccionar color del día" msgid "Browse notes" msgstr "Explorar notas" msgid "Browse iCal events" msgstr "Explorar eventos de iCalendar" msgid "Export to iCal file" msgstr "Exportar a fichero iCal" msgid "Previous and next month" msgstr "Mes anterior y siguiente" msgid "Close note panel" msgstr "Cerrar notas" msgid "Clear text" msgstr "Borrar texto" msgid "Info" msgstr "Información" msgid "Select color" msgstr "Seleccionar color" msgid "Name day" msgstr "Santo" msgid "Printing properties" msgstr "Propiedades de la impresión" msgid "Month name" msgstr "Nombre del mes" msgid "Day name" msgstr "Nombre del día" msgid "Fonts" msgstr "Fuentes" msgid "Birthdays" msgstr "Cumpleaños" msgid "Namedays" msgstr "Santos" msgid "Visible events" msgstr "Eventos visibles" msgid "Padding" msgstr "Espaciado" msgid "Event maximum length" msgstr "Longitud máxima de los eventos" msgid "Page orientation:" msgstr "Orientación de la página:" msgid "Portrait" msgstr "Vertical" msgid "Landscape" msgstr "Horizontal" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Año bisiesto" msgid "Yes" msgstr "Sí" msgid "No" msgstr "No" msgid "Chinese year animal" msgstr "Animal del calendario chino" msgid "Number of days" msgstr "Número de días" msgid "Number of weeks" msgstr "Número de semanas" msgid "Number of weekend days" msgstr "Días en fin de semana" msgid "Year info" msgstr "Información del año" msgid "Alternative view" msgstr "Vista alternativa" msgid "Started" msgstr "Inicio" msgid "Finished" msgstr "Terminado" msgid "New task" msgstr "Nueva tarea" msgid "Remove task" msgstr "Eliminar tarea" msgid "Change due date to previous date" msgstr "Cambiar fecha de fin al día anterior" msgid "Change due date to next date" msgstr "Cambiar fecha de fin al día siguiente" msgid "Export tasks" msgstr "Exportar tareas" msgid "Print visible tasks list" msgstr "Imprimir lista de tareas visibles" msgid "Task details" msgstr "Detalles de la tarea" msgid "Close description panel" msgstr "Cerrar descripción" msgid "Ctrl+PageUp" msgstr "Ctrl+Re.Pág." msgid "switch to previous tab" msgstr "ir a la pestaña anterior" msgid "Ctrl+PageDn" msgstr "Ctrl+Av.Pág." msgid "switch to next tab" msgstr "ir a la pestaña siguiente" msgid "switch to selected page" msgstr "ir a la pestaña seleccionada" msgid "show options window" msgstr "Mostrar ventana de opciones" msgid "show about window" msgstr "Mostrar ventana \"Acerca de\"" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "Re.Pág./Av.Pág." msgid "switch page in options and about tab" msgstr "cambiar de página en las pestañas \"Opciones\" y \"Acerca de\"" msgid "exit" msgstr "salir" msgid "Space" msgstr "Espacio" msgid "select current date" msgstr "seleccionar fecha actual" msgid "Ctrl+Space" msgstr "Ctrl+Espacio" msgid "toggle personal data visibility" msgstr "cambiar visibilidad de datos personales" msgid "Arrows" msgstr "Flechas" msgid "change day" msgstr "cambiar día" msgid "Ctrl+Up/Down" msgstr "Ctrl+Arriba/Abajo" msgid "scroll the contents in the day info panel" msgstr "desplazar el contenido del panel de información del día" msgid "change month" msgstr "cambiar mes" msgid "Home/End" msgstr "Inicio/Fin" msgid "change year" msgstr "cambiar año" msgid "toggle calendars for the previous and next month" msgstr "mostrar / ocultar calendarios para el mes anterior y siguiente" msgid "day notes browser" msgstr "explorador de notas del día" msgid "assign background color to day note" msgstr "asignar color de fondo a nota del día" msgid "date calculator" msgstr "calculadora de fechas" msgid "show full-year calendar" msgstr "mostrar calendario de año completo" msgid "jump to date" msgstr "ir a fecha" msgid "Delete" msgstr "Borrar" msgid "remove day note" msgstr "eliminar nota del día" msgid "Alt+Arrows" msgstr "Alt+Flechas" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "cerrar editor" msgid "toggle bold" msgstr "activar / desactivar negrita" msgid "toggle italic" msgstr "activar / desactivar cursiva" msgid "toggle underline" msgstr "activar / desactivar subrayado" msgid "toggle strikethrough" msgstr "activar / desactivar tachado" msgid "toggle highlight" msgstr "activar / desactivar destacado" msgid "Arrows Up/Down" msgstr "Flechas arriba/abajo" msgid "toggle alternative view" msgstr "vista alternativa" msgid "year info" msgstr "información del año" msgid "set current year" msgstr "año actual" msgid "close full-year calendar" msgstr "cerrar calendario de año completo" msgid "Alt+a, Insert" msgstr "Alt+a, Insertar" msgid "add task" msgstr "añadir tarea" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Intro" msgid "edit task" msgstr "editar tarea" msgid "Alt+r, Delete" msgstr "Alt+r, Supr." msgid "remove task" msgstr "eliminar tarea" msgid "toggle hidden tasks" msgstr "mostrar / ocultar tareas escondidas" msgid "activate search field" msgstr "activar el campo de búsqueda" msgid "Left, Right" msgstr "Izquierda, Derecha" msgid "change category filter" msgstr "cambiar filtro de categorías" msgid "close task info panel" msgstr "cerrar información de la tarea" msgid "Insert" msgstr "Insertar" msgid "add contact" msgstr "nuevo contacto" msgid "Ctrl+Enter" msgstr "Ctrl+Intro" msgid "edit contact" msgstr "editar contacto" msgid "remove contact" msgstr "eliminar contacto" msgid "change search mode" msgstr "cambiar el modo de búsqueda" msgid "close contact details panel" msgstr "cerrar detalles del contacto" msgid "Enter" msgstr "Intro" msgid "open note" msgstr "abrir nota" msgid "add note" msgstr "añadir nota" msgid "remove note" msgstr "eliminar nota" msgid "edit note name and category" msgstr "editar nombre de la nota y categoría" msgid "close note editor" msgstr "cerrar notas" msgid "save note" msgstr "guardar nota" msgid "find text" msgstr "buscar" msgid "clear selection attributes" msgstr "eliminar atributos de la selección" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO ha sido diseñado para ser cómodo para el usuario, por eso existen " "multitud de atajos de teclado. Esta es la lista completa:" msgid "Note editor" msgstr "Editor de notas" msgid "Selector" msgstr "Seleccionar" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Un práctico organizador personal" msgid "compiled on" msgstr "compilado el" msgid "Programming" msgstr "Desarrollo" msgid "Graphics" msgstr "Gráficos" msgid "Contributors" msgstr "Contribuciones" msgid "Translators" msgstr "Traductores" msgid "Mailing lists" msgstr "Listas de correo" msgid "Bug tracker" msgstr "Sistema de seguimiento de errores" msgid "Feature requests" msgstr "Peticiones de características" msgid "Available modules" msgstr "Módulos disponibles" msgid "Compiled-in features" msgstr "Características compiladas" msgid "iCalendar support" msgstr "Soporte de iCalendar" msgid "Encrypted notes support" msgstr "Soporte de notas cifradas" msgid "Backup support" msgstr "Soporte de copia de seguridad" msgid "Printing support" msgstr "Soporte de impresión" msgid "Spell checker support" msgstr "Soporte de comprobación ortográfica" msgid "version" msgstr "versión" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Atajos de teclado" msgid "License" msgstr "Licencia" #~ msgid "handy personal organizer" #~ msgstr "práctico organizador personal" osmo-0.4.2/po/ur.mo0000664000175000017500000012331713204320602011015 00000000000000m<)6 667 7 ,7.77f7o7x77777 7 77 77 7 7 8 888 W8 b8p8 888(8 88 89 999&%9$L9 q9999999 99 9::::": 5: B:N:*T::: :::::::";8; J;T; c;n; w; ; ; ;; ; ;;<&<-<2<8< I<T<h< <<<<<.<!< ===L=S=Z= o={== = === = = = = = =>> /> => J> W>d> u>>%>> > >>> >? ?? #?0?9?B? R? \? g?q?v??+? ? ? ???@!@9@B@F@K@Q@X@a@|@@@@ @!@ @ @ @ @ @AAAA8ALA!fAAA AA AAAAAAB B BB0BEBLBSB cBpBBBB BBBBBBB BB B CCCC -C 9C CCMC`CgCoCCCCCCCCCCCC CC C D D D *D 7D DD QD _DjD sD~DDDD DD DDDDD&DDE'E.E >EJE^E cEoE~EEEEEEEEE E E FF F'F 9F FFPF WFaF fFrFvF|FFFF FF FF FFFF FFF GG G"G )G4G9G BGPG_GhG qG}GGG G GGGGG*GH"H!4HVHqHuHzH H H H HH HHHH7H0IGIoWII II IIJ(1JZJ jJxJJJJ JJJJJJ J K KKK4K:JKKKK K KK KK K LL5LILZL cL oL|LLLLL LLLLL#LM/M@M OM[MbMM M MMM M M"M M MNNNN 2N>NFNVNfN wNNN NN N!N"NO=OLOdOO O OO-OOPP&P/P 5P?P NP \P }PP%PP P PP Q QQ!1QJSQQQ QQQQQQRR RR (R6RSR[R bR nR|RR R"RRR R RR3R3S0SS6SSSS1ST+T1T 6T BTNTfT oTyTTTTTT TT TTTT#U8U>UDUMUSU#cUUUUUUUUUUUU V V#V 8VEVXV^VoVuV zV V V V V V V V V V VV WWW W$W;WTWjW nWzWW#WWW W WW X X(X DXQXjX|X XX"XXXX Y&Y*AY lYyY YY Y YYY YZZ )Z4Z:ZKZ\ZlZ ~ZZZ Z ZZ ZZ ZZZ Z Z [ [)"[L[[[o[[[[[$[[[\.\=\V\f\l\r\ \0\\\ \\]/]@]H] Q]\](u]] ] ]]]]^_____M`T`m`1```````a0aAaJa`araa`a a bb $b'2bZbCpb b b#b bbc c7&c@^c ccIcd )d 6d CdPdhdddddddde e3e Se^e~eee-e*e*f(hEh`h(wh'hh%hi'i".iIQiAi:ij/j6j?jYjbj jjjjj j j j j jkk!6kXkjk|kkk k kBk"l8lLl`l}lllllll mm&m9mJm[m`mymGmm m m5m+n<4n:qnnnn n nn,o.o>oPobotoGooo p(pApZp cpnp+p#p%pFp!=q_q q#qqqqqqqr r$r:r/Yr r rrr(rs s$s9sMslsusssss!ssst tt3tEtWtkttt&ttttt t u uu'%u Munuwuuuuuuuuuvv &v4v =v Hv Sv$^v%v&vv(v w5wPwZmw3w?w ~E~U~j~}~~~5~,~b3/! +%>Qe*)T [f /ق  $7-2ej>BQa!҄//I fq ,… &07W<!̆",C2R'Ƈ ݇ 5!Wr #Ո 4T,o$)މ?'Egn(7;`9֋ ['l#&ߌ!%E8_#M֍9$^v-Ďڎ*3~O Ώُ,$ Q^}8͐ (?FM.cʑ AG7<g$$IRj[2Ɠ ** Ucuz(. ..G]S  (2:mɖ 2Qe"z+ +>Qdy Ԙ ߘ #>)\(ޙ,=%Fl,͚*<P/i5KOT Ü͜<m641A_Qw ɞ֞' 3 I"Tw "ڟ  " ?J^cu ȠߠJb)x#'ơ./ MGX&(Ǣ3'$L*f ) ˣX+E%q0## /8P?b3" Vd#Ds/[11!h,bYz:m^_@@<,_zgG+hvN3=NS8{ #/_jC|3)IZh f$QK} R= 9nkMFTSE;;y9n* HpJLN8i>b e^5(&B Jgs +7k<0l7#"#%%rFV3c@zF0E-o8w]YPpD.c?\BubOxdIfQj[dW({D(jt`s!'mE>atW/pXwvkWUCQ|wOi?`m:ZeGRM'*[=H*!gOAUK  Td;SB]>-L%$ }cT 2<) i+)Y0J-u {6l]5"A5yya6 A}$, 2X~P"Z~f\|reLIUVl2^K?&` ~xXPuC4&H\xq46rMR Vv4Gn't.qao1:oq.790 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.10 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-04-07 00:59+0500 Last-Translator: Muhammad Ali Makki Language-Team: urducoder.com Language: ur MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; 0 برائے معطلیآسان ذاتی منظمبابترابطہ شامل کریںسرساز شامل کریںمہم فہرست میں دہرے کلک پر نئی مہم شامل کریںنوٹ شامل کریںمہم شامل کریںتاریخ میں شامل یا حاصل کریںاضافی معلوماتپتہاعلیعمرالارم کمانڈالارم انتباہالارم انتباہ!الگورتھمتمامتمام فائلیںتمام حلقےتمام عناصرتمام نوٹسآپ کا تمام ڈیٹا بیک اپ فائل کے مواد سے بدل دیا جائے گا.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, Deleteمتبادل وقت کی اکائیاںمتبادل منظراوسمو کا دوسرا نسخہ پہلے ہی چل رہا ہے.مواجہبرج دلوکیا آپ پُریقین ہیں؟برج حملتیرتیرتیر اوپر/نیچےدن نوٹس براؤزر میں صعودی ترتیبکم سے کم ایک ماڈیول ظاہر ہونا چاہیے.منظوریدستیاب ماڈیولبیک اپ کی فائل کامیابی سے محفوظ کردی گئی!بیک اپ معاونتبنیادیبہترینسالگرہسالگرہ تاریخسالگرہ مارکر رنگسالگرہیںسالگرہیں فہرستبلاگچوڑانیچےiCal واقعات دیکھیںنوٹس دیکھیںبگ ٹریکربائٹسCSV (کوما-مقسم قدر) فائلیں (*.csv)تقویمتقویم فائلیں (*.ics)تقویم فونٹتقویم نوٹسبرج سرطانبیک اپ نہیں بنایا جاسکتا!فائل نہیں بنائی جاسکتی.فائل نہیں کھولی جاسکتی.نوٹ نہیں کھولا جاسکتا.منتخب کردہ عمل ادا نہیں کیا جاسکتا.فائل نہیں پڑھی جاسکتی.برج جدیحساسزمرےزمرہسیل فونسیل فون 2سیل فون 3سیل فون 4باقی تاریخ کو اگلی تاریخ پر تبدیل کریںباقی تاریخ کو سابقہ تاریخ پر تبدیل کریںکیریکٹرزآخری بار چلانے سے واقعات چیک کریںچینی سال جانوردائریشہرصافاوصاف صاف کریںمتن صاف کریںرابطے کا پینل بند کریںتفصیلات پینل بند کریںمدون بند کریںاندراج تلاش بند کریںنوٹ پینل بند کریںرنگرابطے کے ٹیگ کا رنگان عناصر کا رنگ جو اگلے 7 دنوں تک باقی ہیںان عناصر کا رنگ جو آج کے لیے باقی ہیںان عناصر کا رنگ جن کا وقت گزر گیاروابط کے رنگرنگکالمتالیفی خوبیاںدباؤرابطے کی تفصیلاترابطےجاری رہیں؟معاونینمُلکبنایا گیاCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/Downحالیہ تاریخحالیہ دن مارکرحالیہ دن مارکر رنگحالیہ ماہحالیہ وقتحالیہ سالکرسر کا رنگکرسر کی کثافتDD-MM-YYYYتاریختاریخ اور وقت کی شمولیت یا اس سے حصولتاریخ شُمار کُنندہتاریخ فونٹتاریخ ہیئتتاریخ ہیئت ساختتاریخ سرساز ہیئتتاریخ مدتدندن منتخب کاردن زمرہ جاتدن کا زمرہدن کا نامدن نوٹدن نوٹ مارکردن کے نوٹسدن کا عدددن کی مہمدنسالگرہ میں دنحذفتکمیل شدہ مہمیں بغیر تصدیق کے حذف کردیںنوٹ حذف کریںمحکمہتفصیلروابط میں خط کشیدگی معطل کریںمعطلکیا آپ واقعی آگے بڑھنا چاہتے ہیں؟کیا آپ اسے محفوظ کرنا چاہتے ہیں؟دستاویزکُتاتکمیل شدہہوگیا!اژدہاباقی تاریخدو تاریخوں کے درمیان مدتبرقی پتہبرقی پتہ 2برقی پتہ 3برقی پتہ 4ای میل موکلغلطی: کانفگ (config) فائل نہیں بنائی جاسکتیزمرہ مدون کریںرابطہ مدون کریںاندراج مدون کریںنوٹ مدون کریںمہم مدون کریںمدونبیضویفعال کریںاضافی تقویمیں فعال کریںبلاک کرسر فعال کریںصوتی اطلاع فعال کریںدن کے نوٹس میں املاء کی پڑتال فعال کریںنظام ٹرے فعال کریںٹول ٹِپ فعال کریںرمز شدہرمز شدہ نوٹس معاونترمز نگاریآخرانٹرپاس ورڈ داخل کریںغلطیطباعت کی غلطیEscواقعہواقعہ مارکرواقعات مارکر رنگواقعہ کا زیادہ سے زادہ طولواقعاتبرآمدرابطے برآمد کریںمہم برآمد کریںiCal فائل میں برآمد کریںتیزفیکسخوبیوں کی درخواستیںحلقہ نوعیتحلقے برائے برآمدفائلفائل کا نامفلٹرتلاشتکمیل یافتہپہلا نامپہلی تاریخ اور وقتپہلا نامفونٹ حجمفونٹپرندہآزاد-دستی حلقہاز (گھنٹہ)مکمل چاندپوری تاریخپورے سال کی تقویمبرج جوزاعامعالمگیر اطلاعی کمانڈاچھاترسیمیاتگروپگروپخرگوشہیشنگمعاونچھپائیںتکمیل شدہ مہم چھپائیںگروپ کالم چھپائیںبالانشان زدہگھرگھر کا پتہشہرملکگھر کا فونگھر کا فون 2گھر کا فون 3گھر کا فون 4گھر کا پوسٹ کوڈصوبہگھر/آخرافقیگھوڑاگھنٹہگھنٹےاے او ایل پیغام رساںگاڈو-گادو پیغام رساںآئی سی کیو پیغام رساںجبر پیغام رساںایم ایس این پیغام رساںسکائپی پیغام رساںٹلن پیغام رساںیاہو پیغام رساںجب مہم آف لائن اختتام پذیر ہو الارم نظر انداز کریںدن نوٹ واقعات نظر انداز کریںآخرِ ہفتہ کے دنوں کو نظر انداز کریںدرآمدرابطے درآمد کریںدرآمد نوعیتغلط پاس ورڈ!معلوماتمعلوماتماداخل فائل نامداخل کریںحالیہ تاریخ اور وقت شامل کریںجداگار شامل کریںٹائم لائن شامل کریںانٹرنیٹوقفہپلٹیںٹیڑھاعنصر کا فونٹ حجمتاریخ پر جائیںکلید اختصارلینڈسکیپبڑاآخری نامآخری چوتھائی چاندآخری تبدیلیاںآخری نامخاکہلیپ کا سالبائیںبائیں، دائیںبرج اسدبرج میزاناجازہلکیرلکیریںپستMM-DD-YYYYMM/DD/YYمیلنگ لسٹنشاننشان زد دندرمیانہمنٹمنٹمتفرقتبدیل شدہICAL پیرامیٹر تبدیل کریںبندرمہینہماہ ناممہینےچاند کا دورانیہنامدن نامنام دن تاریخفونٹ حجم نامدنوں کے نامنیا چاندنیا رابطہنیا نوٹنئی مہماگلا دناگلا ماہاگلا سالعرفیتنہیںکوئی سالگرہ متعین نہیںبلا تاریخمزید ڈیٹا کی بازیافتگی ممکن نہیں ہوگی.کوئی ماہ کی تبدیلی نہیںمنتخب کردہ فائل میں کوئی ریکارڈ نہیں پایا گیا.متعین کردہ تاریخ میں کوئی مہمیں نہیں پائی گئیں.کوئی موزوں تقویم متعین نہیں ہےنہیں.کچھ نہیںنوٹنوٹ مدوننوٹ کا فونٹنوٹ کا نامنوٹ کی نوعیتنوٹسنوٹس اختیاراتدرآمد کرنے کے لیے کچھ نہیں ہے.فی اندراج حلقوں کی تعداددنوں کی تعدادآئندہ واقعات کو چیک کرنے کے لیے دنوں کی تعداد (طے شدہ: 0)آخرِ ہفتہ کے دنوں کی تعدادہفتوں کی تعداداوسمو صارف کی سہولت کو مدِ نظر رکھ کر تیار کیا گیا ہے، چنانچہ اس کے بہت سارے کلیدی اختصارات (شارٹ کٹ) ہیں. ذیل میں ان اختصارات کی پوری فہرست ہے:بیک اپ فائل کھولیںعملاختیاراتادارہاوسمو بیک اپ فائلیں (*.bck)اوسمو کو پھر سے چلانے کی ضرورت ہے...تبدیلیوں کی اثر پذیری کے لیے اوسمو کو دوبارہ چلانا ہوگا.ماحاصل فائل نامماحاصل ہیئتلوکل ترتیاب پر فائق ہوںبیلپیڈنگصفحہ کی رُخ بندیPageUp/PageDnپاس ورڈ تحفظپاس ورڈ مطابقت نہیں رکھتا!ذاتیفونتصویرتصویر کا حجمخنزیربرج حوتسادہبراہ مہربانی پاس ورڈ داخل کریںبراہ مہربانی پتہ منتخب کریںبراہ مہربانی کم سے کم ایک دن منتخب کریں جب ری کرنسی فعال ہو.براہ مہربانی پہلے فائل منتخب کریں.پورٹریٹپوسٹ کوڈموخر کرنے کا وقتترجیحاتسابقہ اور اگلا ماہسابقہ دنسابقہ ماہسابقہ سالتقویم طبع کریںمرئی مہم کی فہرست طبع کریںطباعت خصوصیاتطباعت کی معاونتاہمیتپروگرامنگچوتھائی چاندسوالبرخاستچوہاقدرپاس ورڈ دوبارہ داخل کریںفقط-برائے-پڑھائیریکارڈباز گرد مہمکرسر کی جگہ یاد رکھیںآخری منتخب کردہ صفحہ یاد رکھیںآخری منتخب کردہ زمرے کو یاد رکھیںبعد میں یاد دلائیںیاد دہانی اختیاراترابطہ حذف کریںمہم حذف کریںدہرائیںمندرجہ ذیل دنوں میں دہرائیںالارم کی آواز دہرائیںحلقے صاف کریںوقت صاف کریںنتیجہدائیںبرج قوسبیک اپ محفوظ کریںہر تبدیلی پر تاریخ محفوظ کریںنوٹ محفوظ کریںمہم محفوظ کریںبرج عقربتلاشسیکنڈدوسری تاریخ اور وقتدوسرا نامسیکنڈCSV فائل منتخب کریںICS فائل منتخب کریںفونٹ منتخب کریں...رنگ منتخب کریںتاریخ اور وقت منتخب کریںدن کا رنگ منتخب کریںحلقے منتخب کریںماحاصل فائل منتخب کریںتصویر منتخب کریںمنتخب کردہ رابطہ حذف کردیا جائے گا.منتخب کردہ دن کا نوٹ حذف کردیا جائے گا.منتخب کردہ فائل پہلے ہی موجود ہے! کیا اس کے اوپر لکھ دیا جائے؟منتخب کردہ ماہماہ اور سال منتخب کریںمنتخب کردہ نوٹ حذف کردیا جائے گا.منتخب کردہ مہم حذف کردی جائے گی.منتخب کردہ سالانتخابمنتخب کارترتیبات اور ڈیٹا فائلوں کے لیے مطلق پاتھ مرتب کریںحالیہ تاریخ مرتب کریںحالیہ وقت مرتب کریںطے شدہ ہیئت مرتب کریںوقت متعین کریںبھیڑاوسمو کو ظاہر کریںسالگرہیں دکھائیںتقویم دکھائیںنقشے پر رابطہ کا مقام ظاہر کریںرابطے دکھائیںدنوں کے نام دکھائیںچوڑی مہموں میں زیادہ اہمیت کے ساتھ دکھائیںدن کے معلوماتی پینل میں دکھائیںنوٹس دکھائیںاختیارات دکھائیںچوٹی تقویم دریچہ دکھائیںمہم دکھائیںمہم دکھائیںہفتے کے اعداد ظاہر کریںمکمل-سال تقویم میں سادہ منظرایک ہی وقت میں اوسمو کے دو نسخوں کے استعمال سے ڈیٹا کا نقصان ہوسکتا ہے.چھوٹاسانپموسیقی سازندہخلاءاملاء پڑتال زباناملاء کی پڑتال کی معاونتابتداءمنمائز شروع کریںشروع کردہحالتشُماریاتمرحلہ (منٹ)خط مقطوعگزشتہ دن اور نوٹس خط مقطوع کریںخلاصہنحونظام ٹرےٹیبز کا مقامٹیگمہممہم تفصیلاتمہم تبدیل یا حذف کردی گئی.مہم معلومات فونٹمہممہم فہرستمہم کے اختیاراتبرج ثور%s نمونہ ای میل پتہ سے بدل دیا جائے گا%s نمونہ صوتی فائل نام سے بدل دیا جائے گا%s نمونہ ویب پتہ سے بدل دیا جائے گافہرست صاف کردی جائے گی اور تمام اندراجات ضائع ہوجائیں گے.نوٹ تبدیل کردیا گیا.گھناپتلایہ شُمار کُنندہ صرف 1 سال بعد کی تاریخوں کی معاونت رکھتا ہے.یہ اوسمو بیک اپ فائل نہیں ہےشیروقتوقت کی ہیئتوقت مدتوقت برائے اضافہ یا حصولخطِ وقتتا (گھنٹہ)آجآج کا فاصلہدن نوٹ پینل معکوس کریںاملاء کی پڑتال معکوس کریںکلاوپرمترجمیننوعیتخد کشیدہنامعلومتاریخ کی مدت استعمال کریںہیڈر کے طور پر پہلا ریکارڈ استعمال کریںتاریخ اور وقت کے لیے نظام کی ہیئت استعمال کریںموزوںقدرعمودیبرج عذراءمرئی کالمسالگرہ براؤزر میں مرئی کالممرئی واقعاتویب سائٹویب سائٹ 2ویب سائٹ 3ویب سائٹ 4ماند ہلال چاندماند ابھرا چاندانتباہلہربڑھتا ہلال چاندبڑھتا ابھرا چاندویب براؤزرہفتے کا عددہفتہ پیر کو شروع ہوآخر ہفتہ کے دنآخرِ ہفتہ کے دنوں کا رنگہفتےسفید کیریکٹرزالفاظکامکام کا پتہکام کا شہرکام کا ملککام کا فونکام کا فون 2کام کا فون 3کام کا فون 4کام کا پوسٹ کوڈکام کا صوبہYYYY-DD-MMYYYY-MM-DDسالسال کی تفصیلاتسالہاںعلاقہ بروج کی علامتمختصر ماہ کا ناممختصر ہفتے کے دن کا نامتلاش کے حلقے فعال کریںشامل کریںرابطہ شامل کریںنوٹ شامل کریںمہم شامل کریںدن نوٹ کو پس منظر رنگ دیںحساسزمرہ فلٹر تبدیل کریںدن تبدیل کریںماہ تبدیل کریںتلاش کا انداز تبدیل کریںسال تبدیل کریںانتخاب کے خواص صاف کریںرابطے کی تفصیلات کا پینل بند کریںمدون بند کریںپورے سال کی تقویم بند کریںنوٹ مدون بند کریںمہم کا معلوماتی پینل بند کریںتالیف کیا گیارابطہ شامل کردیا گیارابطے شامل کردیے گئےرابطہ برآمد کردیا گیارابطے برآمد کردیے گئےتاریخ شمار کنندہدندندن نوٹس براؤزرماہ کا دنمہینے کا دن ابتدائی صفروں کے بغیردن سال کے ختم ہونے میں باقی ہےدن سال کے ختم ہونے میں باقی ہیںرابطہ مدون کریںنوٹ کا نام اور زمرہ مدون کریںمہم مدون کریںرمز نگاری کی معاونت معطل ہےاندراجاندراجاتواقعہواقعاتواقعہ برآمد کردیا گیاواقعات برآمد کردیے گئےبرخاستمتن تلاش کریںماہ کا پورا ناممکمل ہفتے کے دن کا نامگھنٹہگھنٹےگھنٹےآئی کیلینڈر واقعاتآئی کلینڈر برآمدآئی کلینڈر فائلیںآئی کیلینڈر معاونتتاریخ پر جائیںمنٹمنٹمنٹماہمہینےکوئی اندارجات نہیںبرائےنوٹ کھولیںیامؤخر کردہرابطہ حذف کریںدن کا نوٹ حذف کریںنوٹ حذف کریںمہم حذف کریںراؤنڈ کردیے گئےنوٹ محفوظ کریںدن کے معلوماتی پینل کے مواد کو سکرول کریںسیکنڈسیکنڈحالیہ تاریخ منتخب کریںحالیہ سال مرتب کریںبابت کا دریچہ دکھائیںپورے سال کی تقویم دکھائیںاختیارات کا دریچہ دکھائیںتفریقاختیارات اور بابت ٹیب میں صفحہ کو بدلیںاگلے ٹیب پر منتقل ہوںسابقہ ٹیب پر منتقل ہوںمنتخب کردہ صفحہ پر منتقل ہوںمہمیں برآمد کردی گئیںسال کا آخری دنوقت نظر انداز کردیا گیااوقاتآجمتبادل منظر معکوس کریںچوڑائی معکوس کریںگزشتہ اور آئندہ ماہ کی تقویم کو ظاہر یا غائب کریںپوشیدہ مہمیں معکوس کریںنشان زدگی معکوس کریںٹیڑھا معکوس کریںذاتی ڈیٹا روئیت معکوس کریںخط مقطوع منعکس کریںخط کشیدہ معکوس کریںنسخہتاریخ پیدائشہفتہہفتےاختتام ہفتہ کا دناختتام ہفتے کے دنآخرِ ہفتہ کا دن نظر انداز کردیا گیاآخرِ ہفتہ کے دن نظر انداز کردیے گئےکام کرنے کا دنکام کرنے کے دنسالسالسال کی معلوماتسال پراناسال پرانےسال بمع صدیسال بغیر صدیosmo-0.4.2/po/README0000664000175000017500000000046413070075501010715 00000000000000Please perform following steps to update translation: 1. Type 'make update-po' 2. Edit your .po file, fill empty and adjust fuzzy strings to be correct 3. Send updated .po file to osmo-pim-friends@lists.sourceforge.net or join to our Osmo translation team @Transifex: https://www.transifex.com/pasp/osmo osmo-0.4.2/po/pt_BR.mo0000664000175000017500000011121713204320601011370 00000000000000w)7 777 7 7.7788/8?8G8P8 T8 b8p8 88 8 8 8 888 8 89 9(9?9(P9 y99 99999&9$9 :: ):5:U:d:j:o: x:: :::::: : ::*:#;,; C;Q;`;g;};;;";; ;; << < &< 3< @<M< j< <<<<<<< << = $=1=B=S=Y=.o=!= ===== >>/> 8> B>O>W> _> j> v> > > >>> > > > >? ?$?%)?O? _? i?u?? ?? ?? ???? ? @ @@@+@+2@ ^@ j@ u@@@@@@@@@@@A A'A0A9A BA!PA rA A A A AAAAAAA! B,B?B OBYB qB|BBBBBBB BBBBBB CC(C-C1C BCMC^CcClCsCxC CC C CCCC C C CCD DD/D4D=DCDJDODWD_DdDyDD DD D D D D D D D D EE E"E(E-E3E :EGE NEXE_EhEpE&yEEEEE EEF FF"F)FFFWFgFpFyFFF F F FF FF F FF FG GGG G(G-G3G 7GBG KG YGgG lG xGGGG GGGGG GG GH H H#H2H;H DHPHYHbH kH vHHHHH*HH"H!I)IDIHIMI RI ^I hI rI|I IIII7IJJo*JJ JJ JJJ(K-K =KKKdKgKoK KKKKKK KKKKKL:LXLrL{L L LL LL LLLMM-M 6M BMOMXM]MaMgM yMMMMM#MMNN "N.N5NRN eN rN }NNN N N"N N NNNNN OO&O6OFO WOdOyO OO O!O"OOP,PDPcP P PP-PPPPQQ QQ .Q a?aNa!_aa a aaaaa aaa bb)bG8b b bb bbb,b c#c,c?cEcJcPc9ac'c ccc$cd-d6d =dJd_d ddddddd dd5d &e2eRege|e e#eee4f=f ]f%jf f ff f f f-f/f )g,5gbgwgggg ggg gg h!h%h*Oc8i32ք: DZb3g&…ȅ݅ͅ  ,1,C+p  Ćц&' 5=CLS.e ʇ߇  ")Lcňڈ4K[ s ~Ӊ  /$@%e  Ҋ܊$ "-P'g '%ċ !!-0O! '#+0@V ny ٍ̍   0 DQ` w3Ȏގ# 0K,T ҏ (?.]*(4S q,>ݑ2Mbk}=C"70)\Z>w(.U%HbgWoAP[5j&7L2@?*Umr]  j~!o/S8 x[3Lq^| dg_uQlgrf/NpGb<W@b#} R]X Y`W)=ye2E9B<31i& 'F [^ {tE0"p(f}|d~I, 4v$a4Av7K\lC>(slj1? cY :pPcyz56_RZX\qDHye|>9tS$d%xVTmF.t'f;;hhXu#`aM"S@-*;C^{*0. /V?6MNO2!AT4]xi~_n 5uwNTL-mcBrsUqwIHnKkO%O+,BK}<DD { R+o:8 38Z#zGzh6)!9:,Jn'YQeF-PV JQkkJ`&=sv1+EaiIM$G0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2015-02-14 01:17+0000 Last-Translator: Alexandro Casanova Language-Team: Portuguese (Brazil) Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); 0 para desativarUm conveniente organizador pessoalCréditosAdicionar contatoAdicionar cabeçalhoAdicionar nova tarefa ao clicar duas vezes na lista de tarefasAdicionar notaAdicionar tarefaAdicionar ou subtrair de uma dataInformações adicionaisEndereçoAvançadoIdadeComando de alarmeAviso de alarmeAviso de alarme!Algoritmo TodosTodos os ArquivosTodos os camposTodos os itensTodas as notasTodos os dados serão substitutos com o conteúdo do arquivo de backup.Alt+SetasAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteUnidades de tempo alternativasVisão alternativaOutra copia do OSMO já está em execução.Aparência AquárioVocê tem certeza?AriesSetaSetasSetas Cima/BaixoClassificação ascendente em navegação de notas do diaPelo menos um modulo deve ser visível.AutorizaçãoMódulos disponíveisDados de backupArquivo de backup salvo com sucesso!Suporte a BackupBásico.ÓtimoAniversárioData do aniversárioCor do marcador de aniversárioAniversáriosLista de aniversáriosBlogNegritoBaixoProcurar eventos iCalProcurar notasLista de BugsBytesArquivos CSV (valores separados por vírgula) (*.csv)CalendárioArquivos de calendário (*.ics)Fonte do calendárioNotas do calendárioCâncerNão foi possível criar backup!Não foi possível criar o arquivo.Não foi possível ler arquivo.Não foi possível abrir nota.Não foi possível executar a operação selecionadaNão foi possível ler arquivo.CapricórnioDiferenciar maiúsculas de minusculasCategoriasCategoriaCelularCelular 2Celular 3Celular 4Alterar data de vencimento para próxima dataAlterar data de vencimento até a data anteriorCarácteresChecar por eventos desde a ultima execuçãoAno zodíaco chinêsCirculoCidadeLimparLimpar atributosLimpar textoFechar painel de contatoFechar painel de descriçãoFechar editorFechar entrada da pesquisaFechar painel de notasCorCor de tags do contatoCor dos itens vencem nos próximos 7 dias.Cor de itens que vencem hojeCor dos itens que venceramCor dos linksCoresColunaFuncionalidades compiladasCompressãoDetalhes do contatoContatosContinuar?ContribuintesPaisCriado emCtrl+EnterCtrl+PageDownCtrl+PageUpCtrl+EspaçoCtrl+Cima/BaixoData de hojeMarcador de dia atualCor do marcador do dia atualMês atualHorário atualAno atualCor do cursorEspessura do CursorDD-MM-AAAADataData e hora para adicionar ou subtrairCalcular dataFonte da dataFormato de dataFormato de sintaxe da dataFormato do cabeçalho de dataPeríodo de dataDiaSeletor DiaCategorias do diaCategoria DiaNome do diaNota do diaMarcador de nota diáriaNotas do diaNúmero do diaTarefas do diaDiasDias para o aniversárioDeleteDeletar tarefas concluídas sem confirmaçãoDeletar notaDepartamentoDescriçãoDesativar sublinhado em linksDesabilitadoVocê realmente deseja continuar?Você realmente deseja salvá-la?DocumentoCachorroFeitoFeito!DragãoData de vencimentoDuração entre duas datasE-MailE-Mail 2E-Mail 3E-Mail 4Cliente de E-mailERRO: Não foi possível criar arquivos de configuraçãoEditar categoriaEditar contatoEditar entradaEditar notaEditar tarefaEditorElipseHabilitarAtivar calendários auxiliarHabilitar bloqueio de cursorHabilitar som de notificaçãoAtivar verificador ortográfico em notas do diaAtivar bandeja do sistemaHabilitar dicasCriptografadoSuporte a notas criptografadasCriptografiaFimEnterDigite a senhaErroErro de impressãoEscEventoMarcador de eventosCor do marcador de eventoComprimento máximo do eventoEventosExportarExportar contatoExportar tarefasExportar para arquivo iCalRápidoFaxSolicitação de RecursoTipo de campoCampos para exportarArquivoNome do arquivoFiltroEncontrarFinalizadoPrimeiro NomePrimeira data e horaPrimeiro nomeTamanho da fonteFontesGalinhaCirculo a mão livreDe (horas)Lua CheiaData completaTodo o ano do calendárioGêmeosGeralNotificação de comando globalBomGráficosGrupoGruposLebreTipo de criptografiaAjudantesOcultarOcultar tarefas concluídasOcultar grupo de colunasAltaRealçarCasaEndereço residencialCidade natalPaís de origemTelefone residencialTelefone residencial 2Telefone residencial 3Telefone residencial 4CEP residencialEstado natalHome/EndHorizontalCavaloHoraHorasEndereço de bate-papo AOLEndereço de bate-papo Gadu-GaduEndereço de bate-papo ICQEndereço de bate-papo JabberEndereço de bate-papo MSNEndereço de bate-papo SkypeEndereço de bate-papo TlenEndereço de bate-papo YahooIgnorar aviso quando tarefa termina desligadaIgnorar eventos de nota do diaIgnorar dias de final de semanaImportarImportar contatosTipo de importaçãoSenha incorreta!InformaçõesInformaçõesArquivo de entradaInserirInserir data e hora atualInserir separadorInserir linha do tempoInternetIntervaloInverterItálicoTamanho da fonte do itemIr para dataAtalhos do tecladoPaisagemGrandeSobre NomeLua Quarto MinguanteUltimas modificaçõesSobre nomeLayoutAno bissextoEsquerdaEsquerda, DireitaLeãoLibraLicençaLinhaLinhasBaixaMM-DD-AAAAMM/DD/AALista de E-mailsProvedor de mapasMarcarDias marcadosCombinar contatos com determinada stringMédiaMinutoMinutosDiversoModificado emModificar parâmetros ICALMacacoMêsNome do mêsMesesFases da luaNomeNome do diaData do diaTamanho da fonte do nomeNome dos diasLua NovaNovo contatoNova notaNova tarefaDia seguintePróximo mêsPróximo anoApelido/NicknameNumNenhum aniversário definidoSem dataNenhuma recuperação de dados será possivel.Não mudar mêsNenhum registro encontrado no arquivo selecionado.Não há tarefas com data definida encontrada.Nenhum calendário válido definido.Não.NenhumNotaEditor de notasFonte da notaNome da notaTipo de notaNotasOpções de notasNada a importarNumero de campo por registroNúmero de diasNúmero de dias a frente para checar por eventos (padrão: 0)Número de dias de fim-de-semanaNúmero de semanasOSMO foi projetado tendo em mente a conveniência do usuário, são vários os atalhos do teclado. Aqui está a lista completa:Abrir arquivo de backupOperaçãoOpçõesOrganizaçãoArquivo de backup Osmo (.*bck)Osmo será reiniciado agora...Osmo precisa ser reiniciado para obter efeito.Arquivo de saídaFormato de saídaSubstituir as configurações locaisBoiAcolchoamentoOrientação da página:PageUp/PageDownProteção por senhaAs senhas não coincidem!PessoalTelefonesFotoTamanho da fotoPorcoPeixesPlaníceFavor digitar a senhaFavor selecione o endereçoFavor selecionar pelo menos um dia quando a recorrência é habilitada.Favor selecione o primeiro arquivo.RetratoCEPAdiar tempoPreferênciasMês anterior e próximoDia anteriorMês anteriorAno anteriorImprimir calendárioImprimir lista de tarefas visíveisPropriedades de impressãoSuporte a ImpressãoPrioridadeDesenvolvedoresLua Quarto CrescentePerguntaSairRatoRelaçãoRepita a senhaSomente leituraRegistroTarefa recorrenteLembrar posição do cursorLembrar da última página selecionadaLembrar a última categoria selecionadaLembrar mais tarde.Opções de lembreteRemover contatoRemover tarefaRepetirRepetir nos dias a seguintesRepetir o alarme de somReiniciar camposResetar horaRestaurar dadosResultadoDireitaSagitárioSalvar backupSalvar os dados depois de cada modificaçãoSalvar notaSalvar tarefasEscorpiãoPesquisarSegundoSegunda data e horaSegundo nomeSegundosSelecione o arquivo CSVSelecionar arquivo ICSSelecionar uma fonte...Selecione a corSelecionar data e hora.Selecione a cor do diaSelecione os camposSelecione o arquivo de saídaSelecionar fotoContato selecionado foi removido.Nota do dia selecionado será removida.Arquivo selecionado existe! Deseja substituir?Mês selecionadoMês e ano selecionadoNota selecionada será removida.Selecionar tarefa a ser removida.Ano selecionadoSeleçãoSeletorDefinir diretório absoluto para configurações e arquivos de dados.Definir dia de hojeDefinir a hora atualDefinir formato padrãoDefinir horaOvelhaMostrar OsmoMostrar aniversáriosMostrar calendárioVer localização do contato no mapaMostrar contatosMostrar nomes do diaMostrar botão sair na barra de ferramentasMostrar em negrito tarefas com grande prioridadeMostrar em painel informações do diaMostrar notasMostrar opçõesMostrar segundosMostrar pequena janela de calendárioMostrar tarefaMostrar tarefasMostrar números da semanaVisão simples em todo calendário do anoUsar simultaneamente duas ou mais instancias do OSMO poderão ser uma das causas para a perda de dados.PequenoCobraReprodutor de somEspaçoIdioma do corretor ortográficoSuporte ao verificador ortográficoComeçarIniciar minimizadoComeçouEstadoEstatistiasProgresso (minutos)RiscarRiscar notas do dia passadoResumoSintaxeBandeja do sistemaPosição das abasTagsTarefaDetalhes da tarefaA tarefa foi modificada ou removida.Informações da fonte de tarefasTarefasLista de tarefasOpções de tarefasTouroO %s padrão será substituído como endereço de e-mailO %s será substituído como nome do arquivo de somO %s padrão será substituído como endereço webA lista será apagada e todas as entradas serão perdidas.A nota foi modificadaEspessoFinoEsta calculadora suporta apenas datas após um ano.Este não é um arquivo de backup OsmoTigreHoraFormato de horaPeríodo de tempoTempo para adicionar ou subtrairLinha do tempoPara (horas)HojeDistancia de hojeHabilitar/Desabilitar painel de nota diáriaHabilitar/Desabilitar corretor ortográficoAmanhãCimaTradutoresTipoSublinhadoDesconhecidoUse período de dataUsar primeiro registro como cabeçalhoUse formato do sistema para data e horaVálidoValorVerticalVirgemColunas visíveisColunas visíveis no navegador de aniversárioEventos visíveisWWWWWW 2WWW 3WWW 4Lua MinguanteLua Minguante GibosaAvisoOndaLua CrescenteLua Crescente GibosaNavegadorNúmero da semanaInício da semana na segunda-feiraDia de final de semanaCor dos dias de fim-de-semanaSemanasCarácteres brancosPalavrasTrabalhoEndereço do trabalhoCidade onde trabalhaPaís de onde trabalhaTelefone do trabalhoTelefone do trabalho 2Telefone do trabalho 3Telefone do trabalho 4CEP do trabalhoEstado de onde trabalhaAAAA-DD-MMAAAA-MM-DDAnoInformação do anoAnosSimSigno do zodíaconome do mês abreviadodia da semana abreviadoativar campo de pesquisaadicionaradicionar contatoadicionar notaadicionar tarefaatribuir cor de fundo a nota diáriadiferenciar maiúsculas de minusculasalterar categoria de filtroalterar diamudar mêsmudar modo de buscamudar anolimpar atributos da seleçãofechar painel de detalhes do contatofechar editorfechar calendário do ano completofechar editor de notasfechar tarefa do painel de informaçãocompilado emcontato adicionadocontatos adicionadoscontato exportadocontatos exportadoscalculador de datasdiadiasnavegador de notas do diadia do mêsdia do mês sem zeros à esquerdadia até o final do anodias até o final do anoeditar contatoeditar nome da nota e categóricaeditar tarefasuporte a criptografia está desativadoentradaentradaseventoeventosevento exportadoeventos exportadossairlocalizar textonome do mês completonome da semana completohorahorashorasEventos iCalendarExportar iCalendarArquivos iCalendarSuporte ao iCalendarir para dataminutominutosminutosmêsmesessem entradasdeabrir notaouadiadaremover contatoremover nota do diaremover notaremover tarefaarredondado para baixosalvar notarolar o conteúdo no painel de informações do diasegundosegundosselecionar data atualdefinir ano atualmostrar janela de créditosmostrar calendário do ano completomostrar janela de opçõessubtrairmudar página em opções e aba de créditosmudar para próxima abamudar para aba anteriormudar para a página selecionadatarefas exportadaso último dia do anohora é ignoradavezeshojehabilitar/desabilitar visão alternativahabilitar/desabilitar negritohabilitar/desabilitar Mês anterior e próximohabilitar/desabilitar o modo de tela cheiahabilitar/desabilitar as tarefes ocultashabilitar/desabilitar destaquehabilitar/desabilitar itálicoHabilitar/Desabilitar visibilidade de dados pessoaishabilitar/desabilitar tachadohabilitar/desabilitar sublinhadoversãonasceusemanasemanasdia de final de semanadias de fim-de-semanadia de final de semana ignoradodias de fim-de-semana ignoradodia útildias úteisano de idadeanos de idadeinformações do anoanoanosano com o séculoano sem o séculoosmo-0.4.2/po/de.mo0000664000175000017500000011060113204320601010746 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^j^_$`)`.`B`>X``` ```aa a $a 2a @aLa Qa ^a ja vaDa aaa abb0b Eb Qb\bmbtb zbb(b(b bb( c6cVc ^c hc sc%~c cccccccdd)dIdRdkd~dd)d%d&d& e72e$je ee e e eeee0f13fef,mf"fffff ff g+g=gNgfglg;g(g'gh!h(h/h JhVheh nh zhhh hh hhhhh) i7i GiUi di qi ~iii ii iii ij jj,j ;j IjTj qj ~j jjjj(jj j k$ k 2k!>k`k|kkkkkkkkkkll?'lgl|llllll lllm-)mWmvmm+mmm mmn nn n)n$Dnin n nnnnnnnoo'o -o7o>oEoLoTojo ro ~ooo oo oo o o$oppp#p+p0p?p NpYpupp pppp pppp q!q7q Kq Uq`qfqmquq |qq qqqqqKq r(r ArMrbrrrr rr r!rrrr s sss7sOs csnsts}ssss ss sssssss st t t#t2t9t@t Ht Vt`twt|ttt tt t tt tt t t t uu)u 8uBuGu gu;ruu6u2u"+vNvRvYv _vkv {vvvvvvvRv?wYwxkww wx xx&;xBbxx x#xxxx y y'/y Wycyly qy}yyyyyHy#z Cz Nz[z lzzzzzzzzz { {+{:{I{O{W{]{&b{{ {{{ {${|-|A|S| e|"q||||||||$}&}6}I}R}X}`}w}}}}}}}~~1~I~'Y~*~,~~~% '0X kv2~  ),;hz(-%7Vgy"H  $(Enu &˂  /<D*T% Ӄ3ك9 0G9ẍ́҄>؄#;A F Q2\ $܅   +5'J)r/͆  ' 3?Paio  ̇   %;Phֈ  )/ 2?Wn-ʼn #0? Q_y ֊ *&0 Wen&.$$57m) Ōь(:Sfu }  ΍ ! BSk  8ǎ "Adxď@ɏ # BN/U  Ɛ. '2Obq`"O hR5Zbx)'9[z-V6v \h^YT0m}g`yCJ .E mqFqf\ 3MQ^2(|kBJDQYXZ56l}k?8,]m)~nDU*3_Sit8Uv:o-ar7n;&;cx-]aB=!Ifk{0 &4V,p1(I qaj~J+*TjlOUMuude{iYc%VZR@W7QzS<c]j0K4$wL!s%4C5OE=|:<;ve_x7G!b9h9AF$^.2SP) =PDGw@,&\Pz(g pI+?">#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.9 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-04-25 23:16+0200 Last-Translator: Claudius Henrichs , 2011 Language-Team: osmo Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 zum DeaktivierenEin praktischer persönlicher PlanerInfoKontakt hinzufügenKopfzeile hinzufügenNeue Aufgabe bei Doppelklick auf die Aufgabenliste hinzufügenNotiz hinzufügenAufgabe hinzufügenZeitraum zu einem Datum addierenZusätzliche InformationenAdresseFortgeschrittenAlterAlarm-BefehlAlarm-WarnungAlarmwarnung!AlgorithmusAlleAlle DateienAlle FelderAlle PunkteAlle NotizenAlle Ihre Daten werden durch den Inhalt der Sicherungsdatei ersetzt.Alt+PfeileAlt+a, EinfügenAlt+e, Strg+EnterAlt+r, EntfAlternative ZeiteinheitenAlternative AnsichtOSMO läuft bereits.ErscheinungWassermannSind Sie sicher?WidderPfeilPfeilsymboleHoch/Runter PfeileAufsteigende Sortierung der TagesnotizenMindestens ein Modul muss sichtbar sein.LegitimierungVerfügbare ModuleSicherungsdatei erfolgreich gespeichert.Unterstützung für SicherungenEinfachAm bestenGeburtstagGeburtstagFarbe der Markierung für GeburtstageGeburtstageGeburtstagslisteBlogFettUntenNach iCal-Ereignissen suchenNotizen durchsuchenFehlererfassungssystemBytesCSV-Dateien (kommagetrennte Werte, *.csv)KalenderKalender-Dateien (*.ics)KalenderschriftartKalendernotizenKrebsDie Sicherung kann nicht erstellt werden.Die Datei kann nicht erstellt werden.Die Datei kann nicht geöffnet werden.Die Notiz kann nicht geöffnet werden.Die ausgewählte Aktion kann nicht durchgeführt werdenDie Datei kann nicht gelesen werden.SteinbockGroß-/KleinschreibungKategorienKategorieMobiltelefon2. Mobiltelefon3. Mobiltelefon4. MobiltelefonFälligkeitsdatum auf das nächste Datum ändernFälligkeitsdatum auf das vorherige Datum ändernZeichenAuf Ereignisse vom letzten Durchlauf prüfenTierzeichen des chinesischen JahrsKreisStadtLeerenAttribute löschenText löschenKontaktanzeige schließenBeschreibungsanzeige schließenEditor schließenSuche schließenNotizanzeige schließenFarbeFarbe für Kontakt-TagsFarbe der Punkte, die in den nächsten 7 Tagen fällig sindFarbe der Punkte, die heute fällig sindFarbe der Punkte, die überfällig sindFarbe der LinksFarbenSpalteEingebundene ProgrammteileKompressionKontaktdetailsKontakteFortsetzen?MitwirkendeLandErstelltStrg+EnterStrg+BildRunterStrg+BildHochStrg+LeertasteStrg+Hoch/RunterAktuelles DatumMarkierung für aktuelles DatumFarbe der Markierung für aktuelles DatumAktueller MonatAktuelle ZeitAktuelles JahrCursor-FarbeCursor-DickeTT-MM-JJJJDatumZu änderndes DatumDatumsrechnerDatumsschriftartDatumsformatDatumsformat (Syntax)Datums Header FormatTagesspanneTagAuswahl des TagesTageskategorienTageskategorieName des TagsTagesnotizMarkierung für TagesnotizenTagesnotizenTag im JahrTagesaufgabenTageTage bis zum GeburtstagLöschenFertige Aufgaben ohne Nachfrage löschenNotiz löschenAbteilungBeschreibungUnterstreichen von Links ausschaltenDeaktiviertMöchten Sie wirklich fortfahren?Möchten Sie das speichern?DokumentHundFertigFertig!DracheFälligkeitsdatumZeitraum zwischen zwei TerminenE-Mail-Adresse2. E-Mail-Adresse3. E-Mail-Adresse4. E-Mail-AdresseE-Mail-ProgrammFehler: Die Konfigurationsdateien können nicht erstellt werdenKategorie bearbeitenKontakt bearbeitenEintrag bearbeitenNotiz bearbeitenAufgabe bearbeitenEditorEllipseAktivierenZusätzliche Kalender anzeigenBlockcursor anschaltenKlänge aktivierenRechtschreibprüfung in Tagesnotizen benutzenBenachrichtigungsfeld benutzenMinihilfen benutzenVerschlüsseltUnterstützung für verschlüsselte NotizenVerschlüsselungEndeEingabetasteGeben Sie ein Passwort einFehlerFehler beim DruckEscEreignisMarkierung für EreignisseFarbe der Markierung für EreignisseMaximallänge eines EreignissesEreignisseExportierenKontakte exportierenAufgaben exportierenIn eine iCal-Datei exportierenSchnellFaxFunktionswünscheFeldtypZu exportierende FelderDateiDateinameFilterSuchenFertigVornameErstes Datum und ZeitVornameSchriftgradSchriftartenHahnFreihändiger KreisVon (Stunde)VollmondVolles DatumJahreskalenderZwillingeAllgemeinGlobaler Befehl zur BenachrichtigungGutGrafikenGruppeGruppenHaseHash-VerfahrenHilfsprogrammeVersteckenFertige Aufgaben versteckenGruppenspalte versteckenHochHervorhebenPrivatAdresse (privat)Stadt (privat)Land (privat)Telefon (privat)2. Telefon (privat)3. Telefon (privat)4. Telefon (privat)Postleitzahl (privat)Bundesland (privat)Pos1/EndeHorizontalPferdStundeStundenIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooAlarm ignorieren, wenn die Aufgabe abgelaufen ist, während Osmo nicht liefTagesnotiz-Ereignisse ignorierenWochenendtage ignorierenImportierenKontakte importierenTyp importierenFalsches Passwort!InfoInformationEingabedateinameEinfügenAktuelles Datum und Zeit eingebenTrenner einfügenZeitraster einfügenInternetIntervallUmkehrenKursivSchriftgrad der EinträgeZu einem Datum springenTastenkombinationenQuerformatGroßNachnameLetztes ViertelLetzte ÄnderungenNachnameLayoutSchaltjahrLinksLinks, RechtsLöweWaageLizenzZeileZeilenNiedrigMM-TT-JJJJMM/TT/JJMailinglistenMarkierenMarkierte TageMittelMinuteMinutenVerschiedenesGeändertiCal-Parameter ändernAffeMonatName des MonatsMonateMondphaseNameNamenstagNamenstagSchriftgrad der NamenNamenstageNeumondNeuer KontaktNeue NotizNeue AufgabeNächster TagNächster MonatNächstes JahrSpitznameNeinEs liegen keine Geburtstage vorKein DatumDie Daten können dann nicht mehr wiederhergestellt werden.Kein MonatswechselKeine Datensätze in der ausgewählten Datei gefunden.Keine Aufgaben für das angegebene Datum gefunden.Keine gültigen Kalender definiertNr.NichtsNotizNotizeditorNotizschriftartNotiznameNotiztypNotizenNotiz-OptionenNichts zu importierenAnzahl der Felder pro DatensatzAnzahl von TagenAnzahl der folgenden Tage, die auf Ereignisse geprüft werden sollen (Standard: 0)Anzahl von WochenendtagenAnzahl der WochenOSMO soll sich möglichst bequem bedienen lassen, weshalb es viele Tastenkürzel gibt. Hier ist die vollständige Liste:Sicherungsdatei öffnenOperationOptionenOrganisationOsmo-Sicherungsdateien (*.bck)Osmo muss nun neu gestartet werden …Osmo muss neu gestartet werden, um Änderungen sichtbar zu machen.AusgabedateinameAusgabeformatLokale Einstellungen überschreibenBüffelFüllungSeitenausrichtung:BildHoch/BildRunterPasswortschutzDie Passwörter stimmen nicht überein!PersönlichTelefoneFotoFotogrößeSchweinFischeUnverschlüsseltGeben Sie das Passwort einBitte eine Adresse auswählenBitte mindestens einen Tag auswählen, an dem die Wiederholung aktiv istBitte zuerst eine Datei auswählen.HochformatPostleitzahlZeit verschiebenEinstellungenVorheriger und nächster MonatVorheriger TagVorheriger MonatVorheriges JahrKalender ausdruckenSichtbare Aufgaben druckenDruckeigenschaftenDruck-UnterstützungPrioritätProgrammierungErstes ViertelFrageBeendenRatteRateGeben Sie das Passwort noch einmal einSchreibgeschütztDatensatzWiederkehrende AufgabeCursor-Position speichernLetzte ausgewählte Seite merkenLetzte ausgewählte Kategorie merkenSpäter erinnernErinnerungsoptionenKontakt entfernenAufgabe entfernenWiederholenAn den folgenden Tagen wiederholenKlang-Alarm wiederholenFelder zurücksetzenZeit zurücksetzenErgebnisRechtsSchützeSicherung speichernDaten nach jeder Änderung speichernNotiz speichernAufgaben speichernSkorpionSucheSekundeZweites Datum und ZeitZweiter VornameSekundenCSV-Datei auswählenICS-Datei auswählenWählen Sie eine Schriftart ...Eine Farbe wählenDatum und Zeit auswählenEine Tagesfarbe wählenFelder auswählenAusgabedatei auswählenFoto auswählenDer ausgewählte Kontakt wird entfernt.Die ausgewählte Tagesnotiz wird entfernt.Die Datei existiert bereits. Überschreiben?Ausgewählter MonatAusgewählter Monat und JahrDie ausgewählte Notiz wird entfernt.Die ausgewählte Aufgabe wird entfernt.Ausgewähltes JahrMarkierungAuswahlAbsoluten Pfad für Einstellungen und Daten setzenAktuelles Datum setzenAktuelle Zeit setzenStandard AusgabeformatZeit setzenSchafOsmo anzeigenGeburtstage anzeigenKalender anzeigenPosition des Kontakts auf der Karte anzeigenKontakte anzeigenTagesnamen zeigen"Beenden" in der Werkzeugleiste anzeigenAufgaben mit hoher Priorität fett darstellenIn der Info-Anzeige darstellenNotizen anzeigenOptionen anzeigenSekunden anzeigenkleines Kalenderfenster zeigenAufgabe anzeigenAufgaben anzeigenKalenderwoche anzeigenEinfache Ansicht im JahreskalenderWenn mehr als eine Instanz von OSMO läuft, können Daten verlorengehen!KleinSchlangeKlangabspielerLeertasteSprache der RechtschreibprüfungUnterstützung für RechtschreibprüfungAnfangMinimiert startenAngefangenBundeslandStatistikenSchritt (Minuten)DurchgestrichenVergangene Tagesnotizen durchstreichenZusammenfassungSyntaxBenachrichtigungsfeldReiter-PositionMarkierungenAufgabeAufgabendetailsDie Aufgabe wurde geändert oder gelöschtSchriftart für AufgabeninformationenAufgabenAufgabenlisteOptionen für AufgabenStierDas Muster %s wird durch die E-Mail-Adresse ersetztDas Muster %s wird durch den Namen der Klangdatei ersetztDas Muster %s wird durch die WWW-Adresse ersetztDie Liste wird geleert und alle Einträge gehen verloren.Die Notiz wurde geändert.DickDünnDieser Rechner unterstützt nur Datumsangaben nach dem Jahr 1.Dies ist keine Osmo-SicherungsdateiTigerZeitZeitformatZeitspanneZeitraum, der addiert oder subtrahiert werden sollZeitrasterNach (Stunde)HeuteAbstand zu heuteNotizanzeige an-/ausschaltenRechtschreibprüfung an-/ausschaltenMorgenObenÜbersetzerTypUnterstrichenUnbekanntTagesspanne benutzenErsten Datensatz als Kopfzeile benutzenSystemformat für Datum und Zeit benutzenGültigWertVertikalJungfrauSichtbare SpaltenSichtbare Spalten in der Geburtstags-ÜbersichtSichtbare EreignisseHomepage2. Homepage3. Homepage4. HomepageAbnehmender MondAbnehmender MondWarnungWelleZunehmender MondZunehmender MondWebbrowserKalenderwocheWochenanfang am MontagWochenendeFarbe für das WochenendeWochenLeerzeichenWorteGeschäftlichAdresse (geschäftlich)Stadt (geschäftlich)Land (geschäftlich)Telefon (geschäftlich)2. Telefon (geschäftlich)3. Telefon (geschäftlich)4. Telefon (geschäftlich)Postleitzahl (geschäftlich)Bundesland (geschäftlich)JJJJ-TT-MMJJJJ-MM-TTJahrInformationen zu diesem JahrJahreJaSternzeichenAbgekürzter MonatsnameAbgekürzter WochentagSuchfeld aktivierenAddierenKontakt hinzufügenNotiz hinzufügenAufgabe hinzufügender Tagesnotiz eine Hintergrundfarbe zuweisenGroß-/KleinschreibungKategoriefilter wechselnTag wechselnMonat wechselnSuchmodus ändernJahr wechselnAuswahlattribute löschenKontaktdetails schließenEditor schließenJahreskalender schließenNotizeditor schließenAufgabeninformationen schließenÜbersetzt amKontakt hinzugefügtKontakte hinzugefügtKontakt exportiertKontakte exportiertDatumsrechnerTagTageTagesnotizen durchsuchenTag des MonatsEinstellige Tage ohne führende NullenTag bis zum JahresendeTage bis zum JahresendeKontakt bearbeitenNotiznamen und -kategorie bearbeitenAufgabe bearbeitenUnterstützung für Verschlüsselung ist abgeschaltetEintragEinträgeEreignisEreignisseEreignis exportiertEreignisse exportiertBeendenText suchenName des MonatsName des TagesStundeStundenStundeniCal-EreignisseiCalender-ExportiCalendar-DateieniCalender-Unterstützungzum Datum springenMinuteMinutenMinutenMonatMonatekeine EinträgevonNotiz öffnenoderverschobenKontakt entfernenTagesnotiz entfernenNotiz entfernenAufgabe entfernenabgerundetNotiz speichernden Inhalt des Info-Panels rollenSekundeSekundenAktuelles Datum wählenAktuelles Jahr festlegenInfo anzeigenJahreskalender zeigenOptionen anzeigenSubtrahierenSeite in den Reitern »Optionen« und »Über« wechselnzum nächsten Reiter umschaltenzum vorherigen Reiter umschaltenzur ausgewählten Seite umschaltenAufgaben exportiertder letzte Tag im JahrZeit wird ignoriertZeitenheuteAlternative AnsichtFettKalender für den vorherigen und nächsten Monat an-/ausschaltenVollbild umschaltenversteckte Aufgaben an-/ausschaltenHervorhebenKursivSichtbarkeit der persönlichen Daten umschaltenDurchgestrichenUnterstrichenVersionwurde geborenWocheWochenWochenendtagWochenendtageWochenendtag ignoriertWochenendtage ignoriertArbeitstagArbeitstageJahrJahreInformationen zu diesem JahrJahr altJahre altJahr mit Jhdt.Jahr ohne Jhdt.osmo-0.4.2/po/it.po0000664000175000017500000011012613204320601010777 00000000000000# Italian translation of Osmo. # This file is distributed under the same license as the Osmo package. # bautz , 2008-2010. # spawned76 , 2012 # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2010-04-01 21:28+0100\n" "Last-Translator: spawned76 \n" "Language-Team: Italian\n" "Language: it\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" msgid "Colors" msgstr "Colori" msgid "Color of contact tags" msgstr "Colore etichette contatti" msgid "Color of links" msgstr "Colore links" msgid "Font size" msgstr "Dimensione carattere" msgid "Name font size" msgstr "Dimensione carattere nome" msgid "Item font size" msgstr "Dimensione carattere elemento" msgid "Photo size" msgstr "Dimensione foto" msgid "Small" msgstr "Piccola" msgid "Medium" msgstr "Media" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Nascondi colonna gruppi" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Età" msgid "Birthday date" msgstr "Data di nascita" msgid "Zodiac sign" msgstr "Segno zodiacale" msgid "Contacts" msgstr "Contatti" msgid "Appearance" msgstr "Aspetto" msgid "Miscellaneous" msgstr "Varie" msgid "Groups" msgstr "Gruppi" msgid "Visible columns in birthday browser" msgstr "Colonne visibili nella ricerca compleanni" msgid "Algorithm" msgstr "Algoritmo" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Compressione" msgid "Ratio" msgstr "Ratio" msgid "Fast" msgstr "Veloce" msgid "Good" msgstr "Buono" msgid "Best" msgstr "Migliore" msgid "Type" msgstr "Tipo" msgid "Category" msgstr "Categoria" msgid "Last changes" msgstr "Ultime modifiche" msgid "Created" msgstr "Creato" msgid "Remember the last selected category" msgstr "Ricorda ultima categoria selezionata" msgid "Use system format for date and time" msgstr "Utilizza formato di sistema per data e ora" msgid "Notes" msgstr "Note" msgid "Encryption" msgstr "Crittatura" msgid "Visible columns" msgstr "Colonne visibili" msgid "Categories" msgstr "Categorie" msgid "Notes options" msgstr "Opzioni note" msgid "Jump to date" msgstr "Salta alla data" msgid "Day" msgstr "Giorno" msgid "Month" msgstr "Mese" msgid "Year" msgstr "Anno" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleziona carattere..." msgid "None" msgstr "Niente" msgid "All items" msgstr "Tutti gli elementi" msgid "Question" msgstr "Domanda" msgid "Information" msgstr "Informazioni" msgid "Error" msgstr "Errore" msgid "Warning" msgstr "Attenzione" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Il file selezionato esiste già! Sovrascrivere?" msgid "Selected contact will be removed." msgstr "Il contatto selezionato sarà rimosso." msgid "Are you sure?" msgstr "Sei sicuro?" msgid "No date" msgstr "Nessuna data" msgid "Select photo" msgstr "Seleziona foto" msgid "Address" msgstr "Indirizzo" msgid "Postcode" msgstr "CAP" msgid "City" msgstr "Città" msgid "State" msgstr "Stato" msgid "Country" msgstr "Provincia" msgid "Edit contact" msgstr "Modifica contatto" msgid "Add contact" msgstr "Aggiungi contatto" msgid "Personal" msgstr "Personale" msgid "Group" msgstr "Gruppo" msgid "Home" msgstr "Casa" msgid "Work" msgstr "Lavoro" msgid "Phones" msgstr "Telefoni" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informazioni aggiuntive" msgid "_OK" msgstr "" msgid "no entries" msgstr "nessun valore" msgid "entry" msgid_plural "entries" msgstr[0] "valore" msgstr[1] "valori" msgid "Calendar notes" msgstr "Note calendario" msgid "Search" msgstr "Cerca" msgid "Filter" msgstr "Filtro" msgid "Current month" msgstr "Mese corrente" msgid "Selected month" msgstr "Mese selezionato" msgid "Current year" msgstr "Anno corrente" msgid "Selected year" msgstr "Anno selezionato" msgid "Selected month and year" msgstr "Mese e anno selezionati" msgid "All notes" msgstr "Tutte le note" msgid "Case sensitive" msgstr "distingui MAIUSCOLE/minuscole" msgid "Strikethrough past day notes" msgstr "Barra le note dei giorni passati" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Ratto" msgid "Ox" msgstr "Bue" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lepre" msgid "Dragon" msgstr "Drago" msgid "Snake" msgstr "Serpente" msgid "Horse" msgstr "Cavallo" msgid "Sheep" msgstr "Pecora" msgid "Monkey" msgstr "Scimmia" msgid "Fowl" msgstr "Pollo" msgid "Dog" msgstr "Cane" msgid "Pig" msgstr "Maiale" msgid "Unknown" msgstr "Sconosciuto" msgid "Aquarius" msgstr "Acquario" msgid "Pisces" msgstr "Pesci" msgid "Aries" msgstr "Ariete" msgid "Taurus" msgstr "Toro" msgid "Gemini" msgstr "Gemelli" msgid "Cancer" msgstr "Cancro" msgid "Leo" msgstr "Leone" msgid "Virgo" msgstr "Vergine" msgid "Libra" msgstr "Bilancia" msgid "Scorpio" msgstr "Scorpione" msgid "Sagittarius" msgstr "Sagittario" msgid "Capricorn" msgstr "Capricorno" msgid "Osmo has to be restarted to take effect." msgstr "Osmo deve essere riavviato per applicare le modifiche." msgid "Layout" msgstr "Disposizione" msgid "Vertical" msgstr "Verticale" msgid "Horizontal" msgstr "Orizzontale" msgid "Tabs position" msgstr "Posizione schede" msgid "Left" msgstr "Sinistra" msgid "Right" msgstr "Destra" msgid "Top" msgstr "Sopra" msgid "Bottom" msgstr "Sotto" msgid "Disable underline in links" msgstr "Disabilita sottolineatura nei links" msgid "Show exit button in toolbar" msgstr "Visualizza pulsante di uscita nella barra degli strumenti " msgid "At least one module must be visible." msgstr "Almeno un modulo dev'essere visibile." msgid "Calendar" msgstr "Calendario" msgid "Tasks" msgstr "Impegni" msgid "Override locale settings" msgstr "Ignora impostazioni lingua sistema" msgid "Date format" msgstr "Formato data" msgid "DD-MM-YYYY" msgstr "GG-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-GG-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-GG" msgid "YYYY-DD-MM" msgstr "AAAA-GG-MM" msgid "Time format" msgstr "Formato ora" msgid "hours" msgstr "ore" msgid "Spell checker language" msgstr "Lingua controllo ortografico" msgid "Enable tooltips" msgstr "Abilita suggerimenti" msgid "Remember last selected page" msgstr "Ricorda ultima scheda visualizzata" msgid "Save data after every modification" msgstr "Salva i dati dopo ogni modifica" msgid "Web browser" msgstr "Browser internet" msgid "E-mail client" msgstr "Programma E-Mail" msgid "Sound player" msgstr "Riproduttore audio" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s sarà sostituito con l'indirizzo web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s sarà sostituito con l'indirizzo e-mail" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s sarà sostituito col nome del file audio" msgid "Enable system tray" msgstr "Abilita icona nella barra di stato" msgid "Start minimised" msgstr "Parti minimizzato" msgid "Ignore day note events" msgstr "Ignore eventi note del giorno" msgid "General" msgstr "Generale" msgid "Hide" msgstr "Nascondi" msgid "Helpers" msgstr "Aiuti" msgid "System tray" msgstr "Icona nella barra di stato" msgid "Preferences" msgstr "Preferenze" msgid "Syntax" msgstr "Sintassi" msgid "abbreviated weekday name" msgstr "giorno della settimana abbreviato" msgid "full weekday name" msgstr "giorno della settimana per esteso" msgid "abbreviated month name" msgstr "nome del mese abbreviato" msgid "full month name" msgstr "Nome mese completo" msgid "day of the month" msgstr "giorno del mese" msgid "MM/DD/YY" msgstr "MM/GG/AA" msgid "day of the month without leading zeros" msgstr "giorno del mese senza eventuali zeri davanti" msgid "month" msgid_plural "months" msgstr[0] "mese" msgstr[1] "mesi" msgid "year without century" msgstr "anno senza il secolo" msgid "year with century" msgstr "anno con il secolo" msgid "Date header format" msgstr "Fotmato data intestazione" msgid "Set default format" msgstr "Imposta formato predefinito" msgid "Date format syntax" msgstr "Sintassi formato data" msgid "Day note marker" msgstr "Marcatore note del giorno" msgid "Event marker" msgstr "Marcatore evento" msgid "Circle" msgstr "Cerchio" msgid "Ellipse" msgstr "Ellisse" msgid "Wave" msgstr "Onda" msgid "Current day marker" msgstr "Marcatore giorno corrente" msgid "Arrow" msgstr "Freccia" msgid "Free-hand circle" msgstr "Cerchio mano libera" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Colore giorni weekend" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Colore cursore" msgid "Event marker color" msgstr "Colore mercatore evento" msgid "Current day marker color" msgstr "Colore marcatore giorno corrente" msgid "Birthday marker color" msgstr "Colore marcatore giorno compleanno" msgid "Date font" msgstr "Carattere data" msgid "Calendar font" msgstr "Carattere calendario" msgid "Note font" msgstr "Carattere nota" msgid "Enable block cursor" msgstr "Abilita blocco cursore" msgid "Cursor thickness" msgstr "Spessore cursore" msgid "Thin" msgstr "Sottile" msgid "Thick" msgstr "Spesso" msgid "Edit category" msgstr "Modifica categoria" msgid "Color" msgstr "Colore" msgid "Name" msgstr "Nome" msgid "Select ICS file" msgstr "Seleziona file ICS" msgid "All Files" msgstr "Tutti i file" msgid "Calendar files (*.ics)" msgstr "File calendario (*.ics)" msgid "Modify ICAL parameters" msgstr "Modifica parametri iCal" msgid "Filename" msgstr "Nome file" msgid "Options" msgstr "Opzioni" msgid "Disabled" msgstr "Disattivato" msgid "Valid" msgstr "Valido" msgid "Description" msgstr "Descrizione" msgid "Full date" msgstr "Data completa" msgid "Mark" msgstr "Segna" msgid "Week start on Monday" msgstr "La settimana comincia da Lunedì" msgid "Show day names" msgstr "Mostra nome del giorno" msgid "No month change" msgstr "Non cambiare mese" msgid "Show week numbers" msgstr "Mostra numero settimane" msgid "Simple view in full-year calendar" msgstr "Vista semplice nella modalità anno intero" msgid "Enable auxilary calendars" msgstr "Abilita calendari supplementari" msgid "Ascending sorting in day notes browser" msgstr "Note del giorno in ordine ascendente" msgid "Enable spell checker in day notes" msgstr "Abilita controllo ortografico nelle note giornaliere" msgid "Current time" msgstr "Ora corrente" msgid "Show seconds" msgstr "Visualizza secondi" msgid "Day number" msgstr "Giorno dell'anno" msgid "Today distance" msgstr "Distante da oggi" msgid "Marked days" msgstr "Giorni con impegni" msgid "Week number" msgstr "Settimana" msgid "Weekend days" msgstr "Giorni del weekend" msgid "Day category" msgstr "Categoria del giorno" msgid "Moon phase" msgstr "Fase lunare" msgid "Day notes" msgstr "Note del giorno" msgid "Day categories" msgstr "Categorie del giorno" msgid "iCalendar files" msgstr "File iCalendar" msgid "Show in day info panel" msgstr "Mostra il pannello informazioni sul giorno" msgid "Tasks list" msgstr "Elenco impegni" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Num." msgid "Summary" msgstr "Riepilogo" msgid "Due date" msgstr "Data impegno" msgid "Priority" msgstr "Priorità" msgid "Error printing" msgstr "Errore di stampa" msgid "No birthdays defined" msgstr "Nessun compleanno inserito" msgid "Birthdays list" msgstr "Elenco compleanni" msgid "Days to birthday" msgstr "Giorni al compleanno" msgid "today" msgstr "oggi" msgid "Select CSV file" msgstr "Seleziona file CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (valori separati dalla virgola) files (*.csv)" msgid "Please select file first." msgstr "Seleziona prima il file." msgid "Import contacts" msgstr "Importa contatti" msgid "Import type" msgstr "Importa tipo" msgid "File" msgstr "File" msgid "Input filename" msgstr "Nome file d'origine" msgid "Import" msgstr "Importa" msgid "Nothing to import." msgstr "Niente da importare" msgid "contact added" msgid_plural "contacts added" msgstr[0] "contatto aggiunto" msgstr[1] "contatti aggiunti" msgid "of" msgstr "di" msgid "Record" msgstr "Elemento" msgid "Number fields per record" msgstr "Numero campi per elemento" msgid "Use first record as header" msgstr "Usa primo elemento come intestazione" msgid "Field type" msgstr "Tipo di campo" msgid "Value" msgstr "Valore" msgid "No records found in selected file." msgstr "Nessun elemento trovato nel file selezionato." msgid "Cannot read file." msgstr "Impossibile leggere il file." msgid "Cannot open file." msgstr "Impossibile aprire il file." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Mostra calendario" msgid "Show tasks" msgstr "Mostra impegni" msgid "Show contacts" msgstr "Mostra contatti" msgid "Show notes" msgstr "Mostra note" msgid "Show options" msgstr "Mostra opzioni" msgid "Quit" msgstr "Esci" msgid "Show small calendar window" msgstr "Mostra finestra mini-calendario" msgid "Check for events since last run" msgstr "Controlla eventi dall'ultimo avvio" msgid "Number of days to check forward for events (default: 0)" msgstr "Numero di giorni futuri da controllare (predefinito: 0)" msgid "Set absolute path for settings and data files" msgstr "Imposta percorso assoluto per i file di impostazioni e dati" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERRORE:Impossibile creare i file di configurazione" msgid "Another copy of OSMO is already running." msgstr "Un'altra copia di OSMO è in esecuzione." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "Utilizzare due o più istanze di OSMO può causare una perdita di dati." msgid "Do you really want to continue?" msgstr "Vuoi davvero continuare?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Basso" msgid "High" msgstr "Alto" msgid "Done!" msgstr "Fatto!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "Contatto esportato" msgstr[1] "Contatti esportati" msgid "Cannot create file." msgstr "Impossibile creare file." msgid "Select output file" msgstr "Seleziona file di destinazione" msgid "Export contacts" msgstr "Esporta contatti" msgid "Output format" msgstr "Formato destinazione" msgid "Add header" msgstr "Aggiungi intestazione" msgid "Fields to export" msgstr "Camppi da esportare" msgid "All" msgstr "Tutto" msgid "Invert" msgstr "Inverti" msgid "Select fields" msgstr "Seleziona campi" msgid "Output filename" msgstr "Nome file destinazione" msgid "Export" msgstr "Esporta" msgid "Color of items that are due today" msgstr "Colore degli impegni da fare oggi" msgid "Color of items that are due in the next 7 days" msgstr "Colore degli impegni da fare nei prossimi 7 giorni" msgid "Color of items that are past due" msgstr "Colore degli impegni che sono stati fatti" msgid "Task info font" msgstr "Carattere informazioni impegno" msgid "Show in bold tasks with high priority" msgstr "Mostra in grassetto gli impegni con priorità alta" msgid "Hide completed tasks" msgstr "Nascondi impegni completati" msgid "Delete completed tasks without confirmation" msgstr "Elimina automaticamente impegni completati" msgid "Add new task when double clicked on tasks list" msgstr "Aggiungi nuovo impegno con doppio clic su lista impegni" msgid "Postpone time" msgstr "Tempo postposizione" msgid "minutes" msgstr "minuti" msgid "0 for disable" msgstr "(0 per disabilitare)" msgid "Repeat sound alarm" msgstr "Ripeti suono allarme" msgid "times" msgstr "volte" msgid "Global notification command" msgstr "Comando di notifica globale" msgid "Tasks options" msgstr "Opzioni impegni" msgid "Reminder options" msgstr "Opzioni promemoria" msgid "Insert timeline" msgstr "Inserisci timeline" msgid "Timeline" msgstr "Timeline" msgid "From (hour)" msgstr "Dalle ore" msgid "Step (minutes)" msgstr "Intervallo (minuti)" msgid "To (hour)" msgstr "Alle ore" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Seleziona almeno un giorno in cui si verifica l'evento." msgid "Set time" msgstr "Imposta ora" msgid "Hour" msgstr "Ore" msgid "Minute" msgstr "Minuti" msgid "Today" msgstr "Oggi" msgid "Tomorrow" msgstr "Domani" msgid "Selected task will be removed." msgstr "L'impegno selezionato sarà rimosso." msgid "Select date and time" msgstr "Seleziona data e ora" msgid "Enable sound notification" msgstr "Abilita notifica sonora" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Avviso allarme" msgid "Days" msgstr "Giorni" msgid "Hours" msgstr "Ore" msgid "Minutes" msgstr "Minuti" msgid "Alarm command" msgstr "Comando allarme" msgid "Date period" msgstr "Periodo data" msgid "Months" msgstr "Mesi" msgid "Repeat" msgstr "Ripeti" msgid "Repeat in the following days" msgstr "Ripeti i giorni successivi" msgid "Time period" msgstr "Durata" msgid "Start" msgstr "Comincia" msgid "End" msgstr "Fine" msgid "Interval" msgstr "Intervallo" msgid "Ignore alarm when task expired offline" msgstr "Ignora allarme quando l'impegno scade offline" msgid "Recurrent task" msgstr "Impegno ricorrente" msgid "Enable" msgstr "Attiva" msgid "Edit task" msgstr "Modifica impegno" msgid "Add task" msgstr "Aggiungi impegno" msgid "Basic" msgstr "Base" msgid "Advanced" msgstr "Avanzato" msgid "New Moon" msgstr "Luna nuova" msgid "Waxing Crescent Moon" msgstr "Luna Crescente" msgid "Quarter Moon" msgstr "Primo quarto" msgid "Waxing Gibbous Moon" msgstr "Luna Gibbosa Crescente" msgid "Full Moon" msgstr "Luna piena" msgid "Waning Gibbous Moon" msgstr "Luna Gibbosa Calante" msgid "Last Quarter Moon" msgstr "Ultimo quarto" msgid "Waning Crescent Moon" msgstr "Luna Calante" msgid "Cannot create backup!" msgstr "Impossibile creare backup!" msgid "Save backup" msgstr "Salva backup" msgid "Password protection" msgstr "Protezione password" msgid "Enter password" msgstr "Inserisci password" msgid "Re-enter password" msgstr "Reinserisci password" msgid "Please enter the password" msgstr "Inserisci password" msgid "Passwords do not match!" msgstr "Le password non coincidono!" msgid "Backup file saved successfully!" msgstr "File di backup salvato correttamente!" msgid "Open backup file" msgstr "Apri file di backup" msgid "Osmo backup files (*.bck)" msgstr "File di backup di Osmo (*.bck)" msgid "This is not Osmo backup file" msgstr "Non è un file di backup di Osmo" msgid "Incorrect password!" msgstr "Password sbagliata!" msgid "All your data will be replaced with backup file content." msgstr "" "Tutte le informazioni saranno sostituite con il contenuto del file di backup." msgid "Osmo has to be restarted now..." msgstr "Osmo deve essere riavviato ora..." msgid "Please select address" msgstr "Seleziona indirizzo" msgid "First name" msgstr "Nome" msgid "Last name" msgstr "Cognome" msgid "Second name" msgstr "Secondo nome" msgid "Nickname" msgstr "Soprannome" msgid "Tags" msgstr "Etichette" msgid "Name day date" msgstr "Battesimo" msgid "Home address" msgstr "Indirizzo di casa" msgid "Home postcode" msgstr "CAP" msgid "Home city" msgstr "Città" msgid "Home state" msgstr "Stato" msgid "Home country" msgstr "Provincia" msgid "Organization" msgstr "Organizzazione" msgid "Department" msgstr "Campo di lavoro" msgid "Work address" msgstr "Indirizzo lavoro" msgid "Work postcode" msgstr "CAP lavoro" msgid "Work city" msgstr "Città in cui lavora" msgid "Work state" msgstr "Stato in cui lavora" msgid "Work country" msgstr "Provincia in cui lavora" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefono abitazione" msgid "Home phone 2" msgstr "Telefono abitazione 2" msgid "Home phone 3" msgstr "Telefono abitazione 3" msgid "Home phone 4" msgstr "Telefono abitazione 4" msgid "Work phone" msgstr "Telefono lavoro" msgid "Work phone 2" msgstr "Telefono lavoro 2" msgid "Work phone 3" msgstr "Telefono lavoro 3" msgid "Work phone 4" msgstr "Telefono lavoro 4" msgid "Cell phone" msgstr "Cellulare" msgid "Cell phone 2" msgstr "Cellulare 2" msgid "Cell phone 3" msgstr "Cellulare 3" msgid "Cell phone 4" msgstr "Cellulare 4" msgid "E-Mail" msgstr "E-Mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "Sito Internet" msgid "WWW 2" msgstr "Sito Internet 2" msgid "WWW 3" msgstr "Sito Internet 3" msgid "WWW 4" msgstr "Sito Internet 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Foto" msgid "New contact" msgstr "Nuovo contatto" msgid "Remove contact" msgstr "Rimuovi contatto" msgid "Show birthdays" msgstr "Mostra compleanni" msgid "Show contact location on the map" msgstr "Mostra posizione contatti sulla mappa" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Informazioni" msgid "Clear" msgstr "Pulisci" msgid "First Name" msgstr "Nome" msgid "Last Name" msgstr "Cognome" msgid "All fields" msgstr "Tutti i campi" msgid "Contact details" msgstr "Dettagli contatto" msgid "Close contact panel" msgstr "Chiudi pannello contatto" msgid "The note has changed." msgstr "La nota è cambiata." msgid "Do you want to save it?" msgstr "Vuoi salvarlo?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Parole" msgid "Lines" msgstr "Linee" msgid "Characters" msgstr "Lettere" msgid "White characters" msgstr "Caratteri bianchi" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Documento" msgid "Selection" msgstr "Selezione" msgid "Modified" msgstr "Modificato" msgid "New note" msgstr "Nuova nota" msgid "Edit note" msgstr "Modifica nota" msgid "Delete note" msgstr "Elimina nota" msgid "Save note" msgstr "Salva nota" msgid "Find" msgstr "Cerca" msgid "Toggle spell checker" msgstr "Controllo ortografico" msgid "Bold" msgstr "Grassetto" msgid "Italic" msgstr "Corsivo" msgid "Underline" msgstr "Sottolineato" msgid "Strikethrough" msgstr "Barrato" msgid "Highlight" msgstr "Evidenziato" msgid "Clear attributes" msgstr "Pulisci attributi" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Inserisci data e ora attuale" msgid "Insert separator" msgstr "Inserisci separatore" msgid "Statistics" msgstr "Statistiche" msgid "Close editor" msgstr "Chiudi editor" msgid "Note name" msgstr "Nome nota" msgid "Read-only" msgstr "Sola lettura" msgid "Line" msgstr "Linea" msgid "Column" msgstr "Colonna" msgid "case sensitive" msgstr "distingui MAIUSCOLE/minuscole" msgid "Close find entry" msgstr "Chiudi ricerca" msgid "Edit entry" msgstr "Modifica dato" msgid "Remember cursor position" msgstr "Ricorda posizione cursore" msgid "Selected note will be removed." msgstr "La nota selezionata sarà rimossa." msgid "No further data recovery will be possible." msgstr "Non sarà più posibile recuperare i dati." msgid "Add note" msgstr "Aggiungi nota" msgid "Plain" msgstr "Per esteso" msgid "Encrypted" msgstr "Crittato" msgid "Note type" msgstr "Tipo di nota" msgid "Cannot open the note." msgstr "Impossibile aprire la nota." msgid "encryption support is disabled" msgstr "Supporto alla crittatura non è attivo" msgid "Authorization" msgstr "Autorizzazione" msgid "year" msgid_plural "years" msgstr[0] "anno" msgstr[1] "anni" msgid "day" msgid_plural "days" msgstr[0] "giorno" msgstr[1] "giorni" msgid "hour" msgid_plural "hours" msgstr[0] "ora" msgstr[1] "ore" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minuti" msgid "second" msgid_plural "seconds" msgstr[0] "secondo" msgstr[1] "secondi" msgid "or" msgstr "o" msgid "rounded down" msgstr "arrotondato per difetto" msgid "week" msgid_plural "weeks" msgstr[0] "settimana" msgstr[1] "settimane" msgid "working day" msgid_plural "working days" msgstr[0] "Giorno lavorativo" msgstr[1] "Giorni lavorativi" msgid "time is ignored" msgstr "l'ora è ignorata" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "giorno del weekend" msgstr[1] "giorni del weekend" msgid "This calculator only supports dates after year 1." msgstr "Questa calcolatrice supporta soltanto le date successive all'anno 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "giorno del weekend ignorato" msgstr[1] "giorni del weekend ignorati" msgid "Date calculator" msgstr "Calcola-date" msgid "Current date" msgstr "Data corrente" msgid "Set current date" msgstr "Imposta data corrente" msgid "Second" msgstr "Secondi" msgid "Set current time" msgstr "Imposta ora corrente" msgid "Reset time" msgstr "Azzera ora" msgid "First date and time" msgstr "Prima data e ora" msgid "Second date and time" msgstr "Seconda data e ora" msgid "Alternative time units" msgstr "Unità alternative" msgid "Result" msgstr "Risultato" msgid "Duration between two dates" msgstr "Distanza tra due date" msgid "Operation" msgstr "Operazione" msgid "add" msgstr "aggiungi" msgid "subtract" msgstr "sottrai" msgid "Date and time to add or subtract from" msgstr "Aggiungere giorni e ore" msgid "Years" msgstr "Anni" msgid "Weeks" msgstr "Settimane" msgid "Seconds" msgstr "Secondi" msgid "Ignore weekend days" msgstr "Ignora giorni del weekend" msgid "Reset fields" msgstr "Azzera campi" msgid "Time to add or subtract" msgstr "Tempo da aggiungere o sottrarre" msgid "Add to or subtract from a date" msgstr "Aggiungi o sottrai da una data" msgid "Cannot perform selected operation." msgstr "Non posso eseguire la seguente operazione." msgid "Task has been modified or removed." msgstr "L'impegno è stato modificato o rimosso." msgid "Remind me later" msgstr "Ricordamelo dopo" msgid "Done" msgstr "Fatto" msgid "Show task" msgstr "Mostra impegni" msgid "Alarm warning!" msgstr "Avviso allarme!" msgid "postponed" msgstr "rinviato" msgid "Day note" msgstr "Nota del giorno" msgid "Events" msgstr "Eventi" msgid "Event" msgstr "Evento" msgid "Task" msgstr "Impegno" msgid "Birthday" msgstr "Compleanno" msgid "Show Osmo" msgstr "Mostra Osmo" msgid "event" msgid_plural "events" msgstr[0] "evento" msgstr[1] "eventi" msgid "No valid calendars defined" msgstr "Nessun calendario valido definito" msgid "iCalendar events" msgstr "Eventi di iCalendar" msgid "Time" msgstr "Ora" msgid "The list will be cleared and all entries will be lost." msgstr "L'elenco verrà cancellato e tutte le voci andranno perdute." msgid "event exported" msgid_plural "events exported" msgstr[0] "Evento esportato" msgstr[1] "Eventi esportati" msgid "iCalendar export" msgstr "Esportazione iCalendar" msgid "Day Selector" msgstr "Selettore giorno" msgid "Use date period" msgstr "Usa intervallo data" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Nessun impegno trovato col giorno indicato." msgid "Save tasks" msgstr "Salva impegni" msgid "tasks exported" msgstr "Impegni esportati" msgid "was born" msgstr "nato" msgid "year old" msgid_plural "years old" msgstr[0] "anno" msgstr[1] "anni" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "giorno alla fine dell'anno" msgstr[1] "giorni alla fine dell'anno" msgid "the last day of the year" msgstr "l'ultimo dell'anno" msgid "Day tasks" msgstr "Impegni del giorno" msgid "Selected day note will be removed." msgstr "La nota del giorno sarà eliminata." msgid "Continue?" msgstr "Continuare?" msgid "Previous year" msgstr "Anno precedente" msgid "Previous month" msgstr "Mese precedente" msgid "Previous day" msgstr "Giorno precedente" msgid "Next day" msgstr "Giorno seguente" msgid "Next month" msgstr "Mese seguente" msgid "Next year" msgstr "Anno seguente" msgid "Full-year calendar" msgstr "Calendario dell'intero anno" msgid "Print calendar" msgstr "Stampa calendario" msgid "Toggle day note panel" msgstr "Alterna note/informazioni" msgid "Select day color" msgstr "Seleziona colore del giorno" msgid "Browse notes" msgstr "Mostra note" msgid "Browse iCal events" msgstr "Sfoglia eventi di iCal" msgid "Export to iCal file" msgstr "Esporta calendario iCal" msgid "Previous and next month" msgstr "Mese precedente e successivo" msgid "Close note panel" msgstr "Chiudi pannello note" msgid "Clear text" msgstr "Elimina testo" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Seleziona colore" msgid "Name day" msgstr "Onomastico" msgid "Printing properties" msgstr "Proprietà di stampa" msgid "Month name" msgstr "Nome mese" msgid "Day name" msgstr "Nome giorno" msgid "Fonts" msgstr "Carattere" msgid "Birthdays" msgstr "Compleanni" msgid "Namedays" msgstr "Onomastici" msgid "Visible events" msgstr "Eventi visibili" msgid "Padding" msgstr "Padding" msgid "Event maximum length" msgstr "Lunghezza massima evento" msgid "Page orientation:" msgstr "Orientamento pagina:" msgid "Portrait" msgstr "Verticale" msgid "Landscape" msgstr "Orizzontale" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Anno bisestile" msgid "Yes" msgstr "Si" msgid "No" msgstr "No" msgid "Chinese year animal" msgstr "Animale dell'anno cinese" msgid "Number of days" msgstr "Numero di giorni" msgid "Number of weeks" msgstr "Numero di settimane" msgid "Number of weekend days" msgstr "Numero di giorni dei weekends" msgid "Year info" msgstr "Informazioni sull'anno" msgid "Alternative view" msgstr "Vista alternativa" msgid "Started" msgstr "Cominciato" msgid "Finished" msgstr "Finito" msgid "New task" msgstr "Nuovo impegno" msgid "Remove task" msgstr "Rimuovi impegno" msgid "Change due date to previous date" msgstr "Sposta scadenza al giorno precedente" msgid "Change due date to next date" msgstr "Sposta scadenza al giorno successivo" msgid "Export tasks" msgstr "Esporta impegni" msgid "Print visible tasks list" msgstr "Stampa elenco compiti visibili" msgid "Task details" msgstr "Dettagli impegno" msgid "Close description panel" msgstr "Chiudi pannello descrizione" msgid "Ctrl+PageUp" msgstr "Ctrl+PagSu" msgid "switch to previous tab" msgstr "passa alla scheda precedente" msgid "Ctrl+PageDn" msgstr "Ctrl+PagGiù" msgid "switch to next tab" msgstr "passa alla scheda successiva" msgid "switch to selected page" msgstr "passa alla pagina successiva" msgid "show options window" msgstr "mostra finestra opzioni" msgid "show about window" msgstr "mostra finestra info" msgid "toggle fullscreen mode" msgstr "Abilita modalità tutto schermo" msgid "PageUp/PageDn" msgstr "PagSu/PagGiù" msgid "switch page in options and about tab" msgstr "cambiare pagina in opzioni e informazioni" msgid "exit" msgstr "esci" msgid "Space" msgstr "Spazio" msgid "select current date" msgstr "seleziona data corrente" msgid "Ctrl+Space" msgstr "Ctrl+Spazio" msgid "toggle personal data visibility" msgstr "alterna visibilità dati personali" msgid "Arrows" msgstr "Frecce" msgid "change day" msgstr "cambia giorno" msgid "Ctrl+Up/Down" msgstr "Gtrl+Su/Giù" msgid "scroll the contents in the day info panel" msgstr "Scorri il contenuto del pannello informazioni del giorno" msgid "change month" msgstr "cambia mese" msgid "Home/End" msgstr "Inizio/Fine" msgid "change year" msgstr "cambia anno" msgid "toggle calendars for the previous and next month" msgstr "alterna calendari del mese precedente e successivo" msgid "day notes browser" msgstr "Browser note del giorno" msgid "assign background color to day note" msgstr "assegna sfondo colorato alla nota del giorno" msgid "date calculator" msgstr "Calcola-date" msgid "show full-year calendar" msgstr "mostra calendario dell'anno intero" msgid "jump to date" msgstr "salta alla data" msgid "Delete" msgstr "Cancella" msgid "remove day note" msgstr "rimuovi nota del giorno" msgid "Alt+Arrows" msgstr "Alt+Frecce" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "chiudi editor" msgid "toggle bold" msgstr "grassetto" msgid "toggle italic" msgstr "corsivo" msgid "toggle underline" msgstr "sottolineato" msgid "toggle strikethrough" msgstr "barrato" msgid "toggle highlight" msgstr "evidenziato" msgid "Arrows Up/Down" msgstr "Frecce Su/Giù" msgid "toggle alternative view" msgstr "vista alternativa" msgid "year info" msgstr "informazioni sull'anno" msgid "set current year" msgstr "imposta anno corrente" msgid "close full-year calendar" msgstr "chiudi calendario dell'anno intero" msgid "Alt+a, Insert" msgstr "Alt+a, Inserisci" msgid "add task" msgstr "aggiungi impegno" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Invio" msgid "edit task" msgstr "modifica impegno" msgid "Alt+r, Delete" msgstr "Alt+r, Cancella" msgid "remove task" msgstr "rimuovi impegno" msgid "toggle hidden tasks" msgstr "mostra/nascondi impegni nascosti" msgid "activate search field" msgstr "attiva campo di ricerca" msgid "Left, Right" msgstr "Sinistra, Destra" msgid "change category filter" msgstr "cambia filtro categoria" msgid "close task info panel" msgstr "chiudi pannello informazion impegno" msgid "Insert" msgstr "Inserisci" msgid "add contact" msgstr "aggiungi contatto" msgid "Ctrl+Enter" msgstr "Ctrl+Invio" msgid "edit contact" msgstr "modifica contatto" msgid "remove contact" msgstr "rimuovi contatto" msgid "change search mode" msgstr "cambia modalità di ricerca" msgid "close contact details panel" msgstr "chiudi pannello dettagli contatto" msgid "Enter" msgstr "Invio" msgid "open note" msgstr "apri nota" msgid "add note" msgstr "aggiungi nota" msgid "remove note" msgstr "rimuovi nota" msgid "edit note name and category" msgstr "modifica nome e categoria nota" msgid "close note editor" msgstr "chiudi editor nota" msgid "save note" msgstr "salva nota" msgid "find text" msgstr "cerca testo" msgid "clear selection attributes" msgstr "pulisci attributi selezione" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO è stato creato per essere pratico; per questo motivo ci sono molte " "scorciatoie da tastiera. Ecco la lista completa:" msgid "Note editor" msgstr "editor delle note" msgid "Selector" msgstr "Selettore" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Un'agenda personale" msgid "compiled on" msgstr "compilato su" msgid "Programming" msgstr "Programmato" msgid "Graphics" msgstr "Grafica" msgid "Contributors" msgstr "Hanno contribuito" msgid "Translators" msgstr "Traduttori" msgid "Mailing lists" msgstr "Elenco indirizzi" msgid "Bug tracker" msgstr "Ricerca bug" msgid "Feature requests" msgstr "Richiesta funzionalità" msgid "Available modules" msgstr "Moduli disponibili" msgid "Compiled-in features" msgstr "Features compilate" msgid "iCalendar support" msgstr "Supporto iCalender" msgid "Encrypted notes support" msgstr "Supporto note crittate" msgid "Backup support" msgstr "Support obackup" msgid "Printing support" msgstr "Supporto alla stampa" msgid "Spell checker support" msgstr "Supporto controllo ortografico" msgid "version" msgstr "versione" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Scorciatoie" msgid "License" msgstr "Licenza" #~ msgid "handy personal organizer" #~ msgstr "pratica agenda personale" osmo-0.4.2/po/bg.mo0000664000175000017500000013052313204320601010753 00000000000000m)6 666 7 7.7F7O7X7w7777 7 77 77 7 7 7 787 78 B8P8 b8p88(8 88 88888&9$,9 Q9_9q99999 99 99999: : ":.:*4:_:h: :::::::":; *;4; C;N; W; b; o; |;; ;;;;<< < <)<=< U<b<s<<<.<!< <=!=(=/= D=P=`= i= s=== = = = = = === > > > ,>9> J>U>%Z>> > >>> >> >> >??? '? 1? FBFHFPFUF[F _FjF sFF FFFF FFFFF FF FGG GG+G4G =GIGRG[G dG oGyGGGG*GG"G!H"H=HAHFH KH WH aH kHuH {HHHH7HHIo#II II III(I&J 6JDJ]J`JhJ zJJJJJJ JJJJJK:KQKkKtK }K KK KK KKKLL&L /L ;LHLQLVLZL`L rL|LLLL#LLL M M'M.MKM ^M kMvM}M M M"M M MMMMM M NN"N2N CNPNeN vNN N!N"NN OO0OOO nO |OO-OOOOOO P P P (P IPWP%fPP P PP P PP!PJQjQpQ vQQQQQQQQ QQ QRR'R .R :RHRMR RR"_RRR R RR3R3R0S6PSSSS1SSSS T TT2T ;TETKTZTpTTT TT TTTT#TU UUUU#/USUbUfUlUrUxUUUUUU U UU VV$V*V;VAV FV SV ]V jV uV V V V V V VV VVV VVW W6W :WFWOW#XW|WW W WW WWW XX6XHX ^XjX"XXXXX&X* Y 8YEY aYkY Y YYY YYY YZZZ(Z8Z JZWZfZ nZ {ZZ ZZ ZZZ Z Z Z Z)Z['[;[L[^[v[[$[[[[[ \"\2\8\>\ V\0b\\\ \\\\ ]] ](](A]j] ] ]]]]g]:_,X__$__|_$F`"k`?`-` `! a+a :a)Ha+raa aaaab.bb bb b6b%(cBNccccccccZdHlddd7d&eBeQecewe3ee#eef f'f"g8Eg0~g1g7gKh3ehhhhhhhi;iN[iNiSiMjkjtj}j*j$j5j3k(Lkuk3kk0kck0XlGlll lmm$,mQmbmzmmm m m mm mm n3,n`nvnnn$nnnKn$Kopoo4ooop p#p Cpdpyp(pppp qq%q]8q&q qqAq<r)Xrrrrr rr'r sss$s -sc;s.s*s&s* t(Kttt ttt1tCt\1u9u(uu7v>vQvZv$mv v$vvvv/v7#w[wjwyw"w.w ww!wx/xLxUx kxxxxx!xxxx yy ,y8y My'Wyy y8y yy y yzzz*z;;z1wz zzzzzz {({H{h{{ {{{{{ {{ {{ ||||'|M0|I~|,||} }!4}V}k}#}}9},}~.~?~P~a~/h~~~ ~ ~~ ~3B]}     / E R _ lw+ ˀր  )%7]ú '5,b*r%EÂL ?V$׃,;Z%w\! ,D) 5 FQ&h/d&$K7g ) & 5@ Q,^ &$̈W.Ix/̉4,T3 ֊ 8 EPY#l $7ۋLN`#"ӌ(&F7[4"ȍ "(OK&$Ž! 8E"T"w#'׏''"EhJQА>"a)y7Kۑ' CNm_-͒/;+"g-#ӓQ(I+rJ9&#"JDm̕.Pl % .;'L%t 1ח D2 w $Ș ט$K <U ֙Oݙ3-Gan* C PR[. ݛ :,g |?Cޜ"+4GNg'x>Wߝ7FWluLܞ!4 EPc v";%.?H&_$**֠,,.,[3( # <I N)Y65$$&"KNn5̣ (@$i8IǤ!239f???2 r *̦5U*qG(D Rj? ȨӨ#.> R_x֩ +$0U\(m5(̪&%&BfiЫ&.D0V-FȬ35C;y1ӭ&,;=D m1. ?FM ǯկ/P#+t#ް00"Dq-Y/1!f,aWx8l\]@>:*^yfE+gu L3=LR6y!-]hC{}1'GXfd~$nI{  P; 7liKDRQC99w7l( HnJLN6g>` d\3&$B Her )5j:.j5! ###qFT1a>xD}0E+m8u\WNoB,a=[@t`MvbGdOiYbU(y~B&hs^q%kC<`rV/nVvtiUSAOzuMg?^k8YcGQM'(Z;F*eO?SK Rc;Q@[<-J%"{bS 2<)h)'X.H+s z4k[3 A5xw_6 ?|"* 0W}P"X|eZzpcJITTj0]I= $_ |wVNsA2&FZvo4~4 pKPUt2Em%r.o_m/:p,790 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-02-23 19:11+0100 Last-Translator: Borislav Totev Language-Team: Bulgarian Language: bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 за забраненитеУдобен личен органайзерЗаДобавяне на контактДобави главноДобавяне на нова задача при двойно кликане върху списъка със задачиДобавяне на бележкаДобавяне на задачаДобавяне към или изваждане от датаДопълнителна информацияАдресиРазширено търсенеВъзрастAlarm commandАларма предупреждениеАларма предупреждение !АлгоритъмВсичкоВсички файловеВсички полетаВсички елементиВсички бележкиВсичките ваши данни ще бъдат заменени със съдържанието на бакъп файла.Alt+СтрелкиAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteАлтернативни времеви единициАлтернативен изгледДруга копие на OSMO във момента работиВъншен видВодолейСигурен/а ли сте?ОвенСтрелкаСтрелкиСтрелки Up/DownВъзходящо сортиране в браузъра на дневни бележкиНай-малко един модул трябва д асе вижда.УпълномощаванеНалични модулиБакъп файла е запазан успешно!Бакъп подръжкаОсновноНай-доброРожден денРоженна датацвят за маркер на рожден денРождени дниЛиста с рождени дниБлогBoldДолоПреглед на iCal събитияПреглед на бележкиПроследяване на бъговеBytesCSV (comma-separated values) files (*.csv)КалендарКалендарни файлове (*.ics)Шрифт за календарКалендарни бележки РакНевъзможно създаване на бакъп!Не може да се създаде файл.Файлът не може да се отвориНе може да се отвори бележкатаНе може да се изпълне избраната операция.файлът не може да се прочетеКозирогCase sensitiveКатегорийКатегорияМобилен телефонМобилен телефон 2Мобилен телефон 3Мобилен телефон 4Промяна на крайният срок към следваща датаПромяна на крайният срок към предишна датаПроверка за събития от последното изпълнениеКитайска годинаКръгГрадИзчистванеИзчистване на атрибутиИзчистване на текстЗатваряне панела за контактаЗатваряне панела с описаниеЗатваряне на редакторClose find entryЗатваряне панела за бележкиЦвятЦвят за тагове на контактиЦвят на артикулите които предстоят в следващите 7 денаЦвят на артикулите за днесЦвят на артикулите които са просрочениЦвят за връзкиЦветовеКолонаCompiled-in featuresСвиванеДетайли за контактаКонтактиПродължение?СътруднициДържаваСъздаванеCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+ИнтервалCtrl+Up/DownТекуща датаМаркер текущ денТекущ цвят за маркер на деняТекущ месецТекущо времеТекуща годинаКурсор цвятДебелина на курсораДД-ММ-ГГГГДатаДата и време за добавяне или изваждане отПремятане на периодШрифт за датаФормат за датаСинтаксис на формата за датаФормат на датаПериод за датаДенDay SelectorДневна категорияКатегория за деняИме на деняДневна бележкаМаркер дневна бележкаДневна бележкаНомер на денядневни задачиДниDays to birthdayИзтриванеИзтриване на приключени задачи без предупреждениеИзтриване на бележкаОтделОписаниеИзключване подчертаване във връзкиНайстина ли искате да продължитеИскате ли да се запази?ДокументКучеНаправеноНаправен !ДраконКраен срокПериод между две датиE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientГРЕШКА:Не могат да се създадат конфигурациони файловеРедактиране на категорияРедактиране на контактРедактиране на записРедактиране на бележкаРедактиране на задачаРедакторЕлипсаПозволиEnable auxilary calendarsПозволяване на блок курсорРазрешаване на звуково оповестяванеРазрешаване проврка на правописа в дневни бележкиРазрешаване на системна областРазрешаване на съветиКриптиранаПодръжка на шифровани бележкиШифрованеКрайВъвежданеВъвеждане на паролаГрешкаГрешка при печатанеEscСъбитиеМаркер СъбитиеЦвят за маркер на събитие Максимална дължина на събитиеСъбитияЕкспортИзнеси контактиИзнасяне на задачаEкспортиране като iCal файлБързоФаксБъдещи запитванияТип полеПолета за износФайлФайлово имеФилтърНамиранеЗавършениПърво имеПърви дата и времеИмеРазмер на шрифтаШрифтовеПетелСвободен кръгFrom (hour)ПълнолуниеFull dateЦелогодишен календарБлизнациГлавноГлобална уведомителна командаДоброГрафикиГрупаГрупиЗаекHashingПомощнициСкриванеСкриване на приключените задачиСкриване колоната за групаВисокоМаркиранеДомашенДомашен адресГрадДържаваДомашен телефонДомашен телефон 2Домашен телефон 3Домашен телефон 4Пощенски кодОбластHome/EndХоризонталноКонЧасЧасовеIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooИгнорирай алармата когато срока е изтекълИгнориране на събитие от дневна бележкаИгнориране на уйкендитеВнасянеВнеси цонтактиВходящ типНеправилна паролаИнформацияИнформацияВходящо име на файлПоставянеВмъкване на текуща дата и времеПоставяне на разделителInsert timelineИнтернетИнтервалОбръщанеItalicПозиция размера на шрифтаСкочи до датаБързи клавишиПейзажГолямФамилияПоследна четвърт Последни промениФамилияРазпределениеВисокосна годинаЛявоЛяво,ДясноЛъвВезниЛицензЛинияЛинийНискоММ-ДД-ГГГГММ/ДД/ГГПощенски списъциМаркиранеПазарни дниСреденМинутаМинутиРазниМодифициранеПромяна на ICAL параметриМаймунаМесецИме на месецаМесециЛуна фазаИмеИмена деняName day dateРазмер на шрифта имеДневни именаНоволуниеНов контактНова бележкаНова задачаСледващ денСледващ месецСледваща годинаПрякорНеНяма дефинирани рожденни дниБез датаNo further data recovery will be possible.Без промяна на месецНяма намерен запис във избраният файлНяма намерени задачи с определената дата.Няма валидни определени календариNo.НищоБележкаРедактор на бележкиШрифт за бележкиИме на бележкаТип на бележкаБележкиОпций за бележкиНищо за внасянеБрой полета за записБрой дниБрой на дните за проверка на събития напред (default: 0)Брой на уйкенд дниБрой седмициOSMO бе проектиран със цел удобството на потребителя,разполага със функциябързи клавиши.Ето и пълният списък:Отваряне на бакъп файлОперацияОпцийОрганизацияOsmo бакъп файлове (*.bck)OSMO ще се рестартира сега...OSMO трябва да се рестартира за да се приложат промените Изходящо файлово имеИзходен форматЗамяна на локалните настройкиБиволВложкаОрентация на страница:PageUp/PageDnЗащита на паролаПаролите не съвпадатЛиченТелефониСнимкаРазмер на изображениетоСвиняРибиPlainМоля въведете паролаМоля изберете адресИзберете поне един ден когато recurrency е разрешеноМоля изберете файл първо.ПортретПощенски кодОтлагане ПредпочитанияПредходен и следващ месецПредходен денПредходен месецПредходна годинаОтпечатване на календарПечатане на видимите задачиСвойства за печатПодръжка печатПриоритетПрограмиранеПърва четвъртВъпросИзходПлъхПропорцияПовторете паролатаСамо за четенеЗаписПовтарящи се задачиЗапомняне позицята на курсораЗапомняне на последната избрана страницаЗапомняне на последната избрана категорияНапомни ми по-късноОпций за напомнянеПремахване на контактПремахване на задачаПовторениеПовторение във следващите дниПовторение звуковата алармаНулиране на полетаНулиране РезултатДясноСтрелецЗапазване на бакъпЗапазване на даните след всяка модификацияЗапазване на бележкаЗапазване на задачиСкорпионТърсенеСекундаВтори дата и времеБащиноСекундиИзбиране на CSV файлИзбиране на ICS файлИзбиране на шрифт...Избор на цвятИзбиране дата и времеИзбиране цвят за деняИзбирани полетаИзбор изходящ файлИзбор на снимкаИзбор на контакт който ще бъде премахнатИзбраната дневна бележка ще бъде премахнатаИзбраният файл съществува.Замяна?Избран месецИзбрани месец и годинаИзбрана бележка за премахванеИзбрани задачи който ще бъдат премахнатиИзбрана годинаИзборселекторНастройка на абсолютният път за настройки и файлове с данниНастройка на текуща датаНастройка на текущо времеЗадаване формат по подразбиранеНастройка на времеОвцаПокажи OSMOПоказване на рождени дниПоказване календарПокажи локализацията на контакта на картатаПоказване на контактиПокажи имената на днитеПокази във bold задачите с висок приоритетПоказване в инфо панела на деняПоказване на бележкиПоказване на опцийПоказване календара в малък прозорецПокажи задачаПоказвана задачиПокажи седмичните номераОбикновен изглед на целогодишният календарЕдновременото използване на два или повече копия на OSMO може да бъде причина за загуба на данни.МалъкЗмияSound playerИнтервалПроверка за правопис Правописна подръжкаСтартСтартиране минимализираноСтартираниОбластСтатистикиStep (minutes)ЗачеркванеЗачерване последните бележки за деняРезюмеСинтаксисSystem trayПозиция за табоветеЕтикетиЗадачаДетайли на задачатаЗадачата е била променена или премахнатаИнформация за шрифта на задачатаЗадачиЛиста със задачиОпций задачиБикСхемите %s ще бъдат заменени със имейл адресThe %s pattern will be replaced with sound filenameСхемите %s ще бъдат заменени с уеб адресСписъкът ще бъде изчистен и всички записи ще бъдат загубени.Бележката бе промененаДебелоТънкоКалкулаторът подържа само дати след година 1.Това не е бакъп файл на OsmoТигърВремеФормат за времеВремеви периодВреме за добавяне или изважданеХронологияTo (hour)ДнесToday distanceПревключване панел Дневни бележкиПревключване за правописна проверкаУтреГореПреводачиТипПодчертаванеНепознатИзползване на период Използвай първият запис за главенИзползване на системният формат за дата и времеВалиденСтойностВертикалноДеваВидими колониПоказване колони в браузъра за рожден денВидими събитияWWWWWW 2WWW 3WWW 4ПолумесецПолумесецВниманиеВълнаПолумосецПолумесецWeb browserномер на седмицатаСедмицата започва от ПонеделникСедмични дниЦвят на седмичен денСедмициWhite charactersДумиМестоработаАдрес по местоработаГрад по местоработаДържава по местоработаТелефон по местоработаТелефон по месторабота 2Телефон по месторабота 3Телефон по месторабота 4Пощенски код по местоработаОбласт по местоработаГГГГ-ДД-ММГГГГ-ММ-ДДГодинаГодишна информацияГодиниДаЗодиясъкратено име на месецсъкратено име на седмичен денактивиране полето за търсенедобавянедобавяне на контактдобавяне на бележкадобавяне на задачаприсвояване цвят на фона за дневна бележкаcase sensitiveпромяна филтъра за категорияпромяна на деняпромяна на месецапромяна режим търсенеПромяна на годинатаизчистване избраните атрибутизатваряне панела за детайли на контактазатвори редакторазатвори годишният календарзатваряне редактора на бележкизатваряне на инфо панела за задачисъбран подобавен контактдобавени контактиизнесен контактизнесени контактикалкулатор на дниДенДнибраузър дневни бележкиден от месецаден от месеца без нула отпредден до края на годинатадни до края на годинатаРедактиране на контактредактиране име и категория на бележкаредактиране на задачаПодръжката за криптиране е забраненазаписзаписисъбитиесъбитияизнесено събитиеизнесени събитияизходнамери текстпълно име на месецаПълно име на седмичен денчасчасовечасовеiCalendar събитияiCalendar exportiCalendar файловеiCalendar подръжкаскочи на датаминутаминутиминутиМесецМесециняма записинаотваряне на бележкаилиотложенопремахване на контактпремахване на дневна бележкапремахване на бележкапремахване на задачазакръгляване надолузапазване на бележкапревъртане съдържанието на панела за дневна информацияСекундаСекундиизберете текуща датанасройване текуща годинаshow about windowпокажи годишният календарпокажи прозореца с опцийизважданевключи страницата с опций и за разделапревключи на следващият табПревключи на предходният табпревключи на избраната страницаизнесени задачиПоследният ден от годинатавремето е игнорирановременаДнеспревключи на алтернативен изгледtoggle boldпревключване на календарите за предходният и следващ месецпревключи на скрити задачиtoggle highlighttoggle italicразрешаване видимост на личните данниtoggle strikethroughtoggle underlineВерсияе роденСедмицаСедмициседмичен денседмични дниуйкенд ден игнориран уйкенд дни игнорираниРаботен денРаботни дниГодинаГодинигодишна информацияyear oldyears oldгодина със указване на векгодина без указване на векosmo-0.4.2/po/es.mo0000664000175000017500000011041513204320601010770 00000000000000m<)6 667 7 ,7.77f7o7x77777 7 77 77 7 7 8 888 W8 b8p8 888(8 88 89 999&%9$L9 q9999999 99 9::::": 5: B:N:*T::: :::::::";8; J;T; c;n; w; ; ; ;; ; ;;<&<-<2<8< I<T<h< <<<<<.<!< ===L=S=Z= o={== = === = = = = = =>> /> => J> W>d> u>>%>> > >>> >? ?? #?0?9?B? R? \? g?q?v??+? ? ? ???@!@9@B@F@K@Q@X@a@|@@@@ @!@ @ @ @ @ @AAAA8ALA!fAAA AA AAAAAAB B BB0BEBLBSB cBpBBBB BBBBBBB BB B CCCC -C 9C CCMC`CgCoCCCCCCCCCCCC CC C D D D *D 7D DD QD _DjD sD~DDDD DD DDDDD&DDE'E.E >EJE^E cEoE~EEEEEEEEE E E FF F'F 9F FFPF WFaF fFrFvF|FFFF FF FF FFFF FFF GG G"G )G4G9G BGPG_GhG qG}GGG G GGGGG*GH"H!4HVHqHuHzH H H H HH HHHH7H0IGIoWII II IIJ(1JZJ jJxJJJJ JJJJJJ J K KKK4K:JKKKK K KK KK K LL5LILZL cL oL|LLLLL LLLLL#LM/M@M OM[MbMM M MMM M M"M M MNNNN 2N>NFNVNfN wNNN NN N!N"NO=OLOdOO O OO-OOPP&P/P 5P?P NP \P }PP%PP P PP Q QQ!1QJSQQQ QQQQQQRR RR (R6RSR[R bR nR|RR R"RRR R RR3R3S0SS6SSSS1ST+T1T 6T BTNTfT oTyTTTTTT TT TTTT#U8U>UDUMUSU#cUUUUUUUUUUUU V V#V 8VEVXV^VoVuV zV V V V V V V V V V VV WWW W$W;WTWjW nWzWW#WWW W WW X X(X DXQXjX|X XX"XXXX Y&Y*AY lYyY YY Y YYY YZZ )Z4Z:ZKZ\ZlZ ~ZZZ Z ZZ ZZ ZZZ Z Z [ [)"[L[[[o[[[[[$[[[\.\=\V\f\l\r\ \0\\\ \\]/]@]H] Q]\](u]] ] ]]]]{^_!_ ___<_ ` ,`8`T` k`v````` ``````Na ^ajaza aaa)a abbbb%b-b(Bb%kb bb,bbbc c!c5c Sc_ctcycccc!cc2c dd9dOddd*ldddd0de ;e)Ge qe }eeeee&e%e f1*f\fxffff fff ff gg#g=;g(yg)ggggg hh +h 5hBhQhWh ^h ih wh hh hhh h h h ii ,i7i%=iciyi iiiiiiijj ,j:j Sjajqjjjj0j j j j%k &k4kGk Zkdkjkpkyk kkkkkkk5lSlelul l lll llll2m#3mWmkmsmmmm mmmmmmmmn!n*n=nMnenmnqn nnnnnn nnnooo$o*o 3o @oKoZovoooo oooooooo p$p )p3p8pQpfp zp p p ppp p ppppp p q qq"q+q3q4YsˎюՎ>#Cg'ˏ,&?S ԐDs/[11!h,bYz:m^_@@<,_zgG+hvN3=NS8{ #/_jC|3)IZh f$QK} R= 9nkMFTSE;;y9n* HpJLN8i>b e^5(&B Jgs +7k<0l7#"#%%rFV3c@zF0E-o8w]YPpD.c?\BubOxdIfQj[dW({D(jt`s!'mE>atW/pXwvkWUCQ|wOi?`m:ZeGRM'*[=H*!gOAUK  Td;SB]>-L%$ }cT 2<) i+)Y0J-u {6l]5"A5yya6 A}$, 2X~P"Z~f\|reLIUVl2^K?&` ~xXPuC4&H\xq46rMR Vv4Gn't.qao1:oq.790 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-03-29 16:059+100 Last-Translator: Nacho Alonso González Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); 0 para deshabilitarUn práctico organizador personalAcerca deNuevo contactoAñadir cabeceraCrear nueva tarea al hacer doble-click en la lista de tareasAñadir notaNueva tareaSumar o restar de una fechaInformación adicionalDirecciónAvanzadoEdadComando de alarmaAlarma de aviso!Aviso de alarma!AlgoritmoTodoTodos los ficherosTodos los camposTodos los elementosTodos las notasTodos los datos serán reemplazados con los del fichero de copia de seguridad.Alt+FlechasAlt+a, InsertarAlt+e, Ctrl+IntroAlt+r, Supr.Unidades de tiempo alternativasVista alternativaOtra copia de OSMO ya se esta ejecutando.AparienciaAcuario¿Está seguro?AriesFlechaFlechasFlechas arriba/abajoOrdenación ascendente en notas del díaAl menos un módulo debe ser visible.AutorizaciónMódulos disponibles¡Copia de seguridad guardada correctamente!Soporte de copia de seguridadBásicoMejorFecha de nacimientoFecha de nacimientoColor de marca de cumpleañosCumpleañosLista de cumpleañosBlogNegritaAbajoExplorar eventos de iCalendarExplorar notasSistema de seguimiento de erroresBytesArchivos CSV (valores separados por comas) (*.csv)CalendarioFicheros de calendario (*.ics)Fuente del calendarioNotas del calendarioCáncer¡No se puede crear la copia de seguridad!No se pudo crear el fichero.El fichero no se puede abrir.La nota no se puede abrir.No se puede realizar la operación seleccionada.El fichero no se puede leer.CapricornioCoincidencia de mayúsculas / minúsculasCategoríasCategoríaTeléfono móvilTeléfono móvil 2Teléfono móvil 3Teléfono móvil 4Cambiar fecha de fin al día siguienteCambiar fecha de fin al día anteriorCaracteresComprobar los eventos desde la última ejecuciónAnimal del calendario chinoCírculoCiudadBorrarBorrar formatoBorrar textoCerrar detalles del contactoCerrar descripciónCerrar editorCerrar barra de búsquedaCerrar notasColorColor de las etiquetas de contactosColor de los elementos que finalizan en los próximos 7 díasColor de los elementos que finalizan hoyColor de los elementos que ya han vencidoColor de enlacesColoresColumnaCaracterísticas compiladasCompresiónDetalles del contactoContactos¿Continuar?ContribucionesPaísCreadoCtrl+IntroCtrl+Av.Pág.Ctrl+Re.Pág.Ctrl+EspacioCtrl+Arriba/AbajoFecha actualMarca de fecha actualColor de marca de fecha actualMes actualHora actualAño actualColor del cursorGrosor del cursorDD-MM-AAAAFechaFecha y hora de la que sumar o restarCalculadora de fechasFuente de la fechaFormato fechaFormato de fechaFormato de la cabecera de fechaPeriodo de fechasDíaSeleccionar díaCategorías de díasCategoría de díasNombre del díaNota del díaMarca para nota del díaNota del díaNúmero de díaTareas del díaDíasDías hasta el cumpleañosBorrarEliminar las tareas terminadas sin confirmaciónBorrar notaDepartamentoDescripciónDeshabilitar subrayado en los enlacesDeshabilitado¿Desea continuar?¿Desea guardarla?DocumentoPerroHecho¡Hecho!DragónFecha de finTiempo entre dos fechasCorreo electrónicoCorreo electrónico 2 Correo electrónico 3 Correo electrónico 4Cliente de correo electrónicoERROR: No se pudo crear el fichero de configuración.Editar categoríaEditar contactoEditar elementoEditar notaEditar tareaEditorElipseHabilitarMostrar calendarios auxiliaresUsar cursor de bloqueNotificar con sonidoHabilitar corrector ortográfico en notas del díaMostrar icono en bandeja de sistemaMostrar sugerenciasCifradoSoporte de notas cifradasCifradoFinIntroContraseñaErrorError imprimiendoEscEventoMarca de eventosColor de marca de eventosLongitud máxima de los eventosEventosExportarExportar contactosExportar tareasExportar a fichero iCalRápidoFaxPeticiones de característicasTipo de campoCampos a exportarFicheroNombre de archivoFiltroBuscarTerminadoNombreFecha y hora de inicioNombreTamaño de la fuenteFuentesGalloCírculoDesde (hora)Luna llenaFecha completaCalendario de año completoGéminisGeneralComando global de notificaciónBuenoGráficosGrupoGruposLiebreResumenProgramas auxiliaresOcultarOcultar tareas terminadasOcultar columna de gruposAltaDestacadoCasaDirección de residenciaCiudad de residenciaPaís de residenciaTeléfonoTeléfono 2Teléfono 3Teléfono 4Código postalRegión de residenciaInicio/FinHorizontalCaballoHoraHorasIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnorar alarmas cuando la tarea expira sin conexiónIgnorar eventos de nota del díaIgnorar días en fin de semanaImportarImportar contactosTipo de importación¡Contraseña incorrecta!InformaciónInformaciónFichero de entradaInsertarInsertar fecha y hora actualInsertar separadorInsertar franja de tiempoInternetIntervaloInvertirCursivaTamaño de fuente de los elementosIr a fechaAtajos de tecladoHorizontalGrandeApellidosCuarto menguanteÚltimo cambioApellidosFormatoAño bisiestoIzquierdaIzquierda, DerechaLeoLibraLicenciaLíneaLíneasBajaMM-DD-AAAAMM/DD/AAListas de correoMarcaDías marcadosMedianaMinutoMinutosVariosModificadoModificar parámetros de ICALMonoMesNombre del mesMesesFase lunarNombreSantoSantoTamaño de fuente de los nombresSantosLuna nuevaNuevo contactoNueva notaNueva tareaDía siguienteMes siguienteAño siguienteApodoNoNo se han definido cumpleañosSin fechaNo se podrán recuperar los datos después.No cambiar de mesNingún registro encontrado en el fichero seleccionado.No hay tareas con fecha definida.No se han definido calendarios válidosNúm.NingunoNotaEditor de notasFuente de las notasNombre de la notaTipo de notaNotasOpciones de notasNada que importar.Numero de campos por registroNúmero de díasNúmero de días para comprobar eventos hacia delante (por defecto: 0)Días en fin de semanaNúmero de semanasOSMO ha sido diseñado para ser cómodo para el usuario, por eso existen multitud de atajos de teclado. Esta es la lista completa:Abrir fichero de copia de seguridadOperaciónOpcionesOrganizaciónFicheros de copia de seguridad de Osmo (*.bck)Osmo debe ser reiniciado ahora...Osmo debe ser reiniciado para que tome efecto.Fichero de salidaFormato de salidaIgnorar configuración del sistemaBueyEspaciadoOrientación de la página:Re.Pág./Av.Pág.Proteger con contraseña¡Las contraseñas no coinciden!PersonalTeléfonosFotografíaTamaño de la fotoCerdoPiscisSencilloEscriba la contraseñaPor favor, seleccione la dirección.Seleccione al menos un día si la tarea es repetitiva.Por favor, seleccione el fichero antes.VerticalCódigo postalRetraso de aviso pospuestoPreferenciasMes anterior y siguienteDía anteriorMes anteriorAño anteriorImprimir calendarioImprimir lista de tareas visiblesPropiedades de la impresiónSoporte de impresiónPrioridadDesarrolloCuarto crecientePreguntaSalirRataRatioEscriba la contraseña de nuevoSolo lecturaRegistroTarea repetitivaRecordar posición del cursorRecordar última página seleccionadaRecordar última categoría seleccionadaRecordarme más tardeOpciones de avisosEliminar contactoEliminar tareaRepetirRepetir en los días siguientesRepetir alarma de sonidoReiniciar camposReiniciar horaResultadoDerechaSagitarioGuardar copia de seguridadGuardar datos después de cada modificaciónGuardar notaGuardar tareasEscorpioBuscarSegundoFecha y hora de finSegundo nombreSegundosSeleccione fichero CSVSeleccione fichero ICSSeleccione una fuente...Seleccionar colorSeleccione fecha y horaSeleccionar color del díaSeleccione camposSeleccione el fichero de salidaSeleccione fotografíaEl contacto seleccionado será eliminado.La nota del día seleccionado será eliminada.El fichero seleccionado existe. ¿Sobrescribir?Mes seleccionadoMes y año seleccionadoLa nota seleccionada será eliminada.Las tareas seleccionadas se eliminarán.Año seleccionadoSelecciónSeleccionarEstablezca la ruta absoluta para los ficheros de datos y configuraciónFijar fecha actualFijar hora actualFormato por defectoFijar horaOvejaMostrar OsmoMostrar cumpleañosMostrar calendarioMostrar localización de contactos en mapaMostrar contactosMostrar nombre del díaMostrar en negrita tareas con prioridad altaMostrar en el calendarioMostrar notasMostrar opcionesMostrar pequeña ventana de calendarioMostrar tareaMostrar tareasMostrar numero de semanaVista simple del calendario anualUsar simultáneamente dos o mas copias de OSMO puede causar perdida de datos.PequeñaSerpienteReproductor de sonidoEspacioIdioma del corrector ortográficoSoporte de comprobación ortográficaInicioIniciar minimizadoInicioRegiónEstadísticasSalto (minutos)TachadoTachar notas de días pasadosResumenSintaxisBandeja de sistemaPosición de las pestañasEtiquetasTareaDetalles de la tareaLa tarea ha sido editada o eliminadaFuente para detallesTareasLista de tareasOpciones de las tareasTauroEl patrón %s será reemplazado por el correo electrónicoEl patrón %s será reemplazado por el nombre del fichero de sonidoEl patrón %s será reemplazado por la dirección webLa lista será vaciada, todas las entradas se perderán.La nota ha cambiado.GruesoDelgadoEsta calculadora solo admite fechas posteriores al año 1.Este no es un fichero de copia de seguridad de OsmoTigreHoraFormato de horaPeriodo de tiempoHora que sumar o restarFranjas de tiempoHasta (hora)HoyDistancia al día de hoyMostrar / ocultar notas del díaRevisor ortográficoMañanaArribaTraductoresTipoSubrayadoDesconocidoPeriodo de fechasUsar primer registro como cabeceraUsar formato de fecha y hora del sistemaVálidoValorVerticalVirgoColumnas visiblesColumnas visibles en lista de cumpleañosEventos visiblesWWWWWW 2WWW 3WWW 4MenguanteMenguanteAvisoOndaCrecienteCrecienteNavegadorNúmero de semanaLa semana empieza el lunesDías en fin de semanaColor de los días de fin de semanaSemanasEspaciosPalabrasTrabajoDirección de trabajoCiudad de trabajoPaís de trabajoTeléfono del trabajoTeléfono del trabajo 2Teléfono del trabajo 3Teléfono del trabajo 4Código postal de trabajoRegión de trabajoAAAA-DD-MMAAAA-MM-DDAñoInformación del añoAñosSíSigno del zodiaconombre abreviado del mesnombre abreviado del día de la semanaactivar el campo de búsquedasumarnuevo contactoañadir notaañadir tareaasignar color de fondo a nota del díaCoincidencia de mayúsculas / minúsculascambiar filtro de categoríascambiar díacambiar mescambiar el modo de búsquedacambiar añoeliminar atributos de la seleccióncerrar detalles del contactocerrar editorcerrar calendario de año completocerrar notascerrar información de la tareacompilado elcontacto añadidocontactos añadidoscontacto exportadocontactos exportadoscalculadora de fechasdíadíasexplorador de notas del díadía del mesdía del mes sin ceros a la izquierdadía hasta fin de añodías hasta fin de añoeditar contactoeditar nombre de la nota y categoríaeditar tareaEl soporte para notas cifradas está deshabilitadoelementoelementoseventoeventosevento exportadoeventos exportadossalirbuscarnombre del mesnombre del día de la semanahorahorashoraseventos de iCalendarExportación de iCalendarArchivos de iCalendarSoporte de iCalendarir a fechaminutominutosminutosmesmesessin entradasdeabrir notaoPospuestoeliminar contactoeliminar nota del díaeliminar notaeliminar tarearedondeado hacia abajoguardar notadesplazar el contenido del panel de información del díasegundosegundosseleccionar fecha actualaño actualMostrar ventana "Acerca de"mostrar calendario de año completoMostrar ventana de opcionesrestarcambiar de página en las pestañas "Opciones" y "Acerca de"ir a la pestaña siguienteir a la pestaña anteriorir a la pestaña seleccionadatareas exportadasÚltimo día del añose ignora la horavecesHoyvista alternativaactivar / desactivar negritamostrar / ocultar calendarios para el mes anterior y siguientemostrar / ocultar tareas escondidasactivar / desactivar destacadoactivar / desactivar cursivacambiar visibilidad de datos personalesactivar / desactivar tachadoactivar / desactivar subrayadoversiónnaciósemanasemanasdía en fin de semanadías en fin de semanadía de fin de semana ignoradodías de fin de semana ignoradosdía laborabledías laborablesañoañosinformación del añoaño de edadaños de edadaño con sigloaño sin sigloosmo-0.4.2/po/ca.po0000664000175000017500000010314413204320601010750 00000000000000# Spanish translation of Osmo # This file is distributed under the same license as the Osmo package. # Roger Adell , 2008. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2008-02-03 20:09+100\n" "Last-Translator: Roger Adell \n" "Language-Team: Català\n" "Language: ca\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" msgid "Colors" msgstr "Colors" msgid "Color of contact tags" msgstr "Color de les etiquetes de contactes" msgid "Color of links" msgstr "Color d'enllaços" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Tamany de la foto" msgid "Small" msgstr "Petita" msgid "Medium" msgstr "Mitjana" msgid "Large" msgstr "Gran" msgid "Hide group column" msgstr "Ocultar columna de grups" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Edat" msgid "Birthday date" msgstr "Data de naixement" msgid "Zodiac sign" msgstr "Signe del zodiac" msgid "Contacts" msgstr "Contactes" msgid "Appearance" msgstr "Aparença" msgid "Miscellaneous" msgstr "Miscel·lània" msgid "Groups" msgstr "Grups" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Algoritme" msgid "Hashing" msgstr "Resum" msgid "Compression" msgstr "Compressió" msgid "Ratio" msgstr "Rati" msgid "Fast" msgstr "Ràpida" msgid "Good" msgstr "Bona" msgid "Best" msgstr "Millor" msgid "Type" msgstr "Tipus" msgid "Category" msgstr "Categoria" msgid "Last changes" msgstr "Última canvis" msgid "Created" msgstr "Creat" msgid "Remember the last selected category" msgstr "Recordar l'última categoria sel·leccionada" msgid "Use system format for date and time" msgstr "Usar format de data i hora del sistema" msgid "Notes" msgstr "Notes" msgid "Encryption" msgstr "Xifrado" msgid "Visible columns" msgstr "Columnes visibles" msgid "Categories" msgstr "Categories" msgid "Notes options" msgstr "Opcions de notes" msgid "Jump to date" msgstr "Anar a la data" msgid "Day" msgstr "Dia" msgid "Month" msgstr "Mes" msgid "Year" msgstr "Any" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Seleccioni una font..." msgid "None" msgstr "Cap" msgid "All items" msgstr "Tots els elements" msgid "Question" msgstr "Pregunta" msgid "Information" msgstr "Informació" msgid "Error" msgstr "Error" msgid "Warning" msgstr "Avís" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "El fitxer sel·leccionat existeix. Sobreesciure?" msgid "Selected contact will be removed." msgstr "El contacte sel·leccionat serà esborrat." msgid "Are you sure?" msgstr "Esteu segurs?" msgid "No date" msgstr "Sense data" msgid "Select photo" msgstr "Sel·leccioni fotografia" msgid "Address" msgstr "Direcció" msgid "Postcode" msgstr "Codi postal" msgid "City" msgstr "Ciutat" msgid "State" msgstr "Regió" msgid "Country" msgstr "País" msgid "Edit contact" msgstr "Editar contacte" msgid "Add contact" msgstr "Nou contacte" msgid "Personal" msgstr "Personal" msgid "Group" msgstr "Grup" msgid "Home" msgstr "Casa" msgid "Work" msgstr "Feina" msgid "Phones" msgstr "Telèfons" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informació addicional" msgid "_OK" msgstr "" msgid "no entries" msgstr "sense entrades" msgid "entry" msgid_plural "entries" msgstr[0] "element" msgstr[1] "elements" msgid "Calendar notes" msgstr "Notes del calendari" msgid "Search" msgstr "Buscar" msgid "Filter" msgstr "Filtre" msgid "Current month" msgstr "Mes actual" msgid "Selected month" msgstr "Mes sel·leccionat" msgid "Current year" msgstr "Any actual" msgid "Selected year" msgstr "Any sel·leccionat" msgid "Selected month and year" msgstr "Mes i any sel·leccionat" msgid "All notes" msgstr "Totes les notes" msgid "Case sensitive" msgstr "Coincidència de majúscules / minúscules" msgid "Strikethrough past day notes" msgstr "Tatxar notes de dies passats" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rata" msgid "Ox" msgstr "Bou" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Llebre" msgid "Dragon" msgstr "Drac" msgid "Snake" msgstr "Serp" msgid "Horse" msgstr "Cavall" msgid "Sheep" msgstr "Ovella" msgid "Monkey" msgstr "Mono" msgid "Fowl" msgstr "Gall" msgid "Dog" msgstr "gos" msgid "Pig" msgstr "Porc" msgid "Unknown" msgstr "Desconegut" msgid "Aquarius" msgstr "Aquari" msgid "Pisces" msgstr "Peixos" msgid "Aries" msgstr "Àries" msgid "Taurus" msgstr "Taure" msgid "Gemini" msgstr "Gèminis" msgid "Cancer" msgstr "Cranc" msgid "Leo" msgstr "Lleó" msgid "Virgo" msgstr "Verge" msgid "Libra" msgstr "Balança" msgid "Scorpio" msgstr "Escorpí" msgid "Sagittarius" msgstr "Sagitari" msgid "Capricorn" msgstr "Capricorn" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Posició de les pestanyes" msgid "Left" msgstr "Esquerra" msgid "Right" msgstr "Dreta" msgid "Top" msgstr "Amunt" msgid "Bottom" msgstr "Avall" msgid "Disable underline in links" msgstr "Deshabilitar subratllat dels enllaços" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Com a mínim un mòdul ha de ser visivle." msgid "Calendar" msgstr "Calendari" msgid "Tasks" msgstr "Tasques" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "Format data" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Format d'hora" msgid "hours" msgstr "hores" msgid "Spell checker language" msgstr "" msgid "Enable tooltips" msgstr "Mostrar sugerències" msgid "Remember last selected page" msgstr "Recordar última pàgina sel·leccionada" msgid "Save data after every modification" msgstr "Guardar dades després de cada modificació" msgid "Web browser" msgstr "Navegador" msgid "E-mail client" msgstr "Client de correu electrònic" msgid "Sound player" msgstr "" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "Mostrar icona a la safata de sistema" msgid "Start minimised" msgstr "Iniciar minimitzat" msgid "Ignore day note events" msgstr "" msgid "General" msgstr "General" msgid "Hide" msgstr "Ocultar" msgid "Helpers" msgstr "Ajudes" msgid "System tray" msgstr "Safata de sistema" msgid "Preferences" msgstr "Preferències" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "mes" msgstr[1] "mesos" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "Marca per a nota del dia" msgid "Event marker" msgstr "Marca d'esdeveniments" msgid "Circle" msgstr "Cercle" msgid "Ellipse" msgstr "Elipse" msgid "Wave" msgstr "Ona" msgid "Current day marker" msgstr "Marca de data actual" msgid "Arrow" msgstr "Fletxa" msgid "Free-hand circle" msgstr "Cercle" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Color dels dies de cap de setmana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Color del cursor" msgid "Event marker color" msgstr "Color de marca d'esdeveniments" msgid "Current day marker color" msgstr "Color de marca de data actual" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "Font de la data" msgid "Calendar font" msgstr "Font del calendari" msgid "Note font" msgstr "Font de les notes" msgid "Enable block cursor" msgstr "Usar cursor de bloc" msgid "Cursor thickness" msgstr "Gruix del cursor" msgid "Thin" msgstr "Prim" msgid "Thick" msgstr "Gruixut" msgid "Edit category" msgstr "" msgid "Color" msgstr "Color" msgid "Name" msgstr "Nom" msgid "Select ICS file" msgstr "Seleccioni fitxer ICS" msgid "All Files" msgstr "Tots els fitxers" msgid "Calendar files (*.ics)" msgstr "Fitxers de calendari (*.ics)" msgid "Modify ICAL parameters" msgstr "Modificar paràmetres d'ICAL" msgid "Filename" msgstr "Nom de l'arxiu" msgid "Options" msgstr "Opcions" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Vàlid" msgid "Description" msgstr "Descripció" msgid "Full date" msgstr "" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "La setmana comença dilluns" msgid "Show day names" msgstr "Mostrar nom del dia" msgid "No month change" msgstr "No canviar de mes" msgid "Show week numbers" msgstr "Mostrar número de setmana" msgid "Simple view in full-year calendar" msgstr "Vista simple del calendari anual" msgid "Enable auxilary calendars" msgstr "Mostrar calendaris auxiliars" msgid "Ascending sorting in day notes browser" msgstr "Ordrn ascendent en notes del dia" msgid "Enable spell checker in day notes" msgstr "" msgid "Current time" msgstr "Hora actual" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Número de dia" msgid "Today distance" msgstr "Distància al di­a d'avui" msgid "Marked days" msgstr "Dies assenyalats" msgid "Week number" msgstr "Número de setmana" msgid "Weekend days" msgstr "Dies en cap de setmana" msgid "Day category" msgstr "Categoria de dies" msgid "Moon phase" msgstr "Fase lunar" msgid "Day notes" msgstr "Notes del dia" msgid "Day categories" msgstr "Categories de dies" msgid "iCalendar files" msgstr "Arxius d'iCalendar" msgid "Show in day info panel" msgstr "Mostrar al panell d'informació del dia" msgid "Tasks list" msgstr "" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "No." msgid "Summary" msgstr "Resum" msgid "Due date" msgstr "Data de finalització" msgid "Priority" msgstr "Prioritat" msgid "Error printing" msgstr "Error imprimint" msgid "No birthdays defined" msgstr "No s'han definit aniversaris" msgid "Birthdays list" msgstr "Lista d'aniversaris" msgid "Days to birthday" msgstr "Dies fins l'aniversari" msgid "today" msgstr "Avui" msgid "Select CSV file" msgstr "Sel·lecioni fitxer CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Arxius CSV (valors separats per comes) (*.csv)" msgid "Please select file first." msgstr "Si us plau, sel·leccioni el fitxer abans" msgid "Import contacts" msgstr "Importar contactes" msgid "Import type" msgstr "Tipus d'importació" msgid "File" msgstr "Fitxer" msgid "Input filename" msgstr "Fitxer d'entrada" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Res per importar." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contacte afegit" msgstr[1] "contactes afegits" msgid "of" msgstr "de" msgid "Record" msgstr "Registre" msgid "Number fields per record" msgstr "Número de camps per registre" msgid "Use first record as header" msgstr "Usar primer registe com a capçalera" msgid "Field type" msgstr "Tipus de camp" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Cap registre trobat al fitxer sel·leccionat." msgid "Cannot read file." msgstr "El fitxer no es pot llegir." msgid "Cannot open file." msgstr "El fitxer no es pot obrir." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Mostrar calendari" msgid "Show tasks" msgstr "Mostrar tasques" msgid "Show contacts" msgstr "Mostrar contactes" msgid "Show notes" msgstr "Mostrar notes" msgid "Show options" msgstr "Mostrar opcions" msgid "Quit" msgstr "Salir" msgid "Show small calendar window" msgstr "Mostrar petita finestra del calendario" msgid "Check for events since last run" msgstr "Comprovar els esdeveniments des de l'última execució" msgid "Number of days to check forward for events (default: 0)" msgstr "" "Número de dies per comprovar esdeveniments cap endavant (por defecto: 0)" msgid "Set absolute path for settings and data files" msgstr "Estableixi la ruta absoluta per als fitxers de dades i configutació" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERROR: No s'ha pogut crear el fitxer de configuració." msgid "Another copy of OSMO is already running." msgstr "Una altra còpis d'OSMO s'està executant." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Usar simultàniament dos o més còpies d'OSMO pot causar pèrdua de dades." msgid "Do you really want to continue?" msgstr "Desitja continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baixa" msgid "High" msgstr "Alta" msgid "Done!" msgstr "Fet!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contacte exportat" msgstr[1] "contactes exportats" msgid "Cannot create file." msgstr "No s'ha pogut crear el fitxer." msgid "Select output file" msgstr "Sel·leccioni el fitxer de sortida" msgid "Export contacts" msgstr "Exportar contactes" msgid "Output format" msgstr "Format de sortida" msgid "Add header" msgstr "Afegir capçalera" msgid "Fields to export" msgstr "Camps a exportar" msgid "All" msgstr "Tot" msgid "Invert" msgstr "Invertir" msgid "Select fields" msgstr "Sel·leccioni camps" msgid "Output filename" msgstr "Fitxer de sortida" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Color dels elements que finalitzen avui" msgid "Color of items that are due in the next 7 days" msgstr "Color dels elements que finalitzaran durant els pròxims 7 dies" msgid "Color of items that are past due" msgstr "Color dels elements que ja han vençut" msgid "Task info font" msgstr "Cons per als detalls" msgid "Show in bold tasks with high priority" msgstr "Mostrar en negreta tasques amb prioritat alta" msgid "Hide completed tasks" msgstr "Ocultar tasques determinades" msgid "Delete completed tasks without confirmation" msgstr "Eliminar las tasques determinades sense confirmació" msgid "Add new task when double clicked on tasks list" msgstr "Crear nova tasca al fer doble click a la llista de tasques" msgid "Postpone time" msgstr "Retardament d'avís posposat" msgid "minutes" msgstr "minuts" msgid "0 for disable" msgstr "0 per a deshabilitar" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "Comanda global de notificació" msgid "Tasks options" msgstr "Opcions de les tasques" msgid "Reminder options" msgstr "Opcions d'avisos" msgid "Insert timeline" msgstr "Insertar franja de temps" msgid "Timeline" msgstr "Franges de temps" msgid "From (hour)" msgstr "Desde (hora)" msgid "Step (minutes)" msgstr "Salt (minuts)" msgid "To (hour)" msgstr "Fins (hora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Sel·leccioni com am mínim un dia si la tasca és repetitiva." msgid "Set time" msgstr "Fixar hora" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minut" msgid "Today" msgstr "Avui" msgid "Tomorrow" msgstr "Demà" msgid "Selected task will be removed." msgstr "Les tasques sel·leccionades s'eliminaran." msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarma d'avís" msgid "Days" msgstr "Dies" msgid "Hours" msgstr "Hores" msgid "Minutes" msgstr "Minuts" msgid "Alarm command" msgstr "Comanda d'alarma" msgid "Date period" msgstr "Període de dates" msgid "Months" msgstr "Mesos" msgid "Repeat" msgstr "Repetir" msgid "Repeat in the following days" msgstr "Repetir els dies següents" msgid "Time period" msgstr "Període de temps" msgid "Start" msgstr "Inici" msgid "End" msgstr "Fi" msgid "Interval" msgstr "Intèrval" msgid "Ignore alarm when task expired offline" msgstr "Ignorar alarmes quan la tasca expira sense connexió" msgid "Recurrent task" msgstr "Tasca repetitiva" msgid "Enable" msgstr "Habilitar" msgid "Edit task" msgstr "Editar tasca" msgid "Add task" msgstr "Nova tasca" msgid "Basic" msgstr "" msgid "Advanced" msgstr "" msgid "New Moon" msgstr "Lluna nova" msgid "Waxing Crescent Moon" msgstr "Creixent" msgid "Quarter Moon" msgstr "Quart creixent" msgid "Waxing Gibbous Moon" msgstr "Creixent" msgid "Full Moon" msgstr "Lluna plena" msgid "Waning Gibbous Moon" msgstr "Minvant" msgid "Last Quarter Moon" msgstr "Quart minvant" msgid "Waning Crescent Moon" msgstr "Minvant" msgid "Cannot create backup!" msgstr "" msgid "Save backup" msgstr "" msgid "Password protection" msgstr "" msgid "Enter password" msgstr "Entrea la contrassenya" msgid "Re-enter password" msgstr "Escriu la contrasesenya de nou" msgid "Please enter the password" msgstr "" msgid "Passwords do not match!" msgstr "Les contrassenyes no coincideixen!" msgid "Backup file saved successfully!" msgstr "" msgid "Open backup file" msgstr "" msgid "Osmo backup files (*.bck)" msgstr "" msgid "This is not Osmo backup file" msgstr "" msgid "Incorrect password!" msgstr "Contrassenya incorrecta!" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "Nom" msgid "Last name" msgstr "Cognom" msgid "Second name" msgstr "Segon nom" msgid "Nickname" msgstr "Pseudònim" msgid "Tags" msgstr "" msgid "Name day date" msgstr "Sant" msgid "Home address" msgstr "Adreça de recidència" msgid "Home postcode" msgstr "Còdi postal" msgid "Home city" msgstr "Ciutat de residència" msgid "Home state" msgstr "Regió de residència" msgid "Home country" msgstr "País de residència" msgid "Organization" msgstr "Organizació" msgid "Department" msgstr "Departament" msgid "Work address" msgstr "Adreça de la feina" msgid "Work postcode" msgstr "Còdi postal de la feina" msgid "Work city" msgstr "Ciutat de la feina" msgid "Work state" msgstr "Regió de la feina" msgid "Work country" msgstr "País de la feina" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telèfon" msgid "Home phone 2" msgstr "Telèfon 2" msgid "Home phone 3" msgstr "Telèfon 3" msgid "Home phone 4" msgstr "Telèfon 4" msgid "Work phone" msgstr "Telèfon de la feina" msgid "Work phone 2" msgstr "Telèfon de la feina 2" msgid "Work phone 3" msgstr "Telèfon de la feina 3" msgid "Work phone 4" msgstr "Telèfon de la feina 4" msgid "Cell phone" msgstr "Telèfon mòbil" msgid "Cell phone 2" msgstr "Telèfon mòbil 2" msgid "Cell phone 3" msgstr "Telèfon mòbil 3" msgid "Cell phone 4" msgstr "Telèfon mòbil 4" msgid "E-Mail" msgstr "Correu electrònic" msgid "E-Mail 2" msgstr "Correu electrònic 2" msgid "E-Mail 3" msgstr "Correu electrònic 3" msgid "E-Mail 4" msgstr "Correu electrònic 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotografia" msgid "New contact" msgstr "Nou contacte" msgid "Remove contact" msgstr "Eliminar contacte" msgid "Show birthdays" msgstr "Mostrar aniversari" msgid "Show contact location on the map" msgstr "" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Sobre..." msgid "Clear" msgstr "Esborrar" msgid "First Name" msgstr "Nom" msgid "Last Name" msgstr "Cognoms" msgid "All fields" msgstr "Tots els camps" msgid "Contact details" msgstr "Detalls del contacte" msgid "Close contact panel" msgstr "Tancar detalls del contacte" msgid "The note has changed." msgstr "La nota ha canviat." msgid "Do you want to save it?" msgstr "Desitja guardar-la?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Paraules" msgid "Lines" msgstr "Línies" msgid "Characters" msgstr "Caràcters" msgid "White characters" msgstr "Espais" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "Modificat" msgid "New note" msgstr "Nova nota" msgid "Edit note" msgstr "Editar nota" msgid "Delete note" msgstr "Esborrar nota" msgid "Save note" msgstr "Guardar nota" msgid "Find" msgstr "Buscar" msgid "Toggle spell checker" msgstr "" msgid "Bold" msgstr "Negreta" msgid "Italic" msgstr "Cursiva" msgid "Underline" msgstr "Subratllat" msgid "Strikethrough" msgstr "Tatxat" msgid "Highlight" msgstr "Destacat" msgid "Clear attributes" msgstr "Esborrar format" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Inserir data i hora actual" msgid "Insert separator" msgstr "Inserir separador" msgid "Statistics" msgstr "Estadístiques" msgid "Close editor" msgstr "Tancar editor" msgid "Note name" msgstr "Nombre de la nota" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "Coincidència de majúscules / minúscules" msgid "Close find entry" msgstr "Tancar barra de búsqueda" msgid "Edit entry" msgstr "Editar element" msgid "Remember cursor position" msgstr "" msgid "Selected note will be removed." msgstr "La nota sel·leccionada serà eliminada." msgid "No further data recovery will be possible." msgstr "No es podran recuperar les dades després." msgid "Add note" msgstr "Afegir nota" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "" msgid "Note type" msgstr "" msgid "Cannot open the note." msgstr "" msgid "encryption support is disabled" msgstr "" msgid "Authorization" msgstr "Autorizació" msgid "year" msgid_plural "years" msgstr[0] "anys" msgstr[1] "anys" msgid "day" msgid_plural "days" msgstr[0] "dia" msgstr[1] "dies" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "hores" msgid "minute" msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minuts" msgid "second" msgid_plural "seconds" msgstr[0] "segon" msgstr[1] "segons" msgid "or" msgstr "o" msgid "rounded down" msgstr "arrodonit cap a baix" msgid "week" msgid_plural "weeks" msgstr[0] "setmana" msgstr[1] "setmanes" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgid "This calculator only supports dates after year 1." msgstr "Aquesta calculadora només afmet dates posteriors a l'any 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "Calculadora de dates" msgid "Current date" msgstr "Data actual" msgid "Set current date" msgstr "Fixar data actual" msgid "Second" msgstr "Segon" msgid "Set current time" msgstr "Fixar hora actual" msgid "Reset time" msgstr "Reiniciar hora" msgid "First date and time" msgstr "Data i hora d'inici" msgid "Second date and time" msgstr "Data i hora de fi" msgid "Alternative time units" msgstr "Unitats de temps alternatives" msgid "Result" msgstr "Resultat" msgid "Duration between two dates" msgstr "Temps entre dues dates" msgid "Operation" msgstr "Operació" msgid "add" msgstr "sumar" msgid "subtract" msgstr "restar" msgid "Date and time to add or subtract from" msgstr "Data i hora de la que sumar o restar" msgid "Years" msgstr "Anys" msgid "Weeks" msgstr "Setmanes" msgid "Seconds" msgstr "Segons" msgid "Ignore weekend days" msgstr "" msgid "Reset fields" msgstr "Reiniciar camps" msgid "Time to add or subtract" msgstr "Hora a sumar o restar" msgid "Add to or subtract from a date" msgstr "Sumar o restar d'una data" msgid "Cannot perform selected operation." msgstr "No es pot dur a terme la operació sel·leccionada." msgid "Task has been modified or removed." msgstr "La tasca ha estat editada o esborrada" msgid "Remind me later" msgstr "Recordar-m'ho més tard" msgid "Done" msgstr "Fet" msgid "Show task" msgstr "Mostrar tasca" msgid "Alarm warning!" msgstr "!Avís d'alarma!" msgid "postponed" msgstr "Posposat" msgid "Day note" msgstr "Nota del dia" msgid "Events" msgstr "Esdeveniments" msgid "Event" msgstr "Esdeveniment" msgid "Task" msgstr "Tasca" msgid "Birthday" msgstr "Data de naixement" msgid "Show Osmo" msgstr "Mostrar Osmo" msgid "event" msgid_plural "events" msgstr[0] "esdeveniment" msgstr[1] "esdeveniments" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "esdeveniments d'iCalendar" msgid "Time" msgstr "" msgid "The list will be cleared and all entries will be lost." msgstr "La llista serà buidada, totes les entrades es perderan." msgid "event exported" msgid_plural "events exported" msgstr[0] "esdeveniment exportat" msgstr[1] "esdeveniments exportats" msgid "iCalendar export" msgstr "Exportació d'iCalendar" msgid "Day Selector" msgstr "Sel·leccionar dia" msgid "Use date period" msgstr "Període de dates" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "" msgid "tasks exported" msgstr "" msgid "was born" msgstr "naixé" msgid "year old" msgid_plural "years old" msgstr[0] "edat" msgstr[1] "edat" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dies fins a fi d'any" msgstr[1] "dies fins a fi d'any" msgid "the last day of the year" msgstr "Últim dia de l'any" msgid "Day tasks" msgstr "Tasques del dia" msgid "Selected day note will be removed." msgstr "La nota del di­a sel·leccionat serà eliminada." msgid "Continue?" msgstr "Continuar?" msgid "Previous year" msgstr "Any anterior" msgid "Previous month" msgstr "Mes anterior" msgid "Previous day" msgstr "Dia anterior" msgid "Next day" msgstr "Di­a següent" msgid "Next month" msgstr "Mes següent" msgid "Next year" msgstr "Any següent" msgid "Full-year calendar" msgstr "Calendario d'Any complert" msgid "Print calendar" msgstr "Imprimir calendari" msgid "Toggle day note panel" msgstr "Mostrar / ocultar notes del di­a" msgid "Select day color" msgstr "Sel·leccionar color del di­a" msgid "Browse notes" msgstr "Explorar notes" msgid "Browse iCal events" msgstr "Explorar events d'iCalendar" msgid "Export to iCal file" msgstr "Exportar a fitxer iCal" msgid "Previous and next month" msgstr "Mes sigüent i anterior" msgid "Close note panel" msgstr "Tancar notes" msgid "Clear text" msgstr "Esborrar text" msgid "Info" msgstr "Informació" msgid "Select color" msgstr "Sel·leccionar color" msgid "Name day" msgstr "" msgid "Printing properties" msgstr "" msgid "Month name" msgstr "" msgid "Day name" msgstr "" msgid "Fonts" msgstr "" msgid "Birthdays" msgstr "" msgid "Namedays" msgstr "" msgid "Visible events" msgstr "" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "" msgid "Portrait" msgstr "" msgid "Landscape" msgstr "" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Any de canvi" msgid "Yes" msgstr "Si" msgid "No" msgstr "No" msgid "Chinese year animal" msgstr "Animal del calendario xinès" msgid "Number of days" msgstr "Número de dies" msgid "Number of weeks" msgstr "Número de setmanes" msgid "Number of weekend days" msgstr "Dies de cap de setmana" msgid "Year info" msgstr "Nota del'any" msgid "Alternative view" msgstr "Vista alternativa" msgid "Started" msgstr "Inici" msgid "Finished" msgstr "Acabat" msgid "New task" msgstr "Nova tasca" msgid "Remove task" msgstr "Eliminar tasca" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "Imprimir llista de tasques visibles" msgid "Task details" msgstr "Detalls de la vista" msgid "Close description panel" msgstr "Tancar descripció" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "anar a la pestanya anterior" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "anar a la pestanya següent" msgid "switch to selected page" msgstr "anar a la pestanya sel·leccionada" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "canviar de pàgina a les pestanyes \"Opcions\" i \"Sobre...\"" msgid "exit" msgstr "sortir" msgid "Space" msgstr "" msgid "select current date" msgstr "sel·leccionar data actual" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "canviar visibilitat de dades personals" msgid "Arrows" msgstr "" msgid "change day" msgstr "canviar dia" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "desplaçar el contigut del panell d'informació del dia" msgid "change month" msgstr "canviar mes" msgid "Home/End" msgstr "" msgid "change year" msgstr "canviar any" msgid "toggle calendars for the previous and next month" msgstr "mostrar / ocultar calendaris pel mes anterior i següent" msgid "day notes browser" msgstr "Explorador de notes del dia" msgid "assign background color to day note" msgstr "asignar color de fons a nota del dia" msgid "date calculator" msgstr "calculadora de dates" msgid "show full-year calendar" msgstr "mostrar calendario d'any complert" msgid "jump to date" msgstr "anar a la data" msgid "Delete" msgstr "" msgid "remove day note" msgstr "eliminar nota del dia" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "" msgid "set current year" msgstr "" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "afegir tasca" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "editar tasca" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "eliminar tasca" msgid "toggle hidden tasks" msgstr "mostrar / ocultar tasques amagades" msgid "activate search field" msgstr "activar el camp de búsqueda" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "canviar filtre de categories" msgid "close task info panel" msgstr "tancar informació de la tasca" msgid "Insert" msgstr "Inserir" msgid "add contact" msgstr "nou contacte" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "editar contacte" msgid "remove contact" msgstr "eliminar contacte" msgid "change search mode" msgstr "canviar el mode de búsqueda" msgid "close contact details panel" msgstr "tancar detalls del contacte" msgid "Enter" msgstr "" msgid "open note" msgstr "obrir nota" msgid "add note" msgstr "afegir nota" msgid "remove note" msgstr "eliminar nota" msgid "edit note name and category" msgstr "editar nom de la nota y categoria" msgid "close note editor" msgstr "tancar notes" msgid "save note" msgstr "guardar nota" msgid "find text" msgstr "buscar" msgid "clear selection attributes" msgstr "eliminar atributs de la sel·lecció" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "" msgid "Selector" msgstr "SelL·leccionar" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Un pràctic organizador personal" msgid "compiled on" msgstr "compilat el" msgid "Programming" msgstr "Desarrollament" msgid "Graphics" msgstr "Gràfics" msgid "Contributors" msgstr "Contribucions" msgid "Translators" msgstr "Traductors" msgid "Mailing lists" msgstr "" msgid "Bug tracker" msgstr "" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "" msgid "Compiled-in features" msgstr "Característiques complertes" msgid "iCalendar support" msgstr "Soport d'iCalendar" msgid "Encrypted notes support" msgstr "" msgid "Backup support" msgstr "" msgid "Printing support" msgstr "" msgid "Spell checker support" msgstr "" msgid "version" msgstr "versió" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Dreceres del teclat" msgid "License" msgstr "Llicència" osmo-0.4.2/po/gl.mo0000664000175000017500000011133513204320601010765 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^d^_$_"` (`6`BH` ````````aa &a0a5aHaXakaMza aaa ab!b.3b bblb tbbbbb'b(b b c/#c&Sczcc ccc ccccc!cd.dNd2Td ddddd+d"e!8eZe3xee e#e e ff$f7fJf-]f-f f3ffgg#g*g 9gFgegggggg3g"h"?hbhthzhh hh h h hhh h h i i"i 5iAiVi ri }i i ii ii"iiij j;jXjjjojjj j jj jjj kk'k10k bk pk }k%k kkk kkkkkkl)l 2l =l HlSl:gllll l lllm m'mBm2am(mmm"mmnn n"n 5nVn Znenzn!n nnnnn ooo 5oCoUo^ooovo }oooooooo o o op"p+p1pNp Qp[paphpnp uppppp p pppqq.qEq\qsqq q qqqqq qq qqqqr6r Grhrrrrr r rrss-s?sVs _sisrszs ss sssssss ttt*t.t4t]ev1@Ä57:r75ȅ +D S^c|  Ȇӆ ؆ ' &2Yagpv+ˇχՇۇ  .E\{ň׈5P c ny} ((<)e ̊ !3#Cg %'ҋ  7!C(e$Ō7Ռ +5ag x ōߍ . 6 @MP`cl ׎4+E^#x7 #=Pdtz?##;X)tב,?#!c͒`"O hR5Zbx)'9[z-V6v \h^YT0m}g`yCJ .E mqFqf\ 3MQ^2(|kBJDQYXZ56l}k?8,]m)~nDU*3_Sit8Uv:o-ar7n;&;cx-]aB=!Ifk{0 &4V,p1(I qaj~J+*TjlOUMuude{iYc%VZR@W7QzS<c]j0K4$wL!s%4C5OE=|:<;ve_x7G!b9h9AF$^.2SP) =PDGw@,&\Pz(g pI+?">#8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-06 09:53+0000 Last-Translator: xesusmosquera Language-Team: Galician Language: gl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 para desactivarUn organizador persoal moi prácticoSobreNovo contactoEngadir cabeceiraEngadir unha nova tarefa ao premer dúas veces na lista de tarefasEngadir notaEngadir unha tarefaSumar ou restar dunha dataInformación adicionalEnderezoAvanzadoIdadeOrde da alarmaAlarma de avisoAlarma de aviso!AlgoritmoTodoTodos os ficheirosTodos os camposTodos os elementosTodos as notasTodos os datos van seren substituídos cos do ficheiro da copia de seguranza.Alt+FrechasAlt+A, InserirAlt+E, Ctrl+IntroAlt+R, Supr.Unidades alternativas de tempoVista alternativaXa está a executarse outra instancia de OSMO.AparenciaAcuarioEstá seguro?AriesFrechaFrechasFrechas arriba/abaixoOrdenación ascendente en notas do díaPolo menos un módulo debe ser visíbel.AutorizaciónMódulos dispoñíbeisA copia de seguranza foi gardada correctamente!Compatibilidade con copia de seguranzaBásicoMellorAniversarioData de nacementoCor da marca de aniversarioAniversariosLista de aniversariosBlogueNegriñaAbaixoExaminar actividades de iCalendarExaminar notasSistema de seguimento de fallosBytesArchivos CSV (valores separados por comas) (*.csv)CalendarioFicheiros de calendario (*.ics)Tipo de letra do calendarioNotas do calendarioCancroNon é posíbel crear a copia de seguranza!Non foi posíbel crear o ficheiro.Non é posíbel abrir o ficheiro.Non é posíbel abrir a nota.Non é posíbel realizar a operación seleccionada.Non é posíbel ler o ficheiro.CapricornioSensíbel a maiúsculas/minúsculasCategoríasCategoríaTeléfono móbilTeléfono móbil 2Teléfono móbil 3Teléfono móbil 4Cambiar a data de caducidade ao día seguinteCambiar a data de caducidade ao día anteriorCaracteresComprobar as actividades desde a última execuciónAnimal do calendario chinoCírculoCidadeLimparLimpar formatoLimpar textoPechar os detalles do contactoPechar o panel de descriciónPechar o editorPechar a barra de buscasPechar o panel de notasCorCor das etiquetas dos contactosCor dos elementos que caducan nos próximos 7 díasCor dos elementos que caducan hoxeCor dos elementos que xa caducaronCor das ligazónsCoresColumnaCaracterísticas compiladasCompresiónDetalles do contactoContactosContinuar?ColaboradoresPaísCreadoCtrl+IntroCtrl+Av.Páx.Ctrl+Re.Páx.Ctrl+EspazoCtrl+Arriba/AbaixoData actualMarca de data actualCor da marca de data actualMes actualHora actualAno actualCor do cursorGroso do cursorDD-MM-AAAADataData e hora da que sumar ou restarCalculadora de datasTipo de letra da dataFormato da dataSintaxe do formato da dataFormato da cabeceira de dataPeríodo de datasDíaSeleccionar díaCategorías de díasCategoría de díasNome do díaNota do díaMarca para nota do díaNotas do díaNúmero do díaTarefas do díaDíasDías ata o aniversarioEliminarEliminar as tarefas completadas sen confirmaciónEliminar notaDepartamentoDescriciónDesactivar o subliñado nas ligazónsDesactivadoQuere continuar?Quere gardala?DocumentoCanFeitoFeito!DragónData de caducidadeTempo entre dúas datasCorreo-eCorreo-e 2Correo-e 3Correo-e 4Cliente de correo-eERRO: Non foi posíbel crear o ficheiro de configuración.Editar a categoríaEditar o contactoEditar a entradaEditar notaEditar tarefaEditorElipseActivarAmosar calendarios auxiliaresActivar o cursor de bloqueActivar a notificación sonoraActivar o corrector ortográfico nas notas do díaAmosar a icona na área de notificaciónAmosar consellosCifradoCompatibilidade con notas cifradasCifradoFinIntroEscriba un contrasinalProduciuse un erroProduciuse un erro de impresiónEscActividadeMarca de actividadesCor da marca de actividadesLonxitude máxima das actividadesActividadesExportarExportar contactosExportar tarefasExportar a ficheiro iCalRápidoFaxPeticións de característicasTipo de campoCampos a exportarFicheiroNome de ficheiroFiltroBuscarTerminadoNomeData e hora de inicioNomeTamaño da letraTipos de letraGaloCírculo a man alzadaDesde (hora)Lúa cheaData completaCalendario de ano completoXemelgosXeralOrde global de notificaciónBoGráficosGrupoGruposLebreResumoAxudantesAgocharAgochar as tarefas completadasAgochar a columna de gruposAltaResaltadoParticularEnderezo particularCidade de residenciaPaís de residenciaTeléfono particularTeléfono particular 2Teléfono particular 3Teléfono particular 4Código postal particularEstado de residenciaInicio/FinHorizontalCabaloHoraHorasMI AOLMI Gadu-GaduMI ICQMI JabberMI MSNMI SkypeMI TlenMI YahooIgnorar as alarmas cando a tarefa caduca sen conexiónIgnorar eventos de nota del díaIgnorar días en fin de semanaImportarImportar contactosTipo de importaciónContrasinal incorrecto!InformaciónInformaciónNome do ficheiro de entradaInserirInserir a data e a hora actualInserir separadorInserir liña de tempoInternetIntervaloInverterCursivaTamaño da letra dos elementosIr á dataAtallos de tecladoHorizontalGrandeApelidosCuarto minguanteÚltimo cambioApelidosDeseñoAno bisestoEsquerdaEsquerda, dereitaLeoLibraLicenzaLiñaLiñasBaixaMM-DD-AAAAMM/DD/AARoldas de correoMarcaDías marcadosMedianaMinutoMinutosVariosModificadoModificar parámetros de ICALMonoMesNome do mesMesesFase luarNomeDía do santoData do día do santoTamaño da letra dos nomesSantoralLúa novaNovo contactoNova notaNova tarefaDía seguinteMes seguinteAno seguinteAlcumeNonNon se definiron aniversariosSen dataDespois non se poderá recuperar os datos.Non cambiar de mesNon se atopou ningún rexistro no ficheiro seleccionado.Non hai tarefas con data definida.Non se definiron calendarios válidosNúm.NingúnNotaEditor de notasTipo de letra das notasNome da notaTipo de notaNotasOpcións das notasNada para importar.Numero de campos por rexistroNúmero de díasNúmero de días para comprobar actividades cara adiante (o predeterminado é: 0)Días en fin de semanaNúmero de semanasOSMO foi deseñado para seren de uso moi doado, por iso existen multitude de atallos de teclado. Esta é a lista completa:Abrir o ficheiro da copia de seguranzaOperaciónOpciónsOrganizaciónFicheiros de copia de seguranza de Osmo (*.bck)Osmo debe ser reiniciado agora...Osmo debe ser reiniciado para que tena efecto.Nome do ficheiro de saídaFormato de saídaIgnorar a configuración do sistemaBoiEspazadoOrientación da páxina:Re.Páx./Av.Páx.Protección con contrasinalOs contrasinais non coinciden!PersoalTeléfonosFotografíaTamaño da fotoPorcoPeixesSinxeloEscriba o contrasinalEscolla o enderezo.Seleccione polo menos un día se a tarefa é repetitiva.Seleccione antes o ficheiro.VerticalCódigo postalAtraso de aviso pospostoPreferenciasMes anterior e seguinteDía anteriorMes anteriorAno anteriorImprimir calendarioImprimir a lista de tarefas visíbeisPropiedades da impresiónCompatibilidade con impresiónPrioridadeDesenvolvementoCuarto crecentePreguntaSaírRataRelaciónEscriba, outra vez, o contrasinalSó lecturaRexistroTarefa repetitivaLembrar a posición do cursorLembrar a última páxina seleccionadaLembrar a última categoría seleccionadaLembrarmo máis adianteOpcións de lembranzasRetirar o contactoRetirar tarefaRepetirRepetir nos días seguintesRepetir a alarma sonoraRestabelecer os camposRestabelecer a horaResultadoDereitaSaxitarioGardar copia de seguranzaGardar os datos despois de cada modificaciónGardar notaGardar as tarefasEscorpionBuscarSegundoData e hora de finSegundo nomeSegundosSeleccione ficheiro CSVSeleccionar ficheiro ICSSeleccione un tipo de letra...Seleccionar corSeleccione data e horaSeleccionar a cor do díaSeleccione camposSeleccione o ficheiro de saídaSeleccione unha fotoO contacto seleccionado vai seren retirado.A nota do día seleccionado será eliminada.O ficheiro seleccionado xa existe. Quere sobrescribilo?Mes seleccionadoMes e ano seleccionadoA nota seleccionada vai seren retirada.As tarefas seleccionadas van seren retiradas.Ano seleccionadoSelecciónSeleccionarEstabeleza a ruta absoluta para os ficheiros de datos e configuraciónEstabelecer a data actualEstabelecer a hora actualEstabelecer o formato predeterminadoEstabelecer a horaOvellaAmosar OsmoAmosar aniversariosAmosar o calendarioAmosar a localización dos contactos no mapaAmosar os contactosAmosar o nome do díaAmosar o botón de saída na barra de ferramentasAmosar en negriña as tarefas con prioridade altaAmosar no calendarioAmosar as notasAmosar as opciónsAmosar os segundosAmosar unha xanela pequena co calendarioAmosar a tarefaAmosar as tarefasAmosar o número de semanaVista simple do calendario anualUsar simultaneamente dúas ou máis instancias de OSMO pode provocar a perda de datos.PequenaSerpeReprodutor de sonEspazoIdioma do corrector ortográficoCompatibilidade con verificación ortográficaInicioIniciar minimizadoIniciadoEstadoEstatísticasSalto (minutos)TachadoTachar notas de días pasadosResumoSintaxeÁrea de notificaciónPosición das lapelasEtiquetasTarefaDetalles da tarefaA tarefa foi modificada ou retirada.Tipo de letra para os detallesTarefasLista de tarefasOpcións das tarefasTauroO patrón %s vai seren substituído polo correo-eO patrón %s vai seren substituído polo nome do ficheiro de sonO patrón %s vai seren substituído polo enderezo webVaise a baleirar a lista, perderanse todas as entradas.A nota cambiou.GrosoDelgadoEsta calculadora só admite datas posteriores ao ano 1.Isto non é un ficheiro de copia de seguranza de OsmoTigreHoraFormato da horaPeríodo de tempoHora que sumar ou restarLiña de tempoAta (hora)HoxeDías ata o día de hoxeAmosar/agochar notas do díaActivar o corrector ortográficoMañáArribaTradutoresTipoSubliñadoDescoñecidoUsar un período de datasUsar o primeiro rexistro como cabeceiraUsar formato de data e hora do sistemaVálidoValorVerticalVirgoColumnas visíbeisColumnas visíbeis na lista de aniversariosActividades visíbeisWWWWWW 2WWW 3WWW 4MinguanteMinguanteAvisoOndaCrecenteCrecenteNavegadorNúmero da semanaA semana comeza o lunsDías en fin de semanaCor dos días de fin de semanaSemanasEspazosPalabrasTraballoEnderezo do traballoCidade do traballoPaís do traballoTeléfono do traballoTeléfono do traballo 2Teléfono do traballo 3Teléfono do traballo 4Código postal do traballoEstado do traballoAAAA-DD-MMAAAA-MM-DDAnoInformación do anoAnosSiSigno do zodíaconome abreviado do mesnome abreviado do día da semanaActivar o campo de buscassumarEngadir un contactoEngadir unha notaEngadir unha tarefaAsignar a cor do fondo ás notas do díaCoincidencia de maiúsculas / minúsculasCambiar o filtro de categoríasCambiar o díaCambiar o mesCambiar o modo de buscaCambiar o anoLimpar os atributos da selecciónPechar os detalles do contactoPechar o editorPechar o calendario do ano completoPechar o editor de notasPechar a información da tarefaCompilado ocontacto engadidocontactos engadidoscontacto exportadocontactos exportadosCalculadora de datasdíadíasExaminador das notas do díadía do mesdía do mes sen ceros á esquerdadía ata fin de anodías ata fin de anoEditar o contactoEditar o nome e a categoría da notaEditar a tarefaA compatibilidade para notas cifradas está desactivadaentradaentradasactividadeactividadesactividade exportadaactividades exportadasSaírBuscar por textonome do mesnome do día da semanahorahorashorasactividades de iCalendarExportación de iCalendarFicheiros de iCalendarCompatibilidade con iCalendarIr á dataminutominutosminutosmesmesessen entradasdeAbrir unha notaouPospostoRetirar o contactoRetirar as notas do díaRetirar unha notaEliminar a/unha tarearedondeado cara abaixoGardar a notaDesprazar o contido do panel de información do díasegundosegundosSeleccionar a data actualEstabelecer o ano actualAmosar a xanela «Sobre»Amosar o calendario do ano completoAmosar a xanela de opciónsrestarCambiar de páxina nas lapelas «Opcións» e «Sobre»Ir á lapela seguinteIr á lapela anteriorIr á lapela seleccionadatarefas exportadasÚltimo día do anoignorase a horaveceshoxeCambiar o tipo de vistaActivar/desactivar negriñaAmosar/agochar os calendarios para os meses anterior e seguinteCambiar o modo de pantalla completaAmosar/agochar as tarefas agochadasActivar/desactivar resaltadoActivar/desactivar itálicaCambiar a visibilidade dos datos persoaisActivar/desactivar tachadoActivar/desactivar subliñadoVersiónNado osemanasemanasdía en fin de semanadías en fin de semanadía de fin de semana ignoradodías de fin de semana ignoradosdía laborábeldías laborábeisanoanosInformación do anoano de idadeanos de idadeano con séculoano sen séculoosmo-0.4.2/po/te.mo0000664000175000017500000005036113204320602010775 00000000000000", <PQ W cnw   $ - ;ETY^ eqz    (.DSZj s }           #2 ;FK R^g    "17>EUZkt {       (8L Q]dmv }        ', 5AJ S ^hqt|  $-4 :E_h q }    # 0 7 = I T \ c j v ~      ! .!5T5g5555%5"56 6"6J26=}6)666707L7_7u77777%7 8$878P8 c8n84w8888 8 899 ,999"S9(v999.9: -:::T:2j:K:2:A;^;;z; ;(;>;,<K< ^<"k<b<$<=$2="W=z=.=@=. >%9>_>'~>$>>\>7D?|?=?? ?7?=+@i@@@@@+@8A:@A+{A7AA>AD4B@yB4BZB1JC8|CiC4D:TD7DDD)D!!ECE\ExE(EEE.EF77FDoF F%FF F G GG =GGGcGyGGGGGG+GH.)HXH hH rH }HH+HHHH1 I7>IvI8I+I:I3J+JJ4 K:?K1zKCK$K1LGLaL+qLLL,L L3 M7>M=vM%MDMPN;pNDNN; O;FO;O OOOQP3VP7P.P6;O=a .AgB E\ `S0NQy k^?!m|MX5bw2!xP)<@ 1-8e4 /}o>rY[s{_HKzp9%dC$DT]U IF+ uq n,"&v*j7JGtL : (3"~ifZch#lWR'V AboutAdd contactAdd headerAdd taskAdditional infoAdvancedAgeAlarm warning!AllAll FilesAll fieldsAlternative viewAppearanceArrowAvailable modulesBackup file saved successfully!Backup supportBestBirthdayBirthday dateBirthdaysBirthdays listBlogBoldBottomBug trackerCalendarCalendar files (*.ics)Calendar fontCannot create backup!Cannot create file.CategoriesCharactersCircleCityClearClear textClose contact panelClose description panelColorColor of contact tagsColor of linksColorsContact detailsContactsContinue?ContributorsCountryCtrl+PageDnCtrl+PageUpCurrent dateCurrent monthCurrent timeCurrent yearCursor colorDD-MM-YYYYDateDate fontDate formatDayDay SelectorDay categoriesDay nameDay numberDaysDeleteDescriptionDisabledDo you really want to continue?DoneDone!E-MailE-mail clientEdit categoryEdit contactEditorEnableEnable sound notificationEnable system trayEnable tooltipsEncryptionEndEnterEnter passwordEventEventsExportExport contactsFastFields to exportFilenameFilterFirst NameFirst date and timeFirst nameFont sizeFontsFull dateGeneralGoodGraphicsGroupGroupsHomeHome addressHome cityHorizontalHourHoursIgnore weekend daysImport contactsIncorrect password!InfoInformationInsertInternetIntervalItalicLandscapeLargeLast NameLast nameLayoutLeap yearLeftLeoLicenseLinesMM-DD-YYYYMM/DD/YYMailing listsMediumMinuteMinutesMiscellaneousMonthMonth nameMonthsNameName dayNew contactNew taskNext dayNext monthNext yearNicknameNoNo dateNoneNumber of daysNumber of weekend daysNumber of weeksOpen backup fileOptionsOsmo backup files (*.bck)PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePlease enter the passwordPortraitPostcodePreferencesPrevious dayPrevious monthPrevious yearPrint calendarPrinting propertiesPrinting supportPriorityProgrammingQuitRatioRe-enter passwordRemove contactRepeatReset fieldsResultRightSave backupSave tasksScorpioSearchSecondSecond nameSecondsSelect colorSelect day colorSelect fieldsSelect photoSelected yearSelectorSet current dateSet current timeShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow optionsShow taskShow tasksSmallSound playerSpell checker languageStartStateStrikethroughSummaryTabs positionTagsTaskTask detailsTasksTasks optionsThis is not Osmo backup fileTimeTime formatTimelineTodayTomorrowTopTranslatorsTypeUnderlineUnknownVerticalWWWWarningWaveWeb browserWeek numberWeekend daysWeeksWhite charactersWordsWorkYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesaddadd contactadd taskchange monthchange search modechange yearclose editorcontact exportedcontacts exporteddate calculatordaydaysedit contactedit taskentryentrieseventeventsexitfind texthourhourshoursminuteminutesminutesmonthmonthsno entriesorpostponedremove contactremove tasksecondsecondsselect current dateset current yearshow about windowshow options windowsubtractswitch to next tabswitch to previous tabswitch to selected pagetodayversionweekweeksweekend dayweekend daysworking dayworking daysyearyearsyear infoProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2014-08-06 09:53+0000 Last-Translator: ప్రవీణ్ ఇళ్ళ Language-Team: Telugu Language: te MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); గురించిపరిచయాన్ని జతచేయిపీఠికను జతచేయికర్తవ్యాన్ని జతచేయిఅదనపు సమాచారంఉన్నతంవయస్సుఅలారం హెచ్చరిక!అన్నీఅన్ని ఫైళ్ళుఅన్ని క్షేత్రాలుప్రత్యామ్నాయ వీక్షణంకనిపించువిధంబాణంఅందుబాటులోవున్న పర్వికాలుబ్యాక్అప్ ఫైల్ విజయవంతంగా భద్రపరుచబడింది!బ్యాక్అప్ మద్ధతుఉత్తమంపుట్టినరోజుపుట్టినరోజు తేదీపుట్టినరోజులుపుట్టినరోజుల జాబితాబ్లాగుబొద్దుక్రిందబగ్ జాడకంక్యాలెండర్క్యాలెండర్ ఫైళ్ళు (*.ics)క్యాలెండరు ఫాంటుబ్యాక్అప్ సృష్టించుట వీలుకాదు!ఫైలును సృష్టించుట వీలుకాదు.వర్గాలుఅక్షరాలువృత్తంనగరంశుభ్రపరుచుపాఠ్యాన్ని తుడిచివేయిపరిచయం ప్యానలును మూసివేయివివరణ ప్యానలును మూసివేయిరంగుపరిచయం ట్యాగుల యొక్క రంగులింకుల యొక్క రంగురంగులుపరిచయం వివరాలుపరిచయాలుకొనసాగాలా?సహాయకులుదేశంCtrl+PageDnCtrl+PageUpప్రస్తుత తేదీప్రస్తుత మాసంప్రస్తుత సమయంప్రస్తుత సంవత్సరంకర్సర్ రంగుDD-MM-YYYYతేదీతేదీ ఫాంటుతేదీ ఫార్మేటురోజురోజు ఎంపికరిరోజు వర్గాలురోజు పేరురోజు సంఖ్యరోజులుతొలగించువివరణఅచేతనపరచివుందిమీరు నిజంగానే కొనసాగాలనుకుంటున్నారా?అయినదిఅయినది!ఈ-మెయిల్ఈ-మెయిల్ క్లయింటువర్గాన్ని సవరించుపరిచయాన్ని సవరించుకూర్పకంచేతనపరుచుశబ్ద ప్రకటనలను చేతనపరుచువ్యవస్థ పళ్ళాన్ని చేతనపరుచుసాధనచిట్కాలను చేతనపరుచుఎన్క్రిప్షన్ముగించుప్రవేశపెట్టుసంకేతపదాన్ని ప్రవేశపెట్టండికార్యక్రమంకార్యక్రమాలుఎగుమతిచేయిపరిచయాలను ఎగుమతిచేయివేగంఎగుమతిచేయాల్సిన క్షేత్రాలుఫైలుపేరువడపోతకంమొదటి పేరుమొదటి తేదీ మరియు సమయంమొదటి పేరుఫాంటు పరిమాణంఫాంట్లుపూర్తి తేదీసాధారణంమంచిదిగ్రాఫిక్స్గుంపుగుంపులునివాసంఇంటి చిరునామానివాస పట్టణంఅడ్డంగంటగంటలువారాంతపు దినాలను వదిలివేయిపరిచయాలను దిగుమతిచేయిసంకేతపదం తప్పు!సమాచారంసంవత్సరంచొప్పించుఅంతర్జాలంవిరామంఇటాలిక్అడ్డచిత్రంపెద్దదిచివరి పేరుచివరి పేరునమూనాలీపు సంవత్సరంఎడమమృగసిరలైసెన్స్వరుసలుMM-DD-YYYYMM/DD/YYమెయిలింగు జాబితాలుమధ్యస్థంనిమిషంనిమిషాలుఇతరనెలనెల పేరునెలలుపేరురోజు పేరుకొత్త పరిచయంకొత్త కర్తవ్యంతరువాత రోజుతరువాతి నెలతరువాతి సంవత్సరంముద్దుపేరుకాదుతేదీ లేదుఏదీకాదుమొత్తం రోజుల సంఖ్యమొత్తం వారాంతపు దినాల సంఖ్యమొత్తం వారాల సంఖ్యబ్యాక్అప్ ఫైలును తెరువుఐచ్ఛికాలుOsmo బ్యాక్అప్ ఫైళ్ళు (*.bck)PageUp/PageDnసంకేతపదం రక్షణసంకేతపదాలు సరిపోలలేదు!వ్యక్తిగతంఫోనులుఫోటోఫొటో పరిమాణందయచేసి సంకేతపదాన్ని ప్రవేశపెట్టండినిలువుచిత్రంతపాలాకోడ్ప్రాధాన్యతలుమునుపటి రోజుమునుపటి నెలమునుపటి సంవత్సరంక్యాలెండరును ముద్రించుముద్రణా లక్షణాలుముద్రణ సహకారంప్రాముఖ్యతప్రోగ్రామింగునిష్క్రమించునిష్పత్తిసంకేతపదాన్ని మరలా ప్రవేశపెట్టండిపరిచయాన్ని తీసివేయిపునరావృతంక్షేత్రాలను మరలఅమర్చుఫలితంకుడిబ్యాక్అప్ భద్రపరుచుకర్తవ్యాలను భద్రపరుచువృశ్చికంశోధించుసెకనురెండవ పేరుసెకన్లురంగుని ఎంచుకొనురోజు రంగుని ఎంచుకొనుక్షేత్రాలను ఎంచుకొనుఫోటోను ఎంచుకొనుఎంపికచేసిన సంవత్సరంఎంపికరిప్రస్తుత తేదీని అమర్చుప్రస్తుత సమయాన్ని అమర్చుపుట్టినరోజులను చూపించుక్యాలెండర్ చూపించుపరిచయం స్థానాన్ని పటముపై చూపించుపరిచయాలను చూపించురోజు పేర్లను చూపించుసాధనపట్టీలో నిష్క్రమణ బొత్తాం చూపించుఐచ్ఛికాలను చూపించుకర్తవ్యాన్ని చూపించుకర్తవ్యాలను చూపించుచిన్నదిశబ్ద ఆటకంఅక్షర తనిఖీ భాషప్రారంభించురాష్ట్రంకొట్టివేతసారాంశంట్యాబుల స్థానంట్యాగులుకర్తవ్యంకర్తవ్యం వివరాలుకర్తవ్యాలుకర్తవ్యాల ఐచ్ఛికాలుఇది Osmo బ్యాక్అప్ ఫైల్ కాదుసమయంసమయం ఫార్మేటుసమయరేఖనేడురేపుపైనఅనువాదకులురకంక్రిందగీతతెలియదునిలువుWWWహెచ్చరికఅలజాల విహారకంవార సంఖ్యవారాంతపు రోజులువారాలుతెల్లని అక్షరాలుపదాలుపనిYYYY-DD-MMYYYY-MM-DDసంవత్సరంసంవత్సర సమాచారంసంవత్సరాలుఅవునుకలుపుపరిచయాన్ని జతచేయికర్తవ్యాన్ని జతచేయినెల మార్చుశోధన విధాన్ని మార్చుసంవత్సరం మార్చుకూర్పకాన్ని మూసివేయిపరిచయం ఎగుమతిచేయబడిందిపరిచయాలు ఎగుమతిచేయబడ్డాయితేదీ లెక్కింపరిరోజురోజులుపరిచయాన్ని సవరించుకర్తవ్యాన్ని సవరించుప్రవేశంప్రవేశాలుకార్యక్రమంకార్యక్రమాలునిష్క్రమించుపాఠ్యాన్ని వెతుకుగంటగంటలుగంటలునిమిషంనిమిషాలునిమిషాలునెలనెలలుఏ ప్రవేశాలు లేవులేదావాయిదావేయబడిందిదిపరిచయాన్ని తీసివేయికర్తవ్యాన్ని తీసివేయిసెకనుసెకన్లుప్రస్తుత తేదీని ఎంచుకొనుప్రస్తుత సంవత్సరాన్ని అమర్చువిండో గురించి చూపించుఐచ్ఛికాల విండోను చూపించుతీసివేయితరువాతి ట్యాబుకు మారుమునుపటి ట్యాబుకు మారుఎంచుకున్న పేజీకి మారునేడురూపాంతరంవారంవారాలువారాంతపు దినంవారాంతపు దినాలుపని దినంపని దినాలుసంవత్సరంసంవత్సరాలుసంవత్సరం సమాచారంosmo-0.4.2/po/Makefile.am0000664000175000017500000000247713066543472012113 00000000000000AUTOMAKE_OPTIONS = -Wno-portability DOMAIN = osmo POTFILES = $(wildcard ../src/*.c ../src/*.h) MSGFMT = msgfmt XGETTEXT = xgettext MSGMERGE = msgmerge XGETTEXT_OPTS = --keyword=_ --keyword=N_ --keyword=X_ --add-comments=TRANSLATORS: --no-location POFILES = bg.po ca.po cs.po da.po de.po el.po en_GB.po es.po fi.po fr.po gl.po gl_ES.po he.po hu.po \ it.po ja.po lt.po nl.po pl.po pt.po pt_BR.po ro.po ru.po sr.po sv.po te.po tr.po uk.po \ ur.po ur_PK.po zh_CN.po MOFILES = $(POFILES:.po=.mo) EXTRA_DIST = $(POFILES) $(MOFILES) LOCALEDIR = $(datadir)/locale all: $(MOFILES) update-po: $(DOMAIN).pot $(POFILES) $(MOFILES) %.mo: skip @po=$(@:.mo=.po); if test $$po -nt $@ ; then $(MSGFMT) -c --statistics $$po -o $@; echo "$@ updated."; fi %.po: $(DOMAIN).pot $(MSGMERGE) $@ $< -o $@.in && mv $@.in $@ $(DOMAIN).pot: $(POTFILES) @$(XGETTEXT) $(XGETTEXT_OPTS) $(POTFILES) -o $(DOMAIN).pot install-data-local: $(MOFILES) for i in $(MOFILES); do \ lang=`echo $$i | sed 's/\.mo$$//'`; \ $(mkinstalldirs) ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES; \ $(INSTALL_DATA) $$i ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done uninstall-local: for i in $(MOFILES); do \ lang=`echo $$i | sed 's/\.mo$$//'`; \ rm -f ${DESTDIR}${LOCALEDIR}/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ done clean-local: rm -rf *.mo skip: osmo-0.4.2/po/zh_CN.mo0000664000175000017500000007332013204320602011366 00000000000000Ul%1 11 2 2 2.'2V2_2h22222 2 22 22 2 2 2 383G3^3(o3 33 33333&3$4 (464H4h4w4}44 44 444444 4 45* 565?5 V5d5s5z5555"55 6 6 6%6 .6 96 F6 S6`6 }6 6666666 7 77 77D7U7f7l7.7!7 778 8 8+8;8 D8 N8[8c8 k8x88 8 8 8 88 88%8 9 09 :9 F9R9 V9c9 r9999 9 9 9999+9 : : :,:G:g::::::::::: :!: ; ; #; -;7;>;F;M;g;{;!;;; ;; ;< << <&<5< ;<H<[<p<w<~< <<<<< <<<<<<< == '=2=8=== N= Z= d=n==============> >> > )> 3> @> K> X> e> r> >>>>> >> >>>>>&> ? ?4?;? K?W?k? p?|????????? ? ? @@ @%@ 7@ D@ N@X@]@a@g@o@u@ y@ @@ @@@@ @@@@@ @@ AAA A-A6A ?AKATA]A fA qA{AAAA*AA"A!B$B?BCBHB MB YB cB mBwB }BBBB7BBC%C 6C@C HCUCoCC CCCCCCCDDD %D0D4D;DAD[D:qDDDD D DD EE &E4ECE\EpEE E EEEEEEEEEE#F8K# |.@)% +ns MQ ?E)T.yN !S,&V6MAfK+ = R-z{;}P(n (D*T VLfIJ5lP2)g _=CqEC'^h8-dN=3}ZBF+7@Iz%w ORQ34 H6ybgGo~:FU9{xpSBGurt<h>CA7e$K1>OW0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:Password protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectorSet absolute path for settings and data filesSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled ondate calculatorday notes browseredit contactedit note name and categoryedit taskencryption support is disabledexitfind texthoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminutesno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelselect current dateset current yearshow full-year calendarsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornyear infoProject-Id-Version: Osmo 0.2.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2009-10-20 15:11+0800 Last-Translator: sasaqqdan Language-Team: puppy.cnbits.com Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 即禁用趁手的个人安排工具关于添加联系人添加标题双击任务列表添加新任务添加笔记添加任务一天任务的增减附加信息地址高级年龄使用警告命令警告警告!算法全部全部文件全部字段所有项目所有项目所有的数据将被备份文件内容取代。选择时间单位其他外观已经有一个 Osmo 在运行。外观水瓶你确定?地址箭头箭头上/下箭头升序浏览日记笔记至少保留一个模组可见授权支持的模块顺利保存备份文件!支持备份基本最好生日生日生日标示符颜色生日生日列表博客粗体底浏览 iCal 事件浏览笔记错误追踪字节CSV 文件(逗号分隔值)(*.csv)日历日历文件(*.ics)日历字体日历笔记巨蟹无法创建备份!无法创建文件。无法打开文件。无法打开笔记。不能执行选定的操作。无法读取文件。摩羯大小写敏感类别类别手机手机 2手机 3手机 4将到期日设定为后一日期将到期日设定为前一日期字检查上次运行后的新事件属相圆圈城市清除清除属性清除文本关闭联系人面板关闭说明面板关闭编辑器关闭寻找条目关闭笔记面板颜色联系人标签颜色下 7 天到期项目颜色今日到期项目颜色已过期项目颜色链接颜色色彩内建特性压缩联系人细节联系人是否继续?贡献者国家已创建当前日期当前日期标示符当前日期标示符颜色当前月份当前时间当前年份光标颜色光标幅度DD-MM-YYYY日期日期和时间增减日期计算器日期字体日期格式日期间隔日选择天日类别日类别日期名字每日记录每日笔记标示符每日记录天数每日任务日距离生日天数选择日期不经确认删除已完成任务删除笔记部署描述关闭链接下划线你真想继续吗?你真想继续吗?狗完成完成!龙到期两个不同日期的时间差电子邮件电子邮件 2电子邮件 3电子邮件 4邮件客户端错误:无法创建配置文件编辑联系人编辑条目编辑笔记编辑任务编辑器椭圆启用启用辅助日历启用块状光标启用声音提醒在日期笔记中启用拼写检查任务栏可用工具提示可用已加密支持加密笔记加密结束Enter 键输入密码错误打印错误条目事件标示符标题着色事件最长长度事件导出导出联系人导出联系人输出到 iCal 文件快传真要求新特性字段类型导出字段文件文件名过滤寻找完成名起始日期和时间名字体鸡手写圆圈来自(小时)满月日期全年日历双子一般全局提醒使用的命令好图示组群组兔哈希帮助者隐藏隐藏已完成任务隐藏分组栏高高亮家庭家庭地址所在城市所在国家个人电话个人电话 2 个人电话 3 个人电话 4 家庭邮编所在省份马小时小时AOL 号码Gadu-Gadu 号码ICQ 号码Jabber 号码MSN 号码Skype 号码Tlen 号码Yahoo 号码当任务过期,则忽略警告忽略笔记事件忽略双休日导入导入联系人导入类型错误的密码!信息信息输出文件名插入插入日期和时间插入分割符插入时间线互联网间隔转化斜体跳转到日期快捷键横向大姓下弦月最后更改姓闰年左狮子天平许可证行低MM-DD-YYYY邮件列表标示已标识日期中分钟分钟其他已修改修改 ICAL 参数猴月月份名字月月相姓名日期名称日期名称日期名字新月新建联系人新建笔记新任务下一天下一个月下一年昵称否没有定义生日无日期没有更多数据恢复了。不改变月份在所选文件中未找到记录。选定日期中没有发现任务。没有定义日历第无笔记笔记面板笔记字体笔记名字笔记类型笔记笔记选项没有导出每个记录字段数天数事件向前查询天数(默认:0)双休日数周数打开备份文件操作选项组织Osmo 备份文件(*.bck)Osmo 现在必须重启......输出文件名输出格式覆盖语言区域设定牛边缘空白页面外观密码保护密码不匹配!个人电话号码照片照片大小猪双鱼未加密请输入密码请选择地址重复提醒已启用,请至少选择一个日期。请首先选择文件垂直邮编推迟时间设置前一月及后一月前一天前一月前一年打印日历打印可见的任务列表打印属性支持打印优先顺序计划半弦月问题退出鼠比率重新输入密码记录重复任务记住光标位置记录最近选择页面记录最近已选择的分类稍后提醒我提醒选项删除联系人删除任务重复在以后日期中重复重复声音警报重设字段重设时间結果右射手保存备份每次修改后保存数据保存笔记保存任务天蝎查找秒完成日期和时间别名秒选择 CSV 文件选择 ICS 文件选择字体......选择颜色完成日期和时间选择日期颜色选择字段选择输出文件选择照片已选择的联系人将被删除。已选择的笔记将被删除选择的文件已存在!是否覆盖?已选择月份选定的月份和年份已选择的日记将被删除选择的任务将被删除。已选择年份选择器给设置和数据文件设置绝对路径设置当前日期设置当前时间设置时间羊显示 Osmo距离生日天数显示日历在地图上显示联系人所在地显示联系人显示日名粗体显示优先任务在信息面板中显示日记显示笔记显示选项显示小日历窗口显示任务显示任务显示周数预览全年日历同时运行两个以上的OSMO可能会导致数据丢失。小蛇声音播放空格拼写检查语言支持拼写检查开始启动后最小化已开始省统计步进(分) 删除线给过往日期笔记添加删除线摘要任务栏标签位置标签任务任务细节任务已被修改或删除。任务信息字体任务任务列表任务选项半人马%s 将被替代为 E-Mail 地址%s 将被替代为声音文件名%s 将被替代为 Web 地址此列表将被清除,所有条目将丢失。笔记已改变。厚薄该计算器只支持正数日期。此文件不是 Osmo 备份文件虎时间时间格式时间间隔时间的增减时间线到(小时)今天距离今天切换笔记面板切换拼写检查明天顶翻译者类型下划线未知使用日期间隔使用第一条记录作为标题使用系统日期和事件格式可用值处女列可见可见事件网址网址 2网址 3网址 4残月亏凸月警告波浪娥眉月盈凸月WWW 浏览器周数一周从星期一开始双休日双休日颜色周空白字符词工作工作地址工作所在城市工作所在国家工作电话工作电话 2 工作电话 3 工作电话 4 工作地邮编工作所在省份YYYY-DD-MMYYYY-MM-DD年年份信息年是黄道星座激活查找字段增加添加联系人添加笔记添加任务为日记指定背景色大小写敏感变更类别筛选日期变更改变月份改变查找模式改变年份清除选择属性关闭联系人细节面板关闭笔记面板显示全年日历关闭笔记面板关闭任务信息面板编译自日期计算器浏览器编辑联系人编辑笔记名字和分类编辑任务加密支持已关闭退出查找文字小时iCalendar 事件输出到 iCalendar日历字体支持 ICalendar跳转到日期分没有导入的打开笔记或已推迟删除联系人删除日记删除笔记删除任务四舍五入保存笔记在信息面板中显示日记选择当前日期设置当前年份显示全年日历减少在关于标签和选项之间切换转到下一标签转到前一标签切换到选定标签任务已导出 一年的最后一天忽略时间时间今日切换不同外观切换粗体在前一月和后一月中切换日历隐藏任务切换切换高亮切换斜体切换个人数据可见切换删除线切换下划线版本出生于年份信息osmo-0.4.2/po/he.po0000664000175000017500000011142113204320601010756 00000000000000msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2015-07-30 08:37+0000\n" "Last-Translator: http://www.transifex.com\n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/osmo/language/" "he/)\n" "Language: he\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" msgid "Colors" msgstr "צבעים" msgid "Color of contact tags" msgstr "צבע תגיות של איש קשר" msgid "Color of links" msgstr "צבע קישורים" msgid "Font size" msgstr "גודל גופן" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "גודל גופן פריט" msgid "Photo size" msgstr "גודל תצלום" msgid "Small" msgstr "קטן" msgid "Medium" msgstr "בינוני" msgid "Large" msgstr "גדול" msgid "Hide group column" msgstr "הסתר טור קבוצה" msgid "Maps provider" msgstr "ספק מפות" msgid "Age" msgstr "גיל" msgid "Birthday date" msgstr "תאריך לידה" msgid "Zodiac sign" msgstr "מזל אסטרולוגי" msgid "Contacts" msgstr "‎אנשי קשר" msgid "Appearance" msgstr "מראה" msgid "Miscellaneous" msgstr "שונות" msgid "Groups" msgstr "קבוצות" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "אלגוריתם" msgid "Hashing" msgstr "ערבוב" msgid "Compression" msgstr "דחיסה" msgid "Ratio" msgstr "יחס" msgid "Fast" msgstr "מהיר" msgid "Good" msgstr "טוב" msgid "Best" msgstr "מיטבי" msgid "Type" msgstr "טיפוס" msgid "Category" msgstr "קטגוריה" msgid "Last changes" msgstr "שינויים אחרונים" msgid "Created" msgstr "נוצר" msgid "Remember the last selected category" msgstr "זכור את הקטגוריה האחרונה שנבחרה" msgid "Use system format for date and time" msgstr "השתמש בפורמט מערכת עבור תאריך וזמן" msgid "Notes" msgstr "‎פתקים" msgid "Encryption" msgstr "הצפנה" msgid "Visible columns" msgstr "טורים נראים" msgid "Categories" msgstr "קטגוריות" msgid "Notes options" msgstr "אפשרויות פתקים" msgid "Jump to date" msgstr "קפוץ אל תאריך" msgid "Day" msgstr "יום" msgid "Month" msgstr "חודש" msgid "Year" msgstr "שנה" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "בחר גופן..." msgid "None" msgstr "ללא" msgid "All items" msgstr "כל הפריטים" msgid "Question" msgstr "שאלה" msgid "Information" msgstr "מידע" msgid "Error" msgstr "שגיאה" msgid "Warning" msgstr "אזהרה" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "קובץ נבחר קיים! להחליף?" msgid "Selected contact will be removed." msgstr "איש קשר נבחר יוסר." msgid "Are you sure?" msgstr "האם דעתך גמורה?" msgid "No date" msgstr "אין תאריך" msgid "Select photo" msgstr "בחר תצלום" msgid "Address" msgstr "כתובת" msgid "Postcode" msgstr "מיקוד" msgid "City" msgstr "עיר" msgid "State" msgstr "מחוז" msgid "Country" msgstr "מדינה" msgid "Edit contact" msgstr "ערוך איש קשר" msgid "Add contact" msgstr "הוסף איש קשר" msgid "Personal" msgstr "אישי" msgid "Group" msgstr "קבוצה" msgid "Home" msgstr "בית" msgid "Work" msgstr "עבודה" msgid "Phones" msgstr "טלפונים" msgid "Internet" msgstr "מרשתת" msgid "Additional info" msgstr "מידע נוסף" msgid "_OK" msgstr "" msgid "no entries" msgstr "אין רשומות" msgid "entry" msgid_plural "entries" msgstr[0] "‪רשומה" msgstr[1] "רשומות" msgid "Calendar notes" msgstr "פתקי לוח שנה" msgid "Search" msgstr "חיפוש" msgid "Filter" msgstr "מסנן" msgid "Current month" msgstr "חודש נוכחי" msgid "Selected month" msgstr "חודש נבחר" msgid "Current year" msgstr "שנה נוכחית" msgid "Selected year" msgstr "שנה נבחרת" msgid "Selected month and year" msgstr "חודש ושנה נבחרים" msgid "All notes" msgstr "כל הפתקים" msgid "Case sensitive" msgstr "תלוי רישיות" msgid "Strikethrough past day notes" msgstr "סמן בקו חוצה פתקי ימי עבר" msgid "Date" msgstr "תאריך" msgid "Note" msgstr "פתק" msgid "_Close" msgstr "" msgid "Rat" msgstr "עכברוש" msgid "Ox" msgstr "שור" msgid "Tiger" msgstr "טיגריס" msgid "Hare" msgstr "ארנבת" msgid "Dragon" msgstr "דרקון" msgid "Snake" msgstr "נחש" msgid "Horse" msgstr "סוס" msgid "Sheep" msgstr "כבשה" msgid "Monkey" msgstr "קוף" msgid "Fowl" msgstr "עוף" msgid "Dog" msgstr "כלב" msgid "Pig" msgstr "חזיר" msgid "Unknown" msgstr "לא ידוע" msgid "Aquarius" msgstr "דלי" msgid "Pisces" msgstr "דגים" msgid "Aries" msgstr "טלה" msgid "Taurus" msgstr "שור" msgid "Gemini" msgstr "תאומים" msgid "Cancer" msgstr "סרטן" msgid "Leo" msgstr "אריה" msgid "Virgo" msgstr "בתולה" msgid "Libra" msgstr "מאוזניים" msgid "Scorpio" msgstr "עקרב" msgid "Sagittarius" msgstr "קשת" msgid "Capricorn" msgstr "גדי" msgid "Osmo has to be restarted to take effect." msgstr "עליך לאתחל את Osmo על מנת שהשינויים ייכנסו לתוקף." msgid "Layout" msgstr "מערך" msgid "Vertical" msgstr "אנכי" msgid "Horizontal" msgstr "אופקי" msgid "Tabs position" msgstr "מיקום כרטיסיות" msgid "Left" msgstr "שמאל" msgid "Right" msgstr "ימין" msgid "Top" msgstr "עליון" msgid "Bottom" msgstr "תחתון" msgid "Disable underline in links" msgstr "" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "" msgid "Calendar" msgstr "‎לוח שנה" msgid "Tasks" msgstr "‎מטלות" msgid "Override locale settings" msgstr "החלף הגדרות של מקומיות" msgid "Date format" msgstr "פורמט תאריך" msgid "DD-MM-YYYY" msgstr "" msgid "MM-DD-YYYY" msgstr "" msgid "YYYY-MM-DD" msgstr "" msgid "YYYY-DD-MM" msgstr "" msgid "Time format" msgstr "פורמט זמן" msgid "hours" msgstr "שעות" msgid "Spell checker language" msgstr "שפת בודק איות" msgid "Enable tooltips" msgstr "אפשר תיבות צצות" msgid "Remember last selected page" msgstr "זכור עמוד נבחר אחרון" msgid "Save data after every modification" msgstr "שמור נתונים לאחר כל שינוי" msgid "Web browser" msgstr "דפדפן רשת" msgid "E-mail client" msgstr "לקוח דוא״ל" msgid "Sound player" msgstr "נגן קול" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "התבנית %s תוחלף עם כתובת רשת" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "התבנית %s תוחלף עם כתובת דוא״ל" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "התבנית %s תוחלף עם שם קובץ של צליל" msgid "Enable system tray" msgstr "אפשר מגש מערכת" msgid "Start minimised" msgstr "התחל ממוזער" msgid "Ignore day note events" msgstr "התעלם מאירועי פתקי יום" msgid "General" msgstr "‎כללי" msgid "Hide" msgstr "הסתרה" msgid "Helpers" msgstr "יישומי עזר" msgid "System tray" msgstr "מגש מערכת" msgid "Preferences" msgstr "העדפות" msgid "Syntax" msgstr "תחביר" msgid "abbreviated weekday name" msgstr "שם יום חול מקוצר" msgid "full weekday name" msgstr "שם יום חול מלא" msgid "abbreviated month name" msgstr "שם חודש מקוצר" msgid "full month name" msgstr "שם חודש מלא" msgid "day of the month" msgstr "יום של חודש" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "יום של חודש ללא אפסים מובילים" msgid "month" msgid_plural "months" msgstr[0] "חודש" msgstr[1] "חודשים" msgid "year without century" msgstr "שנה בלי מאה" msgid "year with century" msgstr "שנה עם מאה" msgid "Date header format" msgstr "פורמט תקורת תאריך" msgid "Set default format" msgstr "אפס אל פורמט משתמט" msgid "Date format syntax" msgstr "תחביר פורמט תאריך" msgid "Day note marker" msgstr "" msgid "Event marker" msgstr "סמן אירוע" msgid "Circle" msgstr "עיגול" msgid "Ellipse" msgstr "אליפסה" msgid "Wave" msgstr "גל" msgid "Current day marker" msgstr "" msgid "Arrow" msgstr "חץ" msgid "Free-hand circle" msgstr "עיגול כתב-יד" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "צבע ימי סופ״ש" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "צבע סמן" msgid "Event marker color" msgstr "צבע סמן אירוע" msgid "Current day marker color" msgstr "" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "גופן תאריך" msgid "Calendar font" msgstr "גופן לוח שנה" msgid "Note font" msgstr "גופן פתק" msgid "Enable block cursor" msgstr "" msgid "Cursor thickness" msgstr "עובי סמן" msgid "Thin" msgstr "דק" msgid "Thick" msgstr "עבה" msgid "Edit category" msgstr "ערוך קטגוריה" msgid "Color" msgstr "צבע" msgid "Name" msgstr "שם" msgid "Select ICS file" msgstr "בחר קובץ ICS" msgid "All Files" msgstr "כל הקבצים" msgid "Calendar files (*.ics)" msgstr "קבצי לוח שנה (‎*.ics)" msgid "Modify ICAL parameters" msgstr "התאמת פרמטרי ICAL" msgid "Filename" msgstr "שם קובץ" msgid "Options" msgstr "אפשרויות" msgid "Disabled" msgstr "מנוטרל" msgid "Valid" msgstr "תקף" msgid "Description" msgstr "תיאור" msgid "Full date" msgstr "תאריך מלא" msgid "Mark" msgstr "סימן" msgid "Week start on Monday" msgstr "שבוע מתחיל ביום שני" msgid "Show day names" msgstr "הצג שמות יום" msgid "No month change" msgstr "" msgid "Show week numbers" msgstr "הצג מספרי שבוע" msgid "Simple view in full-year calendar" msgstr "תצוגה פשוטה בלוח שנה מלא" msgid "Enable auxilary calendars" msgstr "" msgid "Ascending sorting in day notes browser" msgstr "" msgid "Enable spell checker in day notes" msgstr "אפשר בדיקת איות בפתקי יום" msgid "Current time" msgstr "זמן נוכחי" msgid "Show seconds" msgstr "הצג שניות" msgid "Day number" msgstr "יום מספר" msgid "Today distance" msgstr "" msgid "Marked days" msgstr "ימים מסומנים" msgid "Week number" msgstr "שבוע מספר" msgid "Weekend days" msgstr "ימי סופ״ש" msgid "Day category" msgstr "קטגוריית יום" msgid "Moon phase" msgstr "פאזה ירחית" msgid "Day notes" msgstr "פתקי יום" msgid "Day categories" msgstr "קטגוריות יום" msgid "iCalendar files" msgstr "קבצי iCalendar" msgid "Show in day info panel" msgstr "הצג בלוח מידע יום" msgid "Tasks list" msgstr "רשימת מטלות" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "מס׳" msgid "Summary" msgstr "תמצית" msgid "Due date" msgstr "מועד יעד" msgid "Priority" msgstr "עדיפות" msgid "Error printing" msgstr "שגיאה בהדפסה" msgid "No birthdays defined" msgstr "אין תאריך לידה מוגדר" msgid "Birthdays list" msgstr "רשימת יום הולדת" msgid "Days to birthday" msgstr "ימים עד ליום הולדת" msgid "today" msgstr "היום" msgid "Select CSV file" msgstr "בחר קובץ CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "" msgid "Please select file first." msgstr "נא לבחור קובץ ראשון." msgid "Import contacts" msgstr "יבא אנשי קשר" msgid "Import type" msgstr "טיפוס ייבוא" msgid "File" msgstr "קובץ" msgid "Input filename" msgstr "קלט שם קובץ" msgid "Import" msgstr "ייבוא" msgid "Nothing to import." msgstr "אין מה לייבא." msgid "contact added" msgid_plural "contacts added" msgstr[0] "התווסף איש קשר" msgstr[1] "התווספו אנשי קשר" msgid "of" msgstr "" msgid "Record" msgstr "רישום" msgid "Number fields per record" msgstr "" msgid "Use first record as header" msgstr "" msgid "Field type" msgstr "טיפוס שדה" msgid "Value" msgstr "ערך" msgid "No records found in selected file." msgstr "לא נמצאו רשומות בקובץ נוכחי." msgid "Cannot read file." msgstr "לא מסוגל לקרוא קובץ." msgid "Cannot open file." msgstr "לא מסוגל לפתוח קובץ." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "הצג לוח שנה" msgid "Show tasks" msgstr "הצג מטלות" msgid "Show contacts" msgstr "הצג אנשי קשר" msgid "Show notes" msgstr "הצג פתקים" msgid "Show options" msgstr "הצג אפשרויות" msgid "Quit" msgstr "יציאה" msgid "Show small calendar window" msgstr "ןטק הנש חול ןולח גצה" msgid "Check for events since last run" msgstr "הנורחא הצרה זאמ םיעוריא רובע קודב" msgid "Number of days to check forward for events (default: 0)" msgstr "(0: לדחמ תרירב) םיעוריא רובע האלה הקידבל םימי רפסמ" msgid "Set absolute path for settings and data files" msgstr "עדימו תורדגה יצבק רובע טלחומ ביתנ עבק" msgid "Match contacts with given string" msgstr "הנותנ תזורחמ תרזעב רשק ישנא םאתה" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "שגיאה: לא מסוגל ליצור קבצי תצורה" msgid "Another copy of OSMO is already running." msgstr "עותק אחר של OSMO כבר מורץ כעת." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "שימוש סימולטני בשני עותקים או יותר של OSMO עלול לגרום לאיבוד מידע." msgid "Do you really want to continue?" msgstr "האם אתה באמת רוצה להמשיך?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "נמוכה" msgid "High" msgstr "גבוהה" msgid "Done!" msgstr "סוים!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "איש קשר יוצא" msgstr[1] "אנשי קשר יוצאו" msgid "Cannot create file." msgstr "לא מסוגל ליצור קובץ." msgid "Select output file" msgstr "בחר קובץ פלט" msgid "Export contacts" msgstr "יצא אנשי קשר" msgid "Output format" msgstr "פורמט פלט" msgid "Add header" msgstr "הוסף תקורה" msgid "Fields to export" msgstr "שדות לייצוא" msgid "All" msgstr "הכל" msgid "Invert" msgstr "הפוך" msgid "Select fields" msgstr "בחר שדות" msgid "Output filename" msgstr "שם קובץ פלט" msgid "Export" msgstr "ייצוא" msgid "Color of items that are due today" msgstr "" msgid "Color of items that are due in the next 7 days" msgstr "" msgid "Color of items that are past due" msgstr "" msgid "Task info font" msgstr "גופן מידע מטלה" msgid "Show in bold tasks with high priority" msgstr "" msgid "Hide completed tasks" msgstr "" msgid "Delete completed tasks without confirmation" msgstr "" msgid "Add new task when double clicked on tasks list" msgstr "" msgid "Postpone time" msgstr "זמן שהייה" msgid "minutes" msgstr "דקות" msgid "0 for disable" msgstr "0 לנטרול" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "פעמים" msgid "Global notification command" msgstr "" msgid "Tasks options" msgstr "אפשרויות מטלות" msgid "Reminder options" msgstr "אפשרויות תזכורת" msgid "Insert timeline" msgstr "הכנס ציר זמן" msgid "Timeline" msgstr "ציר זמן" msgid "From (hour)" msgstr "מן (שעה)" msgid "Step (minutes)" msgstr "צעד (דקות)" msgid "To (hour)" msgstr "עד (שעה)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" msgid "Set time" msgstr "קבע זמן" msgid "Hour" msgstr "שעה" msgid "Minute" msgstr "דקה" msgid "Today" msgstr "היום" msgid "Tomorrow" msgstr "מחר" msgid "Selected task will be removed." msgstr "מטלות נבחרות יימחקו." msgid "Select date and time" msgstr "בחר זמן ותאריך" msgid "Enable sound notification" msgstr "אפשר התראות קול" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "אזעקת אזהרה" msgid "Days" msgstr "ימים" msgid "Hours" msgstr "שעות" msgid "Minutes" msgstr "דקות" msgid "Alarm command" msgstr "פקודת אזעקה" msgid "Date period" msgstr "" msgid "Months" msgstr "חודשים" msgid "Repeat" msgstr "חזרה" msgid "Repeat in the following days" msgstr "חזור בימים הבאים" msgid "Time period" msgstr "תקופת זמן" msgid "Start" msgstr "תחילה" msgid "End" msgstr "סוף" msgid "Interval" msgstr "תדירות" msgid "Ignore alarm when task expired offline" msgstr "" msgid "Recurrent task" msgstr "מטלה חוזרת" msgid "Enable" msgstr "אפשר" msgid "Edit task" msgstr "ערוך מטלה" msgid "Add task" msgstr "הוסף מטלה" msgid "Basic" msgstr "בסיס" msgid "Advanced" msgstr "מתקדם" msgid "New Moon" msgstr "מופע ירח" msgid "Waxing Crescent Moon" msgstr "ירח מתמלא קשתי" msgid "Quarter Moon" msgstr "רבעון ירחי" msgid "Waxing Gibbous Moon" msgstr "ירח מתמלא מקומר" msgid "Full Moon" msgstr "ירח מלא" msgid "Waning Gibbous Moon" msgstr "ירח מתמעט מקומר" msgid "Last Quarter Moon" msgstr "רבעון ירחי אחרון" msgid "Waning Crescent Moon" msgstr "ירח מתמעט קשתי" msgid "Cannot create backup!" msgstr "לא מסוגל ליצור גיבוי!" msgid "Save backup" msgstr "שמירת גיבוי" msgid "Password protection" msgstr "הגנת סיסמה" msgid "Enter password" msgstr "הזן סיסמה" msgid "Re-enter password" msgstr "הזן סיסמה שוב" msgid "Please enter the password" msgstr "נא להזין את הסיסמה" msgid "Passwords do not match!" msgstr "סיסמאות לא תואמות!" msgid "Backup file saved successfully!" msgstr "קובץ גיבוי נשמר בהצלחה!" msgid "Open backup file" msgstr "פתיחת קובץ גיבוי" msgid "Osmo backup files (*.bck)" msgstr "קבצי גיבוי Osmo ‏(‎*.bck)" msgid "This is not Osmo backup file" msgstr "קובץ זה אינו קובץ גיבוי OSMO" msgid "Incorrect password!" msgstr "סיסמה שגויה!" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "על Osmo להתאתחל כעת..." msgid "Please select address" msgstr "נא לבחור כתובת" msgid "First name" msgstr "שם פרטי" msgid "Last name" msgstr "שם משפחה" msgid "Second name" msgstr "שם אמצעי" msgid "Nickname" msgstr "כינוי" msgid "Tags" msgstr "תוויות" msgid "Name day date" msgstr "" msgid "Home address" msgstr "כתובת מגורים" msgid "Home postcode" msgstr "מיקוד מגורים" msgid "Home city" msgstr "עיר מגורים" msgid "Home state" msgstr "מחוז מגורים" msgid "Home country" msgstr "מדינת מגורים" msgid "Organization" msgstr "ארגון" msgid "Department" msgstr "מחלקה" msgid "Work address" msgstr "כתובת עבודה" msgid "Work postcode" msgstr "מיקוד עבודה" msgid "Work city" msgstr "עיר עבודה" msgid "Work state" msgstr "מחוז עבודה" msgid "Work country" msgstr "מדינת עבודה" msgid "Fax" msgstr "פקס" msgid "Home phone" msgstr "טלפון בבית" msgid "Home phone 2" msgstr "טלפון בבית 2" msgid "Home phone 3" msgstr "טלפון בבית 3" msgid "Home phone 4" msgstr "טלפון בבית 4" msgid "Work phone" msgstr "טלפון בעבודה" msgid "Work phone 2" msgstr "טלפון בעבודה 2" msgid "Work phone 3" msgstr "טלפון בעבודה 3" msgid "Work phone 4" msgstr "טלפון בעבודה 4" msgid "Cell phone" msgstr "טלפון נייד" msgid "Cell phone 2" msgstr "טלפון נייד 2" msgid "Cell phone 3" msgstr "טלפון נייד 3" msgid "Cell phone 4" msgstr "טלפון נייד 4" msgid "E-Mail" msgstr "דוא״ל" msgid "E-Mail 2" msgstr "דוא״ל 2" msgid "E-Mail 3" msgstr "דוא״ל 3" msgid "E-Mail 4" msgstr "דוא״ל 4" msgid "WWW" msgstr "מרשתת" msgid "WWW 2" msgstr "מרשתת 2" msgid "WWW 3" msgstr "מרשתת 3" msgid "WWW 4" msgstr "מרשתת 4" msgid "IM Gadu-Gadu" msgstr "Gadu-Gadu" msgid "IM Yahoo" msgstr "YIM!" msgid "IM MSN" msgstr "MSN" msgid "IM ICQ" msgstr "ICQ" msgid "IM AOL" msgstr "AIM" msgid "IM Jabber" msgstr "JID" msgid "IM Skype" msgstr "Skype" msgid "IM Tlen" msgstr "Tlen" msgid "Blog" msgstr "בלוג" msgid "Photo" msgstr "תצלום" msgid "New contact" msgstr "איש קשר חדש" msgid "Remove contact" msgstr "הסר איש קשר" msgid "Show birthdays" msgstr "הצג ימי הולדת" msgid "Show contact location on the map" msgstr "הצג מיקום איש קשר על המפה" msgid "Backup data" msgstr "גבה מידע" msgid "Restore data" msgstr "שחזר מידע" msgid "About" msgstr " אודות" msgid "Clear" msgstr "טהר" msgid "First Name" msgstr "שם פרטי" msgid "Last Name" msgstr "שם משפחה" msgid "All fields" msgstr "כל השדות" msgid "Contact details" msgstr "פרטי איש קשר" msgid "Close contact panel" msgstr "סגור לוח איש קשר" msgid "The note has changed." msgstr "הפתק שונה." msgid "Do you want to save it?" msgstr "האם ברצונך לשמור אותו?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "מילים" msgid "Lines" msgstr "שורות" msgid "Characters" msgstr "תווים" msgid "White characters" msgstr "תווים לבנים" msgid "Bytes" msgstr "בתים" msgid "Document" msgstr "מסמך" msgid "Selection" msgstr "בחירה" msgid "Modified" msgstr "שונה" msgid "New note" msgstr "פתק חדש" msgid "Edit note" msgstr "ערוך פתק" msgid "Delete note" msgstr "מחק פתק" msgid "Save note" msgstr "שמור פתק" msgid "Find" msgstr "מצא" msgid "Toggle spell checker" msgstr "בודק איות" msgid "Bold" msgstr "בולט" msgid "Italic" msgstr "נטוי" msgid "Underline" msgstr "קו תחתון" msgid "Strikethrough" msgstr "קו חוצה" msgid "Highlight" msgstr "הדגש" msgid "Clear attributes" msgstr "טהר אפיונים" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "הכנס תאריך וזמן נוכחיים" msgid "Insert separator" msgstr "הכנס חוצץ" msgid "Statistics" msgstr "סטטיסטיקות" msgid "Close editor" msgstr "סגור עורך" msgid "Note name" msgstr "שם פתק" msgid "Read-only" msgstr "קריאה-בלבד" msgid "Line" msgstr "שורה" msgid "Column" msgstr "טור" msgid "case sensitive" msgstr "התאם אותיות גדולות/קטנות" msgid "Close find entry" msgstr "סגור רשומת מציאה" msgid "Edit entry" msgstr "ערוך רשומה" msgid "Remember cursor position" msgstr "זכור מיקום סמן" msgid "Selected note will be removed." msgstr "פתק נבחר יוסר." msgid "No further data recovery will be possible." msgstr "שום שחזור מידע לא יהיה אפשרי." msgid "Add note" msgstr "הוסף פתק" msgid "Plain" msgstr "גלוי" msgid "Encrypted" msgstr "מוצפן" msgid "Note type" msgstr "טיפוס פתק" msgid "Cannot open the note." msgstr "לא מסוגל לפתוח את הפתק." msgid "encryption support is disabled" msgstr "תמיכת הצפנה הינה מנוטרלת" msgid "Authorization" msgstr "הרשאה" msgid "year" msgid_plural "years" msgstr[0] "שנה" msgstr[1] "שנים" msgid "day" msgid_plural "days" msgstr[0] "יום" msgstr[1] "ימים" msgid "hour" msgid_plural "hours" msgstr[0] "שעה" msgstr[1] "שעות" msgid "minute" msgid_plural "minutes" msgstr[0] "דקה" msgstr[1] "דקות" msgid "second" msgid_plural "seconds" msgstr[0] "שניה" msgstr[1] "שניות" msgid "or" msgstr "או" msgid "rounded down" msgstr "מתעגלות" msgid "week" msgid_plural "weeks" msgstr[0] "שבוע" msgstr[1] "שבועות" msgid "working day" msgid_plural "working days" msgstr[0] "יום עבודה" msgstr[1] "ימי עבודה" msgid "time is ignored" msgstr "זמן אינו מוחשב" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "יום סופ״ש" msgstr[1] "ימי סופ״ש" msgid "This calculator only supports dates after year 1." msgstr "" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "יום סופ״ש לא מוחשב" msgstr[1] "ימי סופ״ש לא מוחשבים" msgid "Date calculator" msgstr "מחשבון תאריך" msgid "Current date" msgstr "תאריך נוכחי" msgid "Set current date" msgstr "קבע תאריך נוכחי" msgid "Second" msgstr "שניה" msgid "Set current time" msgstr "קבע זמן נוכחי" msgid "Reset time" msgstr "אפס זמן" msgid "First date and time" msgstr "תאריך ושעה ראשונים" msgid "Second date and time" msgstr "תאריך ושעה אחרונים" msgid "Alternative time units" msgstr "יחידות זמן חלופיות" msgid "Result" msgstr "תוצאה" msgid "Duration between two dates" msgstr "פרק זמן בין שני תאריכים" msgid "Operation" msgstr "פעולה" msgid "add" msgstr "הוסף" msgid "subtract" msgstr "הפחת" msgid "Date and time to add or subtract from" msgstr "תאריך וזמן להפחית או להוסיף מתוך" msgid "Years" msgstr "שנים" msgid "Weeks" msgstr "שבועות" msgid "Seconds" msgstr "שניה" msgid "Ignore weekend days" msgstr "התעלם מימי סופ״ש" msgid "Reset fields" msgstr "אפס שדות" msgid "Time to add or subtract" msgstr "זמן להוספה או להחסרה" msgid "Add to or subtract from a date" msgstr "הוסף או הסר מתוך תאריך" msgid "Cannot perform selected operation." msgstr "" msgid "Task has been modified or removed." msgstr "" msgid "Remind me later" msgstr "הזכר לי מאוחר יותר" msgid "Done" msgstr "הושלמה" msgid "Show task" msgstr "הצג מטלה" msgid "Alarm warning!" msgstr "" msgid "postponed" msgstr "" msgid "Day note" msgstr "פתק יום" msgid "Events" msgstr "אירועים" msgid "Event" msgstr "אירוע" msgid "Task" msgstr "מטלה" msgid "Birthday" msgstr "יום הולדת" msgid "Show Osmo" msgstr "הצג את Osmo" msgid "event" msgid_plural "events" msgstr[0] "אירוע" msgstr[1] "אירועים" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "אירועי iCalendar" msgid "Time" msgstr "זמן" msgid "The list will be cleared and all entries will be lost." msgstr "" msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgstr[1] "" msgid "iCalendar export" msgstr "ייצוא iCalendar" msgid "Day Selector" msgstr "בורר יום" msgid "Use date period" msgstr "" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "שמור מטלות" msgid "tasks exported" msgstr "מטלות יוצאו" msgid "was born" msgstr "נולד/ה" msgid "year old" msgid_plural "years old" msgstr[0] "שנה" msgstr[1] "שנים" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "יום עד סוף השנה" msgstr[1] "ימים עד סוף השנה" msgid "the last day of the year" msgstr "היום האחרון שבשנה" msgid "Day tasks" msgstr "מטלות היום" msgid "Selected day note will be removed." msgstr "פתק יום נבחר יוסר." msgid "Continue?" msgstr "להמשיך?" msgid "Previous year" msgstr "שנה קודמת" msgid "Previous month" msgstr "חודש קודם" msgid "Previous day" msgstr "יום קודם" msgid "Next day" msgstr "יום הבא" msgid "Next month" msgstr "חודש הבא" msgid "Next year" msgstr "שנה הבאה" msgid "Full-year calendar" msgstr "‎לוח שנה מלא" msgid "Print calendar" msgstr "הדפס לוח שנה" msgid "Toggle day note panel" msgstr "החלף לוח פתק יום" msgid "Select day color" msgstr "בחר צבע יום" msgid "Browse notes" msgstr "עיין בפתקים" msgid "Browse iCal events" msgstr "עיין באירועי iCal" msgid "Export to iCal file" msgstr "יצוא לקובץ iCal" msgid "Previous and next month" msgstr "חודש קודם ובא" msgid "Close note panel" msgstr "סגור לוח פתק" msgid "Clear text" msgstr "טהר תמליל" msgid "Info" msgstr "מידע" msgid "Select color" msgstr "בחר צבע" msgid "Name day" msgstr "שם יום" msgid "Printing properties" msgstr "מאפייני הדפסה" msgid "Month name" msgstr "שם חודש" msgid "Day name" msgstr "שם יום" msgid "Fonts" msgstr "גופנים" msgid "Birthdays" msgstr "ימי הולדת" msgid "Namedays" msgstr "שמות ימים" msgid "Visible events" msgstr "אירועים נראים" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "כיוון עמוד:" msgid "Portrait" msgstr "לאורך" msgid "Landscape" msgstr "לרוחב" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "שנה מעוברת" msgid "Yes" msgstr "כן" msgid "No" msgstr "לא" msgid "Chinese year animal" msgstr "שנת חיה סינית" msgid "Number of days" msgstr "מספר ימים" msgid "Number of weeks" msgstr "מספר שבועות" msgid "Number of weekend days" msgstr "מספר ימי סופ״ש" msgid "Year info" msgstr "מידע שנה" msgid "Alternative view" msgstr "תצוגה חלופית" msgid "Started" msgstr "התחילה" msgid "Finished" msgstr "הסתיימה" msgid "New task" msgstr "מטלה חדשה" msgid "Remove task" msgstr "הסר מטלה" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "יצא מטלות" msgid "Print visible tasks list" msgstr "" msgid "Task details" msgstr "פירטי מטלה" msgid "Close description panel" msgstr "סגור לוח תיאור" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "כרטיסייה קודמת" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDn" msgid "switch to next tab" msgstr "כרטיסייה הבאה" msgid "switch to selected page" msgstr "החלף לעמוד נבחר" msgid "show options window" msgstr "הצג חלון אפשרויות" msgid "show about window" msgstr "הצג חלון אודות" msgid "toggle fullscreen mode" msgstr "החלף מצב מסך מלא" msgid "PageUp/PageDn" msgstr "PageUp/PageDn" msgid "switch page in options and about tab" msgstr "החלף עמוד בתוך כרטיסיית אפשרויות ואודות" msgid "exit" msgstr "יציאה" msgid "Space" msgstr "‎רווח" msgid "select current date" msgstr "‎בחר תאריך נוכחי" msgid "Ctrl+Space" msgstr "Ctrl+רווח‎" msgid "toggle personal data visibility" msgstr "החלף ראות מידע אישי" msgid "Arrows" msgstr "‎חצים‎" msgid "change day" msgstr "החלף יום" msgid "Ctrl+Up/Down" msgstr "Ctrl+מעלה/מטה‎" msgid "scroll the contents in the day info panel" msgstr "" msgid "change month" msgstr "החלף חודש" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "החלף שנה" msgid "toggle calendars for the previous and next month" msgstr "" msgid "day notes browser" msgstr "דפדפן פתקי יום" msgid "assign background color to day note" msgstr "הקצה צבע רקע לפתק יום" msgid "date calculator" msgstr "מחשבון תאריך" msgid "show full-year calendar" msgstr "הצג לוח שנה מלא" msgid "jump to date" msgstr "קפוץ אל תאריך" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "הסר פתק יום" msgid "Alt+Arrows" msgstr "Alt+חצים‎" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "סגור עורך" msgid "toggle bold" msgstr "מודגש" msgid "toggle italic" msgstr "נטוי" msgid "toggle underline" msgstr "קו תחתון" msgid "toggle strikethrough" msgstr "קו חוצה" msgid "toggle highlight" msgstr "הדגש" msgid "Arrows Up/Down" msgstr "‎חצים מעלה/מטה‎" msgid "toggle alternative view" msgstr "החלף תצוגה חלופית" msgid "year info" msgstr "מידע שנה" msgid "set current year" msgstr "קבע שנה נוכחית" msgid "close full-year calendar" msgstr "סגור לוח שנה מלא" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "הוסף מטלה" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "ערוך מטלה" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "הסר מטלה" msgid "toggle hidden tasks" msgstr "החלף משימות נסתרות" msgid "activate search field" msgstr "הפעל שדה חיפוש" msgid "Left, Right" msgstr "‎שמאל, ימין‎" msgid "change category filter" msgstr "החלף מסנן קטגוריה" msgid "close task info panel" msgstr "סגור לוח מידע מטלה" msgid "Insert" msgstr "Insert" msgid "add contact" msgstr "הוסף איש קשר" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "ערוך איש קשר" msgid "remove contact" msgstr "הסר איש קשר" msgid "change search mode" msgstr "החלף מצב חיפוש" msgid "close contact details panel" msgstr "סגור לוח פרטי איש קשר" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "פתח פתק" msgid "add note" msgstr "הוסף פתק" msgid "remove note" msgstr "הסר פתק" msgid "edit note name and category" msgstr "ערוך שם פתק וקטגוריה" msgid "close note editor" msgstr "סגור עורך פתק" msgid "save note" msgstr "שמור פתק" msgid "find text" msgstr "מצא תמליל" msgid "clear selection attributes" msgstr "טהר עיצוב בחירה" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "‏OSMO תוכנן בשים לב לנוחיות המשתמש, כך שיש קיצורי דרך מקש רבים. הרי הרשימה " "המלאה:" msgid "Note editor" msgstr "‎עורך פתקים" msgid "Selector" msgstr "‎בורר" msgid "Editor" msgstr "‎עורך" msgid "A handy personal organizer" msgstr "מארגן אישי שימושי" msgid "compiled on" msgstr "הודר בתאריך" msgid "Programming" msgstr "‎תכנות" msgid "Graphics" msgstr "‎מתאר ציורי" msgid "Contributors" msgstr "‎תורמים" msgid "Translators" msgstr "‎מתרגמים" msgid "Mailing lists" msgstr "‎רשימות תפוצה" msgid "Bug tracker" msgstr "Bug tracker (מעקב בעיות)" msgid "Feature requests" msgstr "‎בקשת תכונות" msgid "Available modules" msgstr "מודולים זמינים" msgid "Compiled-in features" msgstr "תכונות Compiled-in" msgid "iCalendar support" msgstr "תמיכת iCalendar‭‏" msgid "Encrypted notes support" msgstr "תמיכת פתקים מוצפנים" msgid "Backup support" msgstr "תמיכת גיבוי" msgid "Printing support" msgstr "תמיכת הדפסה" msgid "Spell checker support" msgstr "תמיכת בודק איות" msgid "version" msgstr "גרסא" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr " מקשי קיצור" msgid "License" msgstr " רשיון" #~ msgid "handy personal organizer" #~ msgstr "ישומיש ישיא ןגראמ" osmo-0.4.2/po/it.mo0000664000175000017500000010703113204320601010775 00000000000000ql)07 17?7Z7 `7 l7.w77777777 7 88 '818 58 ?8 J8 T88^8 8 88 888(8 !9,9 59C9I9O9V9&e9$9 9999:: : :": 8:B:Q:V:[:b: u: ::*::: :::;;-;?;"U;x; ;; ;; ; ; ; ;; < '<2<R<f<m<r<x< <<< <<<<<. =!:= \=}==== === = === = > > > )> 6>C>V> o> }> > >> >>%>> > ??$? 7?C? G?T? c?p?y?? ? ? ????+? ? @ @@8@A@a@y@@@@@@@@@@@ @!@ A A )A 4A >AHAOAWA^AxAA!AAA AA BBB"B1B7BFBJB PB]BpBBBB BBBBB BBBBCCC C(C KIKMKTKZKtK:KKKK K K L #L0L ?LML\LuLLL L LLLLLL LLLMM#;M_MoMM MMMM M MMM M N"N 2N Q KQXQ sQ }QQ!QJQR R R R&R=RSRYRiRqR wRR RRRR R RRR R"RS.S 4S ?SMS3TS3S0S6S$T:T@T1ETwTTT T TTT TTTT U"U+U /U;U @UJURUbU#}UUUUUU#UUUV VVV*V>VFVKV`V tV VV VVVVVV V V V W W W ,W 9W GW RW ]WhW mWwW}W WWWWW WWW#WX(X ?X JXWX jXvXX XXXX XY"$YGYWY`YrY&Y*Y YY YZ 'Z 5ZBZaZ fZpZZ ZZZZZZ ZZ[ [ [#[ &[0[ 3[=[L[ \[ h[ t[ [)[[[[[[\'\$0\U\h\\\\\\\\ \0\0]G][] l]z]]]]] ]](]^ 7^ B^L^_^q^c^__ ` `2`7H` ```` ````` a a'a -a :aHa [aMia aaaaab(bCbKb Tb`bgbobvb$b%bbb%bc(c-c 6cAc"Qc tccc ccc c cc1c dd0dEdUd\dwddd*dd ee 9e Ce Me We ce oe${e$ee"ee fff f 2f@fYf ufffff2f!f)g GgTg[gcg vggg gg gg g g g g g hh 1h Rh `h mh{hh hhh hh hhi i)i0iAiVi kiwiiiiiiii*i %j2j Bj#Nj rj~jj jjjjj jjjjjk k2kQkdk vk kkkkkkkk4l"=l`lul~l llllllllll m#m*m2mCmSmkmrmvm mmm mmmmmmmm n nn 'n 1n #8s#|oAtC6H. rKoT RnW_?N<XF/p'uA d% 1l{1L ir+$:s fHX}`[*y>2LG MNyd["~eN@Kt' #//>EWb3HBgw0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.4 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-04-01 21:28+0100 Last-Translator: spawned76 Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); (0 per disabilitare)Un'agenda personaleInformazioniAggiungi contattoAggiungi intestazioneAggiungi nuovo impegno con doppio clic su lista impegniAggiungi notaAggiungi impegnoAggiungi o sottrai da una dataInformazioni aggiuntiveIndirizzoAvanzatoEtàComando allarmeAvviso allarmeAvviso allarme!AlgoritmoTuttoTutti i fileTutti i campiTutti gli elementiTutte le noteTutte le informazioni saranno sostituite con il contenuto del file di backup.Alt+FrecceAlt+a, InserisciAlt+e, Ctrl+InvioAlt+r, CancellaUnità alternativeVista alternativaUn'altra copia di OSMO è in esecuzione.AspettoAcquarioSei sicuro?ArieteFrecciaFrecceFrecce Su/GiùNote del giorno in ordine ascendenteAlmeno un modulo dev'essere visibile.AutorizzazioneModuli disponibiliFile di backup salvato correttamente!Support obackupBaseMiglioreCompleannoData di nascitaColore marcatore giorno compleannoCompleanniElenco compleanniBlogGrassettoSottoSfoglia eventi di iCalMostra noteRicerca bugBytesCSV (valori separati dalla virgola) files (*.csv)CalendarioFile calendario (*.ics)Carattere calendarioNote calendarioCancroImpossibile creare backup!Impossibile creare file.Impossibile aprire il file.Impossibile aprire la nota.Non posso eseguire la seguente operazione.Impossibile leggere il file.Capricornodistingui MAIUSCOLE/minuscoleCategorieCategoriaCellulareCellulare 2Cellulare 3Cellulare 4Sposta scadenza al giorno successivoSposta scadenza al giorno precedenteLettereControlla eventi dall'ultimo avvioAnimale dell'anno cineseCerchioCittàPulisciPulisci attributiElimina testoChiudi pannello contattoChiudi pannello descrizioneChiudi editorChiudi ricercaChiudi pannello noteColoreColore etichette contattiColore degli impegni da fare nei prossimi 7 giorniColore degli impegni da fare oggiColore degli impegni che sono stati fattiColore linksColoriColonnaFeatures compilateCompressioneDettagli contattoContattiContinuare?Hanno contribuitoProvinciaCreatoCtrl+InvioCtrl+PagGiùCtrl+PagSuCtrl+SpazioGtrl+Su/GiùData correnteMarcatore giorno correnteColore marcatore giorno correnteMese correnteOra correnteAnno correnteColore cursoreSpessore cursoreGG-MM-AAAADataAggiungere giorni e oreCalcola-dateCarattere dataFormato dataSintassi formato dataFotmato data intestazionePeriodo dataGiornoSelettore giornoCategorie del giornoCategoria del giornoNome giornoNota del giornoMarcatore note del giornoNote del giornoGiorno dell'annoImpegni del giornoGiorniGiorni al compleannoCancellaElimina automaticamente impegni completatiElimina notaCampo di lavoroDescrizioneDisabilita sottolineatura nei linksDisattivatoVuoi davvero continuare?Vuoi salvarlo?DocumentoCaneFattoFatto!DragoData impegnoDistanza tra due dateE-MailE-Mail 2E-Mail 3E-Mail 4Programma E-MailERRORE:Impossibile creare i file di configurazioneModifica categoriaModifica contattoModifica datoModifica notaModifica impegnoEditorEllisseAttivaAbilita calendari supplementariAbilita blocco cursoreAbilita notifica sonoraAbilita controllo ortografico nelle note giornaliereAbilita icona nella barra di statoAbilita suggerimentiCrittatoSupporto note crittateCrittaturaFineInvioInserisci passwordErroreErrore di stampaEscEventoMarcatore eventoColore mercatore eventoLunghezza massima eventoEventiEsportaEsporta contattiEsporta impegniEsporta calendario iCalVeloceFaxRichiesta funzionalitàTipo di campoCamppi da esportareFileNome fileFiltroCercaFinitoNomePrima data e oraNomeDimensione carattereCaratterePolloCerchio mano liberaDalle oreLuna pienaData completaCalendario dell'intero annoGemelliGeneraleComando di notifica globaleBuonoGraficaGruppoGruppiLepreHashingAiutiNascondiNascondi impegni completatiNascondi colonna gruppiAltoEvidenziatoCasaIndirizzo di casaCittàProvinciaTelefono abitazioneTelefono abitazione 2Telefono abitazione 3Telefono abitazione 4CAPStatoInizio/FineOrizzontaleCavalloOreOreIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnora allarme quando l'impegno scade offlineIgnore eventi note del giornoIgnora giorni del weekendImportaImporta contattiImporta tipoPassword sbagliata!InfoInformazioniNome file d'origineInserisciInserisci data e ora attualeInserisci separatoreInserisci timelineInternetIntervalloInvertiCorsivoDimensione carattere elementoSalta alla dataScorciatoieOrizzontaleGrandeCognomeUltimo quartoUltime modificheCognomeDisposizioneAnno bisestileSinistraSinistra, DestraLeoneBilanciaLicenzaLineaLineeBassoMM-GG-AAAAMM/GG/AAElenco indirizziSegnaGiorni con impegniMediaMinutiMinutiVarieModificatoModifica parametri iCalScimmiaMeseNome meseMesiFase lunareNomeOnomasticoBattesimoDimensione carattere nomeOnomasticiLuna nuovaNuovo contattoNuova notaNuovo impegnoGiorno seguenteMese seguenteAnno seguenteSoprannomeNoNessun compleanno inseritoNessuna dataNon sarà più posibile recuperare i dati.Non cambiare meseNessun elemento trovato nel file selezionato.Nessun impegno trovato col giorno indicato.Nessun calendario valido definitoNum.NienteNotaeditor delle noteCarattere notaNome notaTipo di notaNoteOpzioni noteNiente da importareNumero campi per elementoNumero di giorniNumero di giorni futuri da controllare (predefinito: 0)Numero di giorni dei weekendsNumero di settimaneOSMO è stato creato per essere pratico; per questo motivo ci sono molte scorciatoie da tastiera. Ecco la lista completa:Apri file di backupOperazioneOpzioniOrganizzazioneFile di backup di Osmo (*.bck)Osmo deve essere riavviato ora...Osmo deve essere riavviato per applicare le modifiche.Nome file destinazioneFormato destinazioneIgnora impostazioni lingua sistemaBuePaddingOrientamento pagina:PagSu/PagGiùProtezione passwordLe password non coincidono!PersonaleTelefoniFotoDimensione fotoMaialePesciPer estesoInserisci passwordSeleziona indirizzoSeleziona almeno un giorno in cui si verifica l'evento.Seleziona prima il file.VerticaleCAPTempo postposizionePreferenzeMese precedente e successivoGiorno precedenteMese precedenteAnno precedenteStampa calendarioStampa elenco compiti visibiliProprietà di stampaSupporto alla stampaPrioritàProgrammatoPrimo quartoDomandaEsciRattoRatioReinserisci passwordSola letturaElementoImpegno ricorrenteRicorda posizione cursoreRicorda ultima scheda visualizzataRicorda ultima categoria selezionataRicordamelo dopoOpzioni promemoriaRimuovi contattoRimuovi impegnoRipetiRipeti i giorni successiviRipeti suono allarmeAzzera campiAzzera oraRisultatoDestraSagittarioSalva backupSalva i dati dopo ogni modificaSalva notaSalva impegniScorpioneCercaSecondiSeconda data e oraSecondo nomeSecondiSeleziona file CSVSeleziona file ICSSeleziona carattere...Seleziona coloreSeleziona data e oraSeleziona colore del giornoSeleziona campiSeleziona file di destinazioneSeleziona fotoIl contatto selezionato sarà rimosso.La nota del giorno sarà eliminata.Il file selezionato esiste già! Sovrascrivere?Mese selezionatoMese e anno selezionatiLa nota selezionata sarà rimossa.L'impegno selezionato sarà rimosso.Anno selezionatoSelezioneSelettoreImposta percorso assoluto per i file di impostazioni e datiImposta data correnteImposta ora correnteImposta formato predefinitoImposta oraPecoraMostra OsmoMostra compleanniMostra calendarioMostra posizione contatti sulla mappaMostra contattiMostra nome del giornoVisualizza pulsante di uscita nella barra degli strumenti Mostra in grassetto gli impegni con priorità altaMostra il pannello informazioni sul giornoMostra noteMostra opzioniVisualizza secondiMostra finestra mini-calendarioMostra impegniMostra impegniMostra numero settimaneVista semplice nella modalità anno interoUtilizzare due o più istanze di OSMO può causare una perdita di dati.PiccolaSerpenteRiproduttore audioSpazioLingua controllo ortograficoSupporto controllo ortograficoCominciaParti minimizzatoCominciatoStatoStatisticheIntervallo (minuti)BarratoBarra le note dei giorni passatiRiepilogoSintassiIcona nella barra di statoPosizione schedeEtichetteImpegnoDettagli impegnoL'impegno è stato modificato o rimosso.Carattere informazioni impegnoImpegniElenco impegniOpzioni impegniToro%s sarà sostituito con l'indirizzo e-mail%s sarà sostituito col nome del file audio%s sarà sostituito con l'indirizzo webL'elenco verrà cancellato e tutte le voci andranno perdute.La nota è cambiata.SpessoSottileQuesta calcolatrice supporta soltanto le date successive all'anno 1.Non è un file di backup di OsmoTigreOraFormato oraDurataTempo da aggiungere o sottrarreTimelineAlle oreOggiDistante da oggiAlterna note/informazioniControllo ortograficoDomaniSopraTraduttoriTipoSottolineatoSconosciutoUsa intervallo dataUsa primo elemento come intestazioneUtilizza formato di sistema per data e oraValidoValoreVerticaleVergineColonne visibiliColonne visibili nella ricerca compleanniEventi visibiliSito InternetSito Internet 2Sito Internet 3Sito Internet 4Luna CalanteLuna Gibbosa CalanteAttenzioneOndaLuna CrescenteLuna Gibbosa CrescenteBrowser internetSettimanaLa settimana comincia da LunedìGiorni del weekendColore giorni weekendSettimaneCaratteri bianchiParoleLavoroIndirizzo lavoroCittà in cui lavoraProvincia in cui lavoraTelefono lavoroTelefono lavoro 2Telefono lavoro 3Telefono lavoro 4CAP lavoroStato in cui lavoraAAAA-GG-MMAAAA-MM-GGAnnoInformazioni sull'annoAnniSiSegno zodiacalenome del mese abbreviatogiorno della settimana abbreviatoattiva campo di ricercaaggiungiaggiungi contattoaggiungi notaaggiungi impegnoassegna sfondo colorato alla nota del giornodistingui MAIUSCOLE/minuscolecambia filtro categoriacambia giornocambia mesecambia modalità di ricercacambia annopulisci attributi selezionechiudi pannello dettagli contattochiudi editorchiudi calendario dell'anno interochiudi editor notachiudi pannello informazion impegnocompilato sucontatto aggiuntocontatti aggiuntiContatto esportatoContatti esportatiCalcola-dategiornogiorniBrowser note del giornogiorno del mesegiorno del mese senza eventuali zeri davantigiorno alla fine dell'annogiorni alla fine dell'annomodifica contattomodifica nome e categoria notamodifica impegnoSupporto alla crittatura non è attivovalorevalorieventoeventiEvento esportatoEventi esportatiescicerca testoNome mese completogiorno della settimana per estesooraoreoreEventi di iCalendarEsportazione iCalendarFile iCalendarSupporto iCalendersalta alla dataminutominutiminutimesemesinessun valorediapri notaorinviatorimuovi contattorimuovi nota del giornorimuovi notarimuovi impegnoarrotondato per difettosalva notaScorri il contenuto del pannello informazioni del giornosecondosecondiseleziona data correnteimposta anno correntemostra finestra infomostra calendario dell'anno interomostra finestra opzionisottraicambiare pagina in opzioni e informazionipassa alla scheda successivapassa alla scheda precedentepassa alla pagina successivaImpegni esportatil'ultimo dell'annol'ora è ignoratavolteoggivista alternativagrassettoalterna calendari del mese precedente e successivoAbilita modalità tutto schermomostra/nascondi impegni nascostievidenziatocorsivoalterna visibilità dati personalibarratosottolineatoversionenatosettimanasettimanegiorno del weekendgiorni del weekendgiorno del weekend ignoratogiorni del weekend ignoratiGiorno lavorativoGiorni lavorativiannoanniinformazioni sull'annoannoannianno con il secoloanno senza il secoloosmo-0.4.2/po/ro.po0000664000175000017500000011575013204320601011013 00000000000000# Romanian traslation of Osmo # This file is distributed under the same license as the Osmo package. # Alexandru GAVRIȘ , 2013. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2011-04-08 23:20+0200\n" "Last-Translator: Alexandru Gavriș \n" "Language-Team: Romanian ro \n" "Language: ro\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" msgid "Colors" msgstr "Culori" msgid "Color of contact tags" msgstr "Culoarea etichetelor de contact" msgid "Color of links" msgstr "Culoarea legăturilor" msgid "Font size" msgstr "Dimensiune font" msgid "Name font size" msgstr "Dimensiunea fontului pentru nume" msgid "Item font size" msgstr "Dimensiuneaa fontului pentru obiect" msgid "Photo size" msgstr "Dimensiunea pozei" msgid "Small" msgstr "Mică" msgid "Medium" msgstr "Medie" msgid "Large" msgstr "Mare" msgid "Hide group column" msgstr "Ascunde grupul de coloane" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Vîrsta" msgid "Birthday date" msgstr "Data datei de naștere" msgid "Zodiac sign" msgstr "Semnul zodiacal" msgid "Contacts" msgstr "Contacte" msgid "Appearance" msgstr "Înfățișare" msgid "Miscellaneous" msgstr "Diverse" msgid "Groups" msgstr "Grupuri" msgid "Visible columns in birthday browser" msgstr "Coloanele vizibile în răsfoitorul zilei de naștere" msgid "Algorithm" msgstr "Algoritm" msgid "Hashing" msgstr "Amestec/Hashing" msgid "Compression" msgstr "Compresie" msgid "Ratio" msgstr "Rata" msgid "Fast" msgstr "Rapidă" msgid "Good" msgstr "Bună" msgid "Best" msgstr "Excelentă" msgid "Type" msgstr "Tip" msgid "Category" msgstr "Categorie" msgid "Last changes" msgstr "Ultimele schimbări" msgid "Created" msgstr "Creat" msgid "Remember the last selected category" msgstr "Reține ultima categorie selectată" msgid "Use system format for date and time" msgstr "Utilizează formatul sistemului pentru dată, timp" msgid "Notes" msgstr "Însemnări" msgid "Encryption" msgstr "Encriptare" msgid "Visible columns" msgstr "Coloane vizibile" msgid "Categories" msgstr "Categorii" msgid "Notes options" msgstr "Opțiunile însemnărilor" msgid "Jump to date" msgstr "Sări la dată" msgid "Day" msgstr "Zi" msgid "Month" msgstr "Lună" msgid "Year" msgstr "An" #, fuzzy msgid "_Cancel" msgstr "Anulează" #, fuzzy msgid "_Jump to" msgstr "Sări la" msgid "Select a font..." msgstr "Alege un font..." msgid "None" msgstr "Niciuna" msgid "All items" msgstr "Toate obiectele" msgid "Question" msgstr "Întrebări" msgid "Information" msgstr "Informații" msgid "Error" msgstr "Eroare" msgid "Warning" msgstr "Atenționare" msgid "Show hidden files" msgstr "" #, fuzzy msgid "_Save" msgstr "Salvează" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Fișierul ales există! Suprascrie?" msgid "Selected contact will be removed." msgstr "Contactele selectate vor fi eliminate." msgid "Are you sure?" msgstr "Sigur?" msgid "No date" msgstr "Fără dată" msgid "Select photo" msgstr "Alege poza" msgid "Address" msgstr "Adresa" msgid "Postcode" msgstr "Nr. poștal" msgid "City" msgstr "Orașul" msgid "State" msgstr "Județul" msgid "Country" msgstr "Țara" msgid "Edit contact" msgstr "Editează contact" msgid "Add contact" msgstr "Adaugă contact" msgid "Personal" msgstr "Personal" msgid "Group" msgstr "Grup" msgid "Home" msgstr "Acasă" msgid "Work" msgstr "Lucru" msgid "Phones" msgstr "Telefoane" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informații suplimentare" #, fuzzy msgid "_OK" msgstr "Bine" msgid "no entries" msgstr "nici o intrare" msgid "entry" msgid_plural "entries" msgstr[0] "intrare" msgstr[1] "intrări" msgid "Calendar notes" msgstr "Notițe din calendar" msgid "Search" msgstr "Caută" msgid "Filter" msgstr "Filtru" msgid "Current month" msgstr "Luna curentă" msgid "Selected month" msgstr "Selectează luna" msgid "Current year" msgstr "Anul curent" msgid "Selected year" msgstr "Selectează anual" msgid "Selected month and year" msgstr "Selectează luna și anul" msgid "All notes" msgstr "Toate însemnările" msgid "Case sensitive" msgstr "Caractere sensibile " msgid "Strikethrough past day notes" msgstr "Taie însemnările din ultima zi" msgid "Date" msgstr "Data" msgid "Note" msgstr "Notiță" #, fuzzy msgid "_Close" msgstr "Închide" msgid "Rat" msgstr "Șobolan" msgid "Ox" msgstr "Bivol" msgid "Tiger" msgstr "Tigru" msgid "Hare" msgstr "Iepure" msgid "Dragon" msgstr "Dragon" msgid "Snake" msgstr "Șarpe" msgid "Horse" msgstr "Cal" msgid "Sheep" msgstr "Oaie" msgid "Monkey" msgstr "Maimuță" msgid "Fowl" msgstr "Găină" msgid "Dog" msgstr "Cîine" msgid "Pig" msgstr "Porc" msgid "Unknown" msgstr "Necunoscut" msgid "Aquarius" msgstr "Vărsător" msgid "Pisces" msgstr "Pești" msgid "Aries" msgstr "Berbec" msgid "Taurus" msgstr "Taur" msgid "Gemini" msgstr "Gemeni" msgid "Cancer" msgstr "Rac" msgid "Leo" msgstr "Leu" msgid "Virgo" msgstr "Fecioră" msgid "Libra" msgstr "Balanță" msgid "Scorpio" msgstr "Scorpion" msgid "Sagittarius" msgstr "Săgetător" msgid "Capricorn" msgstr "Capricorn" msgid "Osmo has to be restarted to take effect." msgstr "Osmo trebuie repornit pentru reinițializare." msgid "Layout" msgstr "Schemă" msgid "Vertical" msgstr "Verticală" msgid "Horizontal" msgstr "Orizontală" msgid "Tabs position" msgstr "Poziția tabului" msgid "Left" msgstr "Stînga" msgid "Right" msgstr "Dreapta" msgid "Top" msgstr "Sus" msgid "Bottom" msgstr "Jos" msgid "Disable underline in links" msgstr "Dezactiveză sublinierea din legături" msgid "Show exit button in toolbar" msgstr "Arată butonul de ieșire în bara de unelte" msgid "At least one module must be visible." msgstr "Măcar 1 modul trebuie să fie vizibil." msgid "Calendar" msgstr "Calendar" msgid "Tasks" msgstr "Sarcini" msgid "Override locale settings" msgstr "Suprascrie reglajele locale" msgid "Date format" msgstr "Formatul datei" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "Formatul timpului" msgid "hours" msgstr "ore" msgid "Spell checker language" msgstr "Corector lingvistic" msgid "Enable tooltips" msgstr "Activează ponturi" msgid "Remember last selected page" msgstr "Reține ultima pagină selectată" msgid "Save data after every modification" msgstr "Salvează datele după fiecare modificare" msgid "Web browser" msgstr "WWW" msgid "E-mail client" msgstr "Client de e-mail" msgid "Sound player" msgstr "Player de sunet" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Tiparul %s va fi înlocuit cu adresa web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Tiparul %s va fi înlocuit cu adresa e-mail" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Tiparul %s va fi înlocuit cu fișierul de sunet" msgid "Enable system tray" msgstr "Activeză 'system tray'" msgid "Start minimised" msgstr "Pornește minimizat" msgid "Ignore day note events" msgstr "Ignoră evenimentele cu însemnări zilnice" msgid "General" msgstr "Generalități" msgid "Hide" msgstr "Ascunde" msgid "Helpers" msgstr "Ajutoare" msgid "System tray" msgstr "'System tray'" msgid "Preferences" msgstr "Preferințe" msgid "Syntax" msgstr "Syntaxa" msgid "abbreviated weekday name" msgstr "numele abreviat al sf.d.s" msgid "full weekday name" msgstr "numele complet al sf.d.s" msgid "abbreviated month name" msgstr "numele abreviat al lunii" msgid "full month name" msgstr "numele complet al lunii" msgid "day of the month" msgstr "ziua lunii" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "ziua lunii fără zero" msgid "month" msgid_plural "months" msgstr[0] "lună" msgstr[1] "luni" msgid "year without century" msgstr "an fără secol" msgid "year with century" msgstr "an cu secol" msgid "Date header format" msgstr "Formatul de antet al zilei" msgid "Set default format" msgstr "Potrivește formatul implicit" msgid "Date format syntax" msgstr "Syntaxa formatului zilei" msgid "Day note marker" msgstr "Semnal al însemnării zilnice" msgid "Event marker" msgstr "Semnal de eveniment" msgid "Circle" msgstr "Cerc" msgid "Ellipse" msgstr "Elipsă" msgid "Wave" msgstr "Val" msgid "Current day marker" msgstr "Semnalul zilei curente" msgid "Arrow" msgstr "Săgeată" msgid "Free-hand circle" msgstr "Cercuri manuale" msgid "Background color" msgstr "" #, fuzzy msgid "Header background color" msgstr "Culoarea antetului" #, fuzzy msgid "Header foreground color" msgstr "Culoarea antetului" msgid "Weekend days color" msgstr "Culoarea zilelor de sds" #, fuzzy msgid "Day color" msgstr "Culoarea antetului" #, fuzzy msgid "Previous/Next month's day color" msgstr "Luna precedentă și următoare" msgid "Cursor color" msgstr "Culoare cursorului" msgid "Event marker color" msgstr "Culoarea semnalului de eveniment" msgid "Current day marker color" msgstr "Culoarea semnalului pentru ziua curentă" msgid "Birthday marker color" msgstr "Culoare semnalui zilei de naștere" msgid "Date font" msgstr "Typefaceul datei" msgid "Calendar font" msgstr "Typefaceul calendarului" msgid "Note font" msgstr "Typefaceul însemnării" msgid "Enable block cursor" msgstr "Activează cursorul de tip bloc" msgid "Cursor thickness" msgstr "Grosimea cursorului" msgid "Thin" msgstr "Subțire" msgid "Thick" msgstr "Grosime" msgid "Edit category" msgstr "Editează categoria" msgid "Color" msgstr "Culoare" msgid "Name" msgstr "Nume" msgid "Select ICS file" msgstr "Alege fila ICS" msgid "All Files" msgstr "Toate filele" msgid "Calendar files (*.ics)" msgstr "Filele calendarului (*.ics)" msgid "Modify ICAL parameters" msgstr "Modifică parametri ICAL" msgid "Filename" msgstr "Numele filei" msgid "Options" msgstr "Opțiuni" msgid "Disabled" msgstr "Dezactivate" msgid "Valid" msgstr "Valid" msgid "Description" msgstr "Descriere" msgid "Full date" msgstr "Data completă" msgid "Mark" msgstr "Semnal" msgid "Week start on Monday" msgstr "Săptămîna începe luni" msgid "Show day names" msgstr "Arată numele zilei" msgid "No month change" msgstr "Nici o schimbare a lunii" msgid "Show week numbers" msgstr "Arată numerele de saptămînă" msgid "Simple view in full-year calendar" msgstr "Vedere simplă in modul de calendar pe an" msgid "Enable auxilary calendars" msgstr "Activează calendare auxiliare" msgid "Ascending sorting in day notes browser" msgstr "Sortare ascendentă in însemnările zilei" msgid "Enable spell checker in day notes" msgstr "Activează corectorul gramatical în însemnările zilei" msgid "Current time" msgstr "Timp curent" msgid "Show seconds" msgstr "Arată secunde" msgid "Day number" msgstr "Numarul zilei" msgid "Today distance" msgstr "Distanța totală" msgid "Marked days" msgstr "Zilele însemnate" msgid "Week number" msgstr "Numărul săptămînii" msgid "Weekend days" msgstr "Zilele de final de saptămînă" msgid "Day category" msgstr "Categoria zilei" msgid "Moon phase" msgstr "Faza lunii" msgid "Day notes" msgstr "Însemnările zilei" msgid "Day categories" msgstr "Categorii de zile" msgid "iCalendar files" msgstr "Filele iCalendar" msgid "Show in day info panel" msgstr "Arată în secțiunea de informații ale zilei" msgid "Tasks list" msgstr "Lista de sarcini" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr." msgid "Summary" msgstr "Sumar" msgid "Due date" msgstr "Data scadentă" msgid "Priority" msgstr "Prioritate" msgid "Error printing" msgstr "Eroare de printare" msgid "No birthdays defined" msgstr "Nici o zi de naștere definită" msgid "Birthdays list" msgstr "Lista cu zile de naștere" msgid "Days to birthday" msgstr "Zile pînă la ziua de naștere" msgid "today" msgstr "azi" msgid "Select CSV file" msgstr "Selectează document CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "documente CSV (valori delimitate de virgulă) (*.csv)" msgid "Please select file first." msgstr "Selectează documentul mai întîi" msgid "Import contacts" msgstr "Importa contacte" msgid "Import type" msgstr "Importa tipul" msgid "File" msgstr "Document" msgid "Input filename" msgstr "Introdu numele documentului" msgid "Import" msgstr "Importă" msgid "Nothing to import." msgstr "Nimic de importat" msgid "contact added" msgid_plural "contacts added" msgstr[0] "contact adăugat" msgstr[1] "contacte adăugate" msgid "of" msgstr "din" msgid "Record" msgstr "Înregistrare" msgid "Number fields per record" msgstr "Numărul de cîmpuri/înregistrare" msgid "Use first record as header" msgstr "Utilizează prima înregistrare ca antet" msgid "Field type" msgstr "Tipul cîmpului" msgid "Value" msgstr "Valoare" msgid "No records found in selected file." msgstr "Nici o înregistrare în fișierul selectat." msgid "Cannot read file." msgstr "Nu se poate citi fișierul." msgid "Cannot open file." msgstr "Nu se poate deschide fișierul." #, fuzzy msgid "Counter" msgstr "Țara" msgid "Show calendar" msgstr "Arată calendar" msgid "Show tasks" msgstr "Arată sarcini" msgid "Show contacts" msgstr "Arată contacte" msgid "Show notes" msgstr "Arată notițe" msgid "Show options" msgstr "Arată opțiuni" msgid "Quit" msgstr "Renunță" msgid "Show small calendar window" msgstr "Arată calendar în fereastră mică" msgid "Check for events since last run" msgstr "Verifică evenimente noi" msgid "Number of days to check forward for events (default: 0)" msgstr "Nr. de zile de verificat înainte pentru evenimente (default: 0" msgid "Set absolute path for settings and data files" msgstr "Stabilește calea implicită pentru setări și fișierele cu date" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "EROARE: Nu se pot crea fișierele de configure" msgid "Another copy of OSMO is already running." msgstr "Altă copie de OSMO rulează deja" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Utilizarea simultană a 2 sau mai multe copii de OSMO poate determina " "pierderi de date." msgid "Do you really want to continue?" msgstr "Dorești să continui?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Mic" msgid "High" msgstr "Mare" msgid "Done!" msgstr "Gata!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contact exportat" msgstr[1] "contacte exportate" msgid "Cannot create file." msgstr "Nu se poate crea document." msgid "Select output file" msgstr "Selectează fila de ieșire" msgid "Export contacts" msgstr "Exportă contacte" msgid "Output format" msgstr "Format rezultat" msgid "Add header" msgstr "Adaugă antet" msgid "Fields to export" msgstr "Cîmpuri de export" msgid "All" msgstr "Toate" msgid "Invert" msgstr "Inversează" msgid "Select fields" msgstr "Selectează cîmpurile" msgid "Output filename" msgstr "Numele filei de ieșire" msgid "Export" msgstr "Exportă" msgid "Color of items that are due today" msgstr "Culoarea obiectelor scadente azi" msgid "Color of items that are due in the next 7 days" msgstr "Culoarea obiectelor scadente în 7 zile" msgid "Color of items that are past due" msgstr "Culoarea obiectelor scadente în..." msgid "Task info font" msgstr "Fontul sarcinii info" msgid "Show in bold tasks with high priority" msgstr "Arată boldat sarcinile cu prioritate mare" msgid "Hide completed tasks" msgstr "Ascunde sarcinile completate" msgid "Delete completed tasks without confirmation" msgstr "Șterge sarcinile completate fără confirmare" msgid "Add new task when double clicked on tasks list" msgstr "Adaugă noi sarcini cînd se dă 2click pe lista cu sarcini" msgid "Postpone time" msgstr "Timp amînat" msgid "minutes" msgstr "minute" msgid "0 for disable" msgstr "0 pentru dezactivare" msgid "Repeat sound alarm" msgstr "Repetă sunetul de alarmă" msgid "times" msgstr "ori" msgid "Global notification command" msgstr "Comanda de nofificare globală" msgid "Tasks options" msgstr "Opțiunile sarcinilor" msgid "Reminder options" msgstr "Opțiuni de amintire" msgid "Insert timeline" msgstr "Inserează linie de timp" msgid "Timeline" msgstr "Cronologie" msgid "From (hour)" msgstr "De la (ora)" msgid "Step (minutes)" msgstr "Pas (minute)" msgid "To (hour)" msgstr "La (ora)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Selectează măcar 1 zi cînd recurența e activată." msgid "Set time" msgstr "Potrivește timpul" msgid "Hour" msgstr "Ora" msgid "Minute" msgstr "Minut" msgid "Today" msgstr "Azi" msgid "Tomorrow" msgstr "Mîine" msgid "Selected task will be removed." msgstr "Sarcina selectată va fi îndepărtată." msgid "Select date and time" msgstr "Alege data și timpul" msgid "Enable sound notification" msgstr "Activează semnal sonor" #, fuzzy msgid "Enable notification dialog" msgstr "Activează semnal sonor" msgid "Alarm warning" msgstr "Avertizare de alarmă" msgid "Days" msgstr "Zile" msgid "Hours" msgstr "Zile" msgid "Minutes" msgstr "Minute" msgid "Alarm command" msgstr "Comandă de alarmă" msgid "Date period" msgstr "Perioda zilei" msgid "Months" msgstr "Luni" msgid "Repeat" msgstr "Repetă" msgid "Repeat in the following days" msgstr "Repetă în zilele următoare" msgid "Time period" msgstr "Perioada orei" msgid "Start" msgstr "Început" msgid "End" msgstr "Sfîrșit" msgid "Interval" msgstr "Intervat" msgid "Ignore alarm when task expired offline" msgstr "Ignoră alarma cînd sarcinile au expirat" msgid "Recurrent task" msgstr "Sarcină recurentă" msgid "Enable" msgstr "Activează" msgid "Edit task" msgstr "Editează sarcina" msgid "Add task" msgstr "Adaugă sarcină" msgid "Basic" msgstr "Primar" msgid "Advanced" msgstr "Avansat" # pentru traducerea fazelor lunii am folosit http://good-years.net/gythh/fazele-lunii # nu garantez corectitudinea denumirilor msgid "New Moon" msgstr "Lună nouă" msgid "Waxing Crescent Moon" msgstr "Lună crescătoare" msgid "Quarter Moon" msgstr "Lună la 1 pătrar" msgid "Waxing Gibbous Moon" msgstr "Lună convexă" msgid "Full Moon" msgstr "Lună plină" msgid "Waning Gibbous Moon" msgstr "Lună difuză" msgid "Last Quarter Moon" msgstr "Luna la ultimul pătrar" msgid "Waning Crescent Moon" msgstr "Lună calmă" msgid "Cannot create backup!" msgstr "Crearea siguranței imposibilă" msgid "Save backup" msgstr "Salvează copia" msgid "Password protection" msgstr "Protecția parolei" msgid "Enter password" msgstr "Scrie parola" msgid "Re-enter password" msgstr "Rescrie parola" msgid "Please enter the password" msgstr "Scrie parola, te rog!" msgid "Passwords do not match!" msgstr "Parole nepotrivite!" msgid "Backup file saved successfully!" msgstr "Documentul de siguranță a fost salvat!" msgid "Open backup file" msgstr "Deschide documentul de siguranță" msgid "Osmo backup files (*.bck)" msgstr "Documentele de siguranță Osmo (*.bkp)" msgid "This is not Osmo backup file" msgstr "Nu este copia de siguranță OSMO" msgid "Incorrect password!" msgstr "Parolă greșită" msgid "All your data will be replaced with backup file content." msgstr "Toate datele vor fi înlocuite de copia de siguranță." msgid "Osmo has to be restarted now..." msgstr "Osmo necesită reinițializare..." msgid "Please select address" msgstr "Selectează adresa" msgid "First name" msgstr "Nume" msgid "Last name" msgstr "Prenume" msgid "Second name" msgstr "Al doilea nume" msgid "Nickname" msgstr "Poreclă" msgid "Tags" msgstr "Etichete" msgid "Name day date" msgstr "Numește ziua datei" msgid "Home address" msgstr "Adresa de acasă" msgid "Home postcode" msgstr "Codul poștal de acasă" msgid "Home city" msgstr "Orașul natal" msgid "Home state" msgstr "Județul natal" msgid "Home country" msgstr "Țara de origine" msgid "Organization" msgstr "Organizația" msgid "Department" msgstr "Departament" msgid "Work address" msgstr "Adresa de serviciu" msgid "Work postcode" msgstr "Codul poștal de la serviciu" msgid "Work city" msgstr "Orașul serviciului" msgid "Work state" msgstr "Județul serviciului" msgid "Work country" msgstr "Țara serviciului" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefonul de acasă" msgid "Home phone 2" msgstr "Telefonul de acasă 2" msgid "Home phone 3" msgstr "Telefonul de acasă 3" msgid "Home phone 4" msgstr "Telefonul de acasă 4" msgid "Work phone" msgstr "Telefonul de serviciu" msgid "Work phone 2" msgstr "Telefonul de serviciu 2" msgid "Work phone 3" msgstr "Telefonul de serviciu 3" msgid "Work phone 4" msgstr "Telefonul de serviciu 4" msgid "Cell phone" msgstr "Telefon mobil" msgid "Cell phone 2" msgstr "Telefon mobil 2" msgid "Cell phone 3" msgstr "Telefon mobil 3" msgid "Cell phone 4" msgstr "Telefon mobil 4" msgid "E-Mail" msgstr "E-mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "WwW" msgid "WWW 2" msgstr "WwW 2" msgid "WWW 3" msgstr "WwW 3" msgid "WWW 4" msgstr "WwW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Fotografie" msgid "New contact" msgstr "Contact nou" msgid "Remove contact" msgstr "Elimină contact" msgid "Show birthdays" msgstr "Arată zile de naștere" msgid "Show contact location on the map" msgstr "Arată amplasarea contactului pe hartă" #, fuzzy msgid "Backup data" msgstr "de Rezervă" #, fuzzy msgid "Restore data" msgstr "Refă" msgid "About" msgstr "Despre" msgid "Clear" msgstr "Curăță" msgid "First Name" msgstr "Nume" msgid "Last Name" msgstr "Prenume" msgid "All fields" msgstr "Toate cîmpurile" msgid "Contact details" msgstr "Detaliile de contact" msgid "Close contact panel" msgstr "Închide panoul" msgid "The note has changed." msgstr "Însemnarea s-a modificat." msgid "Do you want to save it?" msgstr "Dorești salvarea ei?" #, fuzzy msgid "No URLs found in the selection..." msgstr "Nici o înregistrare în fișierul selectat." msgid "URLs will be opened in the default browser." msgstr "" #, fuzzy msgid "Do you want to continue?" msgstr "Dorești să continui?" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Cuvinte" msgid "Lines" msgstr "Rînduri" msgid "Characters" msgstr "Caractere" msgid "White characters" msgstr "Caractere goale" msgid "Bytes" msgstr "Biți" msgid "Document" msgstr "Document" msgid "Selection" msgstr "Selecție" msgid "Modified" msgstr "Modificat" msgid "New note" msgstr "Însemnare nouă" msgid "Edit note" msgstr "Editează" msgid "Delete note" msgstr "Șterge însemnare" msgid "Save note" msgstr "Salveză însemnare" msgid "Find" msgstr "Caută" msgid "Toggle spell checker" msgstr "Alterneză corector lingvistic" msgid "Bold" msgstr "Accentuat/Bold" msgid "Italic" msgstr "Cursiv" msgid "Underline" msgstr "Subliniere" msgid "Strikethrough" msgstr "Tăiere" msgid "Highlight" msgstr "Evidențiere" msgid "Clear attributes" msgstr "Anulează atributele" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Introdu data și timpul curent" msgid "Insert separator" msgstr "Introdu separator" msgid "Statistics" msgstr "Statistici" msgid "Close editor" msgstr "Închide editor" msgid "Note name" msgstr "Nume însemnare" msgid "Read-only" msgstr "Doar-citire" msgid "Line" msgstr "Rînd" msgid "Column" msgstr "Coloană" msgid "case sensitive" msgstr "caractere sensibile" msgid "Close find entry" msgstr "Închide cîmpul căutării" msgid "Edit entry" msgstr "Editează cîmpul" msgid "Remember cursor position" msgstr "Reține poziția cursorului" msgid "Selected note will be removed." msgstr "Însemnarea selectată va fi eliminată." msgid "No further data recovery will be possible." msgstr "Recuperarea datelor va fi imposibilă." msgid "Add note" msgstr "Adaugă însemnare" msgid "Plain" msgstr "Simplu" msgid "Encrypted" msgstr "Encriptat" msgid "Note type" msgstr "Tipul însemnării" msgid "Cannot open the note." msgstr "Nu se poate deschide însemnarea." msgid "encryption support is disabled" msgstr "suportul de encriptare e dezactivat." msgid "Authorization" msgstr "Autorizare" msgid "year" msgid_plural "years" msgstr[0] "an" msgstr[1] "ani" msgid "day" msgid_plural "days" msgstr[0] "zi" msgstr[1] "zile" msgid "hour" msgid_plural "hours" msgstr[0] "oră" msgstr[1] "ore" msgid "minute" msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minute" msgid "second" msgid_plural "seconds" msgstr[0] "secundă" msgstr[1] "secunde" msgid "or" msgstr "sau" msgid "rounded down" msgstr "rotunjire" msgid "week" msgid_plural "weeks" msgstr[0] "săptămînă" msgstr[1] "săptamîni" msgid "working day" msgid_plural "working days" msgstr[0] "zi de lucru" msgstr[1] "zile de lucru" msgid "time is ignored" msgstr "timpul este ignorat" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "zi de sfîrșit de săptămînă (sds)" msgstr[1] "zile de sds" msgid "This calculator only supports dates after year 1." msgstr "Acest calculator suportă doar datele de după anul 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "ziua sfs e ignorată" msgstr[1] "zilele sfs sunt ignorate" msgid "Date calculator" msgstr "Calculator de date" msgid "Current date" msgstr "Data curentă" msgid "Set current date" msgstr "Potrivește data curentă" msgid "Second" msgstr "Secundă" msgid "Set current time" msgstr "Potrivește timpul curent" msgid "Reset time" msgstr "Anulează timpul" msgid "First date and time" msgstr "Prima data și timpul" msgid "Second date and time" msgstr "A doua dată și timpul" msgid "Alternative time units" msgstr "Unități de timp alternative" msgid "Result" msgstr "Rezultat" msgid "Duration between two dates" msgstr "Durata dintre 2 date" msgid "Operation" msgstr "Operațiune" msgid "add" msgstr "adaugă" msgid "subtract" msgstr "scade" msgid "Date and time to add or subtract from" msgstr "Data și timpul adăugat sau scăzut din" msgid "Years" msgstr "Ani" msgid "Weeks" msgstr "Săptămîni" msgid "Seconds" msgstr "Secunde" msgid "Ignore weekend days" msgstr "Ignoră zilele sfd" msgid "Reset fields" msgstr "Anulează cîmpurile" msgid "Time to add or subtract" msgstr "Timpul de adăugat sau scăzut" msgid "Add to or subtract from a date" msgstr "Adaugă sau scade dintr-o dată" msgid "Cannot perform selected operation." msgstr "Nu se poate opera acțiunea aleasă" msgid "Task has been modified or removed." msgstr "Sarcina a fost modificată sau eliminată" msgid "Remind me later" msgstr "Amintește-mi mai tîrziu" msgid "Done" msgstr "Gata" msgid "Show task" msgstr "Arată sarcina" msgid "Alarm warning!" msgstr "Alertă!" msgid "postponed" msgstr "amînat" msgid "Day note" msgstr "Însemnarea zilei" msgid "Events" msgstr "Evenimente" msgid "Event" msgstr "Eveniment" msgid "Task" msgstr "Sarcină" msgid "Birthday" msgstr "Zi de naștere" msgid "Show Osmo" msgstr "Arată Osmo" msgid "event" msgid_plural "events" msgstr[0] "eveniment" msgstr[1] "evenimente" msgid "No valid calendars defined" msgstr "Nici un calendar valid definit" msgid "iCalendar events" msgstr "evenimente iCalendar" msgid "Time" msgstr "Timpul" msgid "The list will be cleared and all entries will be lost." msgstr "Lista va fi curățată și toate informațiile vor fi pierdute." msgid "event exported" msgid_plural "events exported" msgstr[0] "eveniment exportat" msgstr[1] "evenimente exportate" msgid "iCalendar export" msgstr "export de iCalendar" msgid "Day Selector" msgstr "Selectorul zilei" msgid "Use date period" msgstr "Folosește perioada" msgid "_Add" msgstr "" #, fuzzy msgid "_Clear" msgstr "Curăță" #, fuzzy msgid "_Remove" msgstr "Elimină" msgid "No tasks with defined date found." msgstr "Nici o sarcină cu dată definită gasită" msgid "Save tasks" msgstr "Salvează sarcini" msgid "tasks exported" msgstr "sarcini exportate" msgid "was born" msgstr "a fost născut" msgid "year old" msgid_plural "years old" msgstr[0] "ani" msgstr[1] "ani" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "zi pînă la finalul anului" msgstr[1] "zile pînă la finalul anului" msgid "the last day of the year" msgstr "ultima zi din an" msgid "Day tasks" msgstr "Sarcinile zilei" msgid "Selected day note will be removed." msgstr "Zilele selectate vor fi eliminate" msgid "Continue?" msgstr "Continuă?" msgid "Previous year" msgstr "Anul precedent" msgid "Previous month" msgstr "Luna precendtă" msgid "Previous day" msgstr "Ziua precedentă" msgid "Next day" msgstr "Ziua următoare" msgid "Next month" msgstr "Luna următoare" msgid "Next year" msgstr "Anul următor" msgid "Full-year calendar" msgstr "Calendar anual complet" msgid "Print calendar" msgstr "Imprimă calendarul" msgid "Toggle day note panel" msgstr "Alternează secțiunea cu însemnările zilei" msgid "Select day color" msgstr "Selecteaza culoarea zilei" msgid "Browse notes" msgstr "Răsfoiește însemnările" msgid "Browse iCal events" msgstr "Răsfoiește evenimente iCal" msgid "Export to iCal file" msgstr "Exportă către documentul iCal" msgid "Previous and next month" msgstr "Luna precedentă și următoare" msgid "Close note panel" msgstr "Închide secțiunea de însemnări" msgid "Clear text" msgstr "Curăță text" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Alege culoare" msgid "Name day" msgstr "Nume zi" msgid "Printing properties" msgstr "Proprietăți de printare" msgid "Month name" msgstr "Numele lunii" msgid "Day name" msgstr "Numele zi" msgid "Fonts" msgstr "Typefaceuri" msgid "Birthdays" msgstr "Zile de naștere" msgid "Namedays" msgstr "Numele zilelor" msgid "Visible events" msgstr "Evenimente vizibile" msgid "Padding" msgstr "Căptușeală" msgid "Event maximum length" msgstr "Lungimea maximă a evenimentului" msgid "Page orientation:" msgstr "Orientarea paginii:" msgid "Portrait" msgstr "Portret" msgid "Landscape" msgstr "Orizontal" #, fuzzy msgid "Disable background colors" msgstr "Culoarea antetului" msgid "Leap year" msgstr "An bisect" msgid "Yes" msgstr "Da" msgid "No" msgstr "Nu" msgid "Chinese year animal" msgstr "Animal din anul chinez" msgid "Number of days" msgstr "Număr de zile" msgid "Number of weeks" msgstr "Număr de săptămîni" msgid "Number of weekend days" msgstr "Număr de zile de sfs" msgid "Year info" msgstr "Informații anuale" msgid "Alternative view" msgstr "Vedere alternativă" msgid "Started" msgstr "Pornit" msgid "Finished" msgstr "Terminat" msgid "New task" msgstr "Sarcină nouă" msgid "Remove task" msgstr "Îndepărtează sarcina" msgid "Change due date to previous date" msgstr "Modifică data scadentă cu data anterioară" msgid "Change due date to next date" msgstr "Modifică data scadentă cu data următoare" msgid "Export tasks" msgstr "Exportă sarcini" msgid "Print visible tasks list" msgstr "Printează lista sarcinilor vizibile" msgid "Task details" msgstr "Detaliile sarcinii" msgid "Close description panel" msgstr "Închide panoul descriptiv" msgid "Ctrl+PageUp" msgstr "Ctrl+PaginăSus" msgid "switch to previous tab" msgstr "mută la fila precedentă" msgid "Ctrl+PageDn" msgstr "Ctrl+PaginăJos" #, fuzzy msgid "switch to next tab" msgstr "mută la următoarea filă" msgid "switch to selected page" msgstr "mută la pagina aleasă" msgid "show options window" msgstr "arată fereastra de opțiuni" msgid "show about window" msgstr "arată fereastra despre" msgid "toggle fullscreen mode" msgstr "comută în modul complet" msgid "PageUp/PageDn" msgstr "PaginăSus/PaginăJos" msgid "switch page in options and about tab" msgstr "mută pagina la fila de opțiuni si despre" msgid "exit" msgstr "termină" msgid "Space" msgstr "Spațiu" msgid "select current date" msgstr "alege data curentă" msgid "Ctrl+Space" msgstr "Ctrl+Spațiu" msgid "toggle personal data visibility" msgstr "comută vizibilitatea datelor personale" msgid "Arrows" msgstr "Săgeți" msgid "change day" msgstr "modifică ziua" msgid "Ctrl+Up/Down" msgstr "Ctrl+Sus/Jos" msgid "scroll the contents in the day info panel" msgstr "derulează conținutul din secțiunea info" msgid "change month" msgstr "modifică luna" msgid "Home/End" msgstr "Acasă/Final" msgid "change year" msgstr "modifică anul" msgid "toggle calendars for the previous and next month" msgstr "comută calendare pentru luna precedentă și cea următoare" msgid "day notes browser" msgstr "inspectarea notițelor zilnice " msgid "assign background color to day note" msgstr "alocă culoare de fundal pentru notița zilei" msgid "date calculator" msgstr "calculator de zile" msgid "show full-year calendar" msgstr "redă calendarul pe tot anul" msgid "jump to date" msgstr "treci la zi" msgid "Delete" msgstr "Șterge" msgid "remove day note" msgstr "elimină notița zilei" msgid "Alt+Arrows" msgstr "Alt+Săgeți" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "închide editorul" msgid "toggle bold" msgstr "comută accentuat/bold" msgid "toggle italic" msgstr "comută cursiv" msgid "toggle underline" msgstr "comută subliniere" msgid "toggle strikethrough" msgstr "comută tăiat" msgid "toggle highlight" msgstr "comută evidențiere" msgid "Arrows Up/Down" msgstr "Săgeată Sus/Jos" msgid "toggle alternative view" msgstr "comută vizualizare alternativă" msgid "year info" msgstr "informații anuale" msgid "set current year" msgstr "stabiliește anul curent" msgid "close full-year calendar" msgstr "închide calendarul pe un an complet" msgid "Alt+a, Insert" msgstr "Alt+a, Introdu" msgid "add task" msgstr "adaugă sarcină" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "modifică sarcina" msgid "Alt+r, Delete" msgstr "Atl+r, Șterge/Delete" msgid "remove task" msgstr "elimină sarcina" msgid "toggle hidden tasks" msgstr "alternează sarcinile ascunse" msgid "activate search field" msgstr "activează cîmpul de căutare" msgid "Left, Right" msgstr "Left, Right" msgid "change category filter" msgstr "schimbă filtrul de categorii" msgid "close task info panel" msgstr "închide secțiunea de informații cu sarcini" msgid "Insert" msgstr "Introdu" msgid "add contact" msgstr "adaugă contact" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "modifică contactul" msgid "remove contact" msgstr "elimină contactul" msgid "change search mode" msgstr "schimbă modul de căutare" msgid "close contact details panel" msgstr "închide secțiunea de detalii de contact" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "deschide însemnare" msgid "add note" msgstr "adaugă însemnare" msgid "remove note" msgstr "elimină însemnare" msgid "edit note name and category" msgstr "modifică numele însemnării și categoria" msgid "close note editor" msgstr "închide editorul de însemnări" msgid "save note" msgstr "salvează însemnarea" msgid "find text" msgstr "caută text" msgid "clear selection attributes" msgstr "șterge atributele selecției" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO a fost proiectat pentru a se mula preferințelor utilizatorului, a.î. " "sunt multe scurtături de taste. Lista completă:" msgid "Note editor" msgstr "Editor de însemnări" msgid "Selector" msgstr "Selector" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Organizator personal" msgid "compiled on" msgstr "compilat pe" msgid "Programming" msgstr "Programare" msgid "Graphics" msgstr "Grafică" msgid "Contributors" msgstr "Contributori" msgid "Translators" msgstr "Traducători" msgid "Mailing lists" msgstr "Liste de mesaje" msgid "Bug tracker" msgstr "Vînător de erori" msgid "Feature requests" msgstr "Solicită funcții" msgid "Available modules" msgstr "Module disponibile" msgid "Compiled-in features" msgstr "Funcții procesate" msgid "iCalendar support" msgstr "suport de iCalendar" msgid "Encrypted notes support" msgstr "Suport de însemnări encriptate" msgid "Backup support" msgstr "Suport de sigurantă" msgid "Printing support" msgstr "Suport de printare" msgid "Spell checker support" msgstr "Suport gramatical" msgid "version" msgstr "versiune" #, fuzzy msgid "GIT version" msgstr "versiune" msgid "Key shortcuts" msgstr "Scurtături de taste" msgid "License" msgstr "Licența" #~ msgid "handy personal organizer" #~ msgstr "organizator personal comod" #~ msgid "SVN revision" #~ msgstr "SVN revizuire" #~ msgid "Add" #~ msgstr "Adaugă" #~ msgid "Browse" #~ msgstr "Răsfoiește" #~ msgid "Remove note" #~ msgstr "Elimină însemnare" #~ msgid "Use default stock icons" #~ msgstr "Utilizează simbolurile grafice implicite" #~ msgid "Draw rows in alternating colors" #~ msgstr "Trasează rînduri colorate alternativ" #~ msgid "Blink on events" #~ msgstr "Clipește la evenimente" #~ msgid "Edit" #~ msgstr "Editează" #~ msgid "Go Down" #~ msgstr "În jos" #~ msgid "Select date" #~ msgstr "Alege data" #~ msgid "Select font" #~ msgstr "Alege font" #~ msgid "Calculator" #~ msgstr "Calculator" #~ msgid "Edit day note" #~ msgstr "Editează însemnarea zi" #~ msgid "Display full-year calendar" #~ msgstr "Afișează calendarul pe tot anul" #~ msgid "Help" #~ msgstr "Ajutor" #~ msgid "Invalid item" #~ msgstr "Termen incorect" #~ msgid "Valid item" #~ msgstr "Termen corect" #~ msgid "Import tasks" #~ msgstr "Importă sarcini" #~ msgid "Change to previous date" #~ msgstr "Modifică cu data anterioară" #~ msgid "Change to next date" #~ msgstr "Modifică cu data următoare" #~ msgid "Print" #~ msgstr "Printează" #~ msgid "Normal" #~ msgstr "Normal" #~ msgid "Recurrent" #~ msgstr "Recurent" #~ msgid "Select and show first item after search" #~ msgstr "Alege și arată primul obiect după căutare" #~ msgid "Order" #~ msgstr "Sortează" #~ msgid "Mode" #~ msgstr "Tip" #~ msgid "Ascending" #~ msgstr "Crescător" #~ msgid "Descending" #~ msgstr "Descrescător" #~ msgid "Sorting" #~ msgstr "Triere" #~ msgid "Contact map location" #~ msgstr "Contactează localizarea hărții" osmo-0.4.2/po/ur_PK.mo0000664000175000017500000012332213204320602011403 00000000000000m<)6 667 7 ,7.77f7o7x77777 7 77 77 7 7 8 888 W8 b8p8 888(8 88 89 999&%9$L9 q9999999 99 9::::": 5: B:N:*T::: :::::::";8; J;T; c;n; w; ; ; ;; ; ;;<&<-<2<8< I<T<h< <<<<<.<!< ===L=S=Z= o={== = === = = = = = =>> /> => J> W>d> u>>%>> > >>> >? ?? #?0?9?B? R? \? g?q?v??+? ? ? ???@!@9@B@F@K@Q@X@a@|@@@@ @!@ @ @ @ @ @AAAA8ALA!fAAA AA AAAAAAB B BB0BEBLBSB cBpBBBB BBBBBBB BB B CCCC -C 9C CCMC`CgCoCCCCCCCCCCCC CC C D D D *D 7D DD QD _DjD sD~DDDD DD DDDDD&DDE'E.E >EJE^E cEoE~EEEEEEEEE E E FF F'F 9F FFPF WFaF fFrFvF|FFFF FF FF FFFF FFF GG G"G )G4G9G BGPG_GhG qG}GGG G GGGGG*GH"H!4HVHqHuHzH H H H HH HHHH7H0IGIoWII II IIJ(1JZJ jJxJJJJ JJJJJJ J K KKK4K:JKKKK K KK KK K LL5LILZL cL oL|LLLLL LLLLL#LM/M@M OM[MbMM M MMM M M"M M MNNNN 2N>NFNVNfN wNNN NN N!N"NO=OLOdOO O OO-OOPP&P/P 5P?P NP \P }PP%PP P PP Q QQ!1QJSQQQ QQQQQQRR RR (R6RSR[R bR nR|RR R"RRR R RR3R3S0SS6SSSS1ST+T1T 6T BTNTfT oTyTTTTTT TT TTTT#U8U>UDUMUSU#cUUUUUUUUUUUU V V#V 8VEVXV^VoVuV zV V V V V V V V V V VV WWW W$W;WTWjW nWzWW#WWW W WW X X(X DXQXjX|X XX"XXXX Y&Y*AY lYyY YY Y YYY YZZ )Z4Z:ZKZ\ZlZ ~ZZZ Z ZZ ZZ ZZZ Z Z [ [)"[L[[[o[[[[[$[[[\.\=\V\f\l\r\ \0\\\ \\]/]@]H] Q]\](u]] ] ]]]]^_____M `W`p`1``````aa3aDaMacauaa`a a bb 'b'5b]bCsb b b#b bc cc7)c@ac ccIcd ,d 9d FdSdkdddddddde e3"e Veaeeee-e*e*f(?f?hf(f ffff fgg(gE8gG~gg<gh /h:hAhHhch(zh'hh%h i*i"1iITiAi:ij2j9jBj\jej jjjjj j j j j jkk!9k[kmkkkk k kBk"l;lOlcllllllll mm)mTe*,W ^i /܂   '702hj>ETd!ÄՄ/2L it ,Ņ &37Z<!φ"/F2U'ɇ 5$Zu #؈ 7W,r$ĉ) ?*Ejn(:;c9ً ['o#&!(H8b#Mٍ9'ay-ǎݎ*3~R я܏,' Ta8А +BIP.f͑ AG:<g$'LUj^2ɓ *- Xfx}(. ".1G`S  +2=p̖ 5Th"}+ .ATg|˜ ט #A)_(ę,@%Io,К*<S/l5K OW ƜМ<m94ĝ1DbQz ̞ٞ'6 L"Wz "ݟ  " BMafx ˠJe){#'ɡ./ PG[&(ʢ3''O*i ) ΣX+H%t0##2;S?e3% Yg#Ds/[11!h,bYz:m^_@@<,_zgG+hvN3=NS8{ #/_jC|3)IZh f$QK} R= 9nkMFTSE;;y9n* HpJLN8i>b e^5(&B Jgs +7k<0l7#"#%%rFV3c@zF0E-o8w]YPpD.c?\BubOxdIfQj[dW({D(jt`s!'mE>atW/pXwvkWUCQ|wOi?`m:ZeGRM'*[=H*!gOAUK  Td;SB]>-L%$ }cT 2<) i+)Y0J-u {6l]5"A5yya6 A}$, 2X~P"Z~f\|reLIUVl2^K?&` ~xXPuC4&H\xq46rMR Vv4Gn't.qao1:oq.790 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDisabledDo you really want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet absolute path for settings and data filesSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo 0.2.10 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2010-04-07 00:59+0500 Last-Translator: Muhammad Ali Makki Language-Team: urducoder.com Language: ur_PK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; 0 برائے معطلیآسان ذاتی منظمبابترابطہ شامل کریںسرساز شامل کریںمہم فہرست میں دہرے کلک پر نئی مہم شامل کریںنوٹ شامل کریںمہم شامل کریںتاریخ میں شامل یا حاصل کریںاضافی معلوماتپتہاعلیعمرالارم کمانڈالارم انتباہالارم انتباہ!الگورتھمتمامتمام فائلیںتمام حلقےتمام عناصرتمام نوٹسآپ کا تمام ڈیٹا بیک اپ فائل کے مواد سے بدل دیا جائے گا.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, Deleteمتبادل وقت کی اکائیاںمتبادل منظراوسمو کا دوسرا نسخہ پہلے ہی چل رہا ہے.مواجہبرج دلوکیا آپ پُریقین ہیں؟برج حملتیرتیرتیر اوپر/نیچےدن نوٹس براؤزر میں صعودی ترتیبکم سے کم ایک ماڈیول ظاہر ہونا چاہیے.منظوریدستیاب ماڈیولبیک اپ کی فائل کامیابی سے محفوظ کردی گئی!بیک اپ معاونتبنیادیبہترینسالگرہسالگرہ تاریخسالگرہ مارکر رنگسالگرہیںسالگرہیں فہرستبلاگچوڑانیچےiCal واقعات دیکھیںنوٹس دیکھیںبگ ٹریکربائٹسCSV (کوما-مقسم قدر) فائلیں (*.csv)تقویمتقویم فائلیں (*.ics)تقویم فونٹتقویم نوٹسبرج سرطانبیک اپ نہیں بنایا جاسکتا!فائل نہیں بنائی جاسکتی.فائل نہیں کھولی جاسکتی.نوٹ نہیں کھولا جاسکتا.منتخب کردہ عمل ادا نہیں کیا جاسکتا.فائل نہیں پڑھی جاسکتی.برج جدیحساسزمرےزمرہسیل فونسیل فون 2سیل فون 3سیل فون 4باقی تاریخ کو اگلی تاریخ پر تبدیل کریںباقی تاریخ کو سابقہ تاریخ پر تبدیل کریںکیریکٹرزآخری بار چلانے سے واقعات چیک کریںچینی سال جانوردائریشہرصافاوصاف صاف کریںمتن صاف کریںرابطے کا پینل بند کریںتفصیلات پینل بند کریںمدون بند کریںاندراج تلاش بند کریںنوٹ پینل بند کریںرنگرابطے کے ٹیگ کا رنگان عناصر کا رنگ جو اگلے 7 دنوں تک باقی ہیںان عناصر کا رنگ جو آج کے لیے باقی ہیںان عناصر کا رنگ جن کا وقت گزر گیاروابط کے رنگرنگکالمتالیفی خوبیاںدباؤرابطے کی تفصیلاترابطےجاری رہیں؟معاونینمُلکبنایا گیاCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/Downحالیہ تاریخحالیہ دن مارکرحالیہ دن مارکر رنگحالیہ ماہحالیہ وقتحالیہ سالکرسر کا رنگکرسر کی کثافتDD-MM-YYYYتاریختاریخ اور وقت کی شمولیت یا اس سے حصولتاریخ شُمار کُنندہتاریخ فونٹتاریخ ہیئتتاریخ ہیئت ساختتاریخ سرساز ہیئتتاریخ مدتدندن منتخب کاردن زمرہ جاتدن کا زمرہدن کا نامدن نوٹدن نوٹ مارکردن کے نوٹسدن کا عدددن کی مہمدنسالگرہ میں دنحذفتکمیل شدہ مہمیں بغیر تصدیق کے حذف کردیںنوٹ حذف کریںمحکمہتفصیلروابط میں خط کشیدگی معطل کریںمعطلکیا آپ واقعی آگے بڑھنا چاہتے ہیں؟کیا آپ اسے محفوظ کرنا چاہتے ہیں؟دستاویزکُتاتکمیل شدہہوگیا!اژدہاباقی تاریخدو تاریخوں کے درمیان مدتبرقی پتہبرقی پتہ 2برقی پتہ 3برقی پتہ 4ای میل موکلغلطی: کانفگ (config) فائل نہیں بنائی جاسکتیزمرہ مدون کریںرابطہ مدون کریںاندراج مدون کریںنوٹ مدون کریںمہم مدون کریںمدونبیضویفعال کریںاضافی تقویمیں فعال کریںبلاک کرسر فعال کریںصوتی اطلاع فعال کریںدن کے نوٹس میں املاء کی پڑتال فعال کریںنظام ٹرے فعال کریںٹول ٹِپ فعال کریںرمز شدہرمز شدہ نوٹس معاونترمز نگاریآخرانٹرپاس ورڈ داخل کریںغلطیطباعت کی غلطیEscواقعہواقعہ مارکرواقعات مارکر رنگواقعہ کا زیادہ سے زادہ طولواقعاتبرآمدرابطے برآمد کریںمہم برآمد کریںiCal فائل میں برآمد کریںتیزفیکسخوبیوں کی درخواستیںحلقہ نوعیتحلقے برائے برآمدفائلفائل کا نامفلٹرتلاشتکمیل یافتہپہلا نامپہلی تاریخ اور وقتپہلا نامفونٹ حجمفونٹپرندہآزاد-دستی حلقہاز (گھنٹہ)مکمل چاندپوری تاریخپورے سال کی تقویمبرج جوزاعامعالمگیر اطلاعی کمانڈاچھاترسیمیاتگروپگروپخرگوشہیشنگمعاونچھپائیںتکمیل شدہ مہم چھپائیںگروپ کالم چھپائیںبالانشان زدہگھرگھر کا پتہشہرملکگھر کا فونگھر کا فون 2گھر کا فون 3گھر کا فون 4گھر کا پوسٹ کوڈصوبہگھر/آخرافقیگھوڑاگھنٹہگھنٹےاے او ایل پیغام رساںگاڈو-گادو پیغام رساںآئی سی کیو پیغام رساںجبر پیغام رساںایم ایس این پیغام رساںسکائپی پیغام رساںٹلن پیغام رساںیاہو پیغام رساںجب مہم آف لائن اختتام پذیر ہو الارم نظر انداز کریںدن نوٹ واقعات نظر انداز کریںآخرِ ہفتہ کے دنوں کو نظر انداز کریںدرآمدرابطے درآمد کریںدرآمد نوعیتغلط پاس ورڈ!معلوماتمعلوماتماداخل فائل نامداخل کریںحالیہ تاریخ اور وقت شامل کریںجداگار شامل کریںٹائم لائن شامل کریںانٹرنیٹوقفہپلٹیںٹیڑھاعنصر کا فونٹ حجمتاریخ پر جائیںکلید اختصارلینڈسکیپبڑاآخری نامآخری چوتھائی چاندآخری تبدیلیاںآخری نامخاکہلیپ کا سالبائیںبائیں، دائیںبرج اسدبرج میزاناجازہلکیرلکیریںپستMM-DD-YYYYMM/DD/YYمیلنگ لسٹنشاننشان زد دندرمیانہمنٹمنٹمتفرقتبدیل شدہICAL پیرامیٹر تبدیل کریںبندرمہینہماہ ناممہینےچاند کا دورانیہنامدن نامنام دن تاریخفونٹ حجم نامدنوں کے نامنیا چاندنیا رابطہنیا نوٹنئی مہماگلا دناگلا ماہاگلا سالعرفیتنہیںکوئی سالگرہ متعین نہیںبلا تاریخمزید ڈیٹا کی بازیافتگی ممکن نہیں ہوگی.کوئی ماہ کی تبدیلی نہیںمنتخب کردہ فائل میں کوئی ریکارڈ نہیں پایا گیا.متعین کردہ تاریخ میں کوئی مہمیں نہیں پائی گئیں.کوئی موزوں تقویم متعین نہیں ہےنہیں.کچھ نہیںنوٹنوٹ مدوننوٹ کا فونٹنوٹ کا نامنوٹ کی نوعیتنوٹسنوٹس اختیاراتدرآمد کرنے کے لیے کچھ نہیں ہے.فی اندراج حلقوں کی تعداددنوں کی تعدادآئندہ واقعات کو چیک کرنے کے لیے دنوں کی تعداد (طے شدہ: 0)آخرِ ہفتہ کے دنوں کی تعدادہفتوں کی تعداداوسمو صارف کی سہولت کو مدِ نظر رکھ کر تیار کیا گیا ہے، چنانچہ اس کے بہت سارے کلیدی اختصارات (شارٹ کٹ) ہیں. ذیل میں ان اختصارات کی پوری فہرست ہے:بیک اپ فائل کھولیںعملاختیاراتادارہاوسمو بیک اپ فائلیں (*.bck)اوسمو کو پھر سے چلانے کی ضرورت ہے...تبدیلیوں کی اثر پذیری کے لیے اوسمو کو دوبارہ چلانا ہوگا.ماحاصل فائل نامماحاصل ہیئتلوکل ترتیاب پر فائق ہوںبیلپیڈنگصفحہ کی رُخ بندیPageUp/PageDnپاس ورڈ تحفظپاس ورڈ مطابقت نہیں رکھتا!ذاتیفونتصویرتصویر کا حجمخنزیربرج حوتسادہبراہ مہربانی پاس ورڈ داخل کریںبراہ مہربانی پتہ منتخب کریںبراہ مہربانی کم سے کم ایک دن منتخب کریں جب ری کرنسی فعال ہو.براہ مہربانی پہلے فائل منتخب کریں.پورٹریٹپوسٹ کوڈموخر کرنے کا وقتترجیحاتسابقہ اور اگلا ماہسابقہ دنسابقہ ماہسابقہ سالتقویم طبع کریںمرئی مہم کی فہرست طبع کریںطباعت خصوصیاتطباعت کی معاونتاہمیتپروگرامنگچوتھائی چاندسوالبرخاستچوہاقدرپاس ورڈ دوبارہ داخل کریںفقط-برائے-پڑھائیریکارڈباز گرد مہمکرسر کی جگہ یاد رکھیںآخری منتخب کردہ صفحہ یاد رکھیںآخری منتخب کردہ زمرے کو یاد رکھیںبعد میں یاد دلائیںیاد دہانی اختیاراترابطہ حذف کریںمہم حذف کریںدہرائیںمندرجہ ذیل دنوں میں دہرائیںالارم کی آواز دہرائیںحلقے صاف کریںوقت صاف کریںنتیجہدائیںبرج قوسبیک اپ محفوظ کریںہر تبدیلی پر تاریخ محفوظ کریںنوٹ محفوظ کریںمہم محفوظ کریںبرج عقربتلاشسیکنڈدوسری تاریخ اور وقتدوسرا نامسیکنڈCSV فائل منتخب کریںICS فائل منتخب کریںفونٹ منتخب کریں...رنگ منتخب کریںتاریخ اور وقت منتخب کریںدن کا رنگ منتخب کریںحلقے منتخب کریںماحاصل فائل منتخب کریںتصویر منتخب کریںمنتخب کردہ رابطہ حذف کردیا جائے گا.منتخب کردہ دن کا نوٹ حذف کردیا جائے گا.منتخب کردہ فائل پہلے ہی موجود ہے! کیا اس کے اوپر لکھ دیا جائے؟منتخب کردہ ماہماہ اور سال منتخب کریںمنتخب کردہ نوٹ حذف کردیا جائے گا.منتخب کردہ مہم حذف کردی جائے گی.منتخب کردہ سالانتخابمنتخب کارترتیبات اور ڈیٹا فائلوں کے لیے مطلق پاتھ مرتب کریںحالیہ تاریخ مرتب کریںحالیہ وقت مرتب کریںطے شدہ ہیئت مرتب کریںوقت متعین کریںبھیڑاوسمو کو ظاہر کریںسالگرہیں دکھائیںتقویم دکھائیںنقشے پر رابطہ کا مقام ظاہر کریںرابطے دکھائیںدنوں کے نام دکھائیںچوڑی مہموں میں زیادہ اہمیت کے ساتھ دکھائیںدن کے معلوماتی پینل میں دکھائیںنوٹس دکھائیںاختیارات دکھائیںچوٹی تقویم دریچہ دکھائیںمہم دکھائیںمہم دکھائیںہفتے کے اعداد ظاہر کریںمکمل-سال تقویم میں سادہ منظرایک ہی وقت میں اوسمو کے دو نسخوں کے استعمال سے ڈیٹا کا نقصان ہوسکتا ہے.چھوٹاسانپموسیقی سازندہخلاءاملاء پڑتال زباناملاء کی پڑتال کی معاونتابتداءمنمائز شروع کریںشروع کردہحالتشُماریاتمرحلہ (منٹ)خط مقطوعگزشتہ دن اور نوٹس خط مقطوع کریںخلاصہنحونظام ٹرےٹیبز کا مقامٹیگمہممہم تفصیلاتمہم تبدیل یا حذف کردی گئی.مہم معلومات فونٹمہممہم فہرستمہم کے اختیاراتبرج ثور%s نمونہ ای میل پتہ سے بدل دیا جائے گا%s نمونہ صوتی فائل نام سے بدل دیا جائے گا%s نمونہ ویب پتہ سے بدل دیا جائے گافہرست صاف کردی جائے گی اور تمام اندراجات ضائع ہوجائیں گے.نوٹ تبدیل کردیا گیا.گھناپتلایہ شُمار کُنندہ صرف 1 سال بعد کی تاریخوں کی معاونت رکھتا ہے.یہ اوسمو بیک اپ فائل نہیں ہےشیروقتوقت کی ہیئتوقت مدتوقت برائے اضافہ یا حصولخطِ وقتتا (گھنٹہ)آجآج کا فاصلہدن نوٹ پینل معکوس کریںاملاء کی پڑتال معکوس کریںکلاوپرمترجمیننوعیتخد کشیدہنامعلومتاریخ کی مدت استعمال کریںہیڈر کے طور پر پہلا ریکارڈ استعمال کریںتاریخ اور وقت کے لیے نظام کی ہیئت استعمال کریںموزوںقدرعمودیبرج عذراءمرئی کالمسالگرہ براؤزر میں مرئی کالممرئی واقعاتویب سائٹویب سائٹ 2ویب سائٹ 3ویب سائٹ 4ماند ہلال چاندماند ابھرا چاندانتباہلہربڑھتا ہلال چاندبڑھتا ابھرا چاندویب براؤزرہفتے کا عددہفتہ پیر کو شروع ہوآخر ہفتہ کے دنآخرِ ہفتہ کے دنوں کا رنگہفتےسفید کیریکٹرزالفاظکامکام کا پتہکام کا شہرکام کا ملککام کا فونکام کا فون 2کام کا فون 3کام کا فون 4کام کا پوسٹ کوڈکام کا صوبہYYYY-DD-MMYYYY-MM-DDسالسال کی تفصیلاتسالہاںعلاقہ بروج کی علامتمختصر ماہ کا ناممختصر ہفتے کے دن کا نامتلاش کے حلقے فعال کریںشامل کریںرابطہ شامل کریںنوٹ شامل کریںمہم شامل کریںدن نوٹ کو پس منظر رنگ دیںحساسزمرہ فلٹر تبدیل کریںدن تبدیل کریںماہ تبدیل کریںتلاش کا انداز تبدیل کریںسال تبدیل کریںانتخاب کے خواص صاف کریںرابطے کی تفصیلات کا پینل بند کریںمدون بند کریںپورے سال کی تقویم بند کریںنوٹ مدون بند کریںمہم کا معلوماتی پینل بند کریںتالیف کیا گیارابطہ شامل کردیا گیارابطے شامل کردیے گئےرابطہ برآمد کردیا گیارابطے برآمد کردیے گئےتاریخ شمار کنندہدندندن نوٹس براؤزرماہ کا دنمہینے کا دن ابتدائی صفروں کے بغیردن سال کے ختم ہونے میں باقی ہےدن سال کے ختم ہونے میں باقی ہیںرابطہ مدون کریںنوٹ کا نام اور زمرہ مدون کریںمہم مدون کریںرمز نگاری کی معاونت معطل ہےاندراجاندراجاتواقعہواقعاتواقعہ برآمد کردیا گیاواقعات برآمد کردیے گئےبرخاستمتن تلاش کریںماہ کا پورا ناممکمل ہفتے کے دن کا نامگھنٹہگھنٹےگھنٹےآئی کیلینڈر واقعاتآئی کلینڈر برآمدآئی کلینڈر فائلیںآئی کیلینڈر معاونتتاریخ پر جائیںمنٹمنٹمنٹماہمہینےکوئی اندارجات نہیںبرائےنوٹ کھولیںیامؤخر کردہرابطہ حذف کریںدن کا نوٹ حذف کریںنوٹ حذف کریںمہم حذف کریںراؤنڈ کردیے گئےنوٹ محفوظ کریںدن کے معلوماتی پینل کے مواد کو سکرول کریںسیکنڈسیکنڈحالیہ تاریخ منتخب کریںحالیہ سال مرتب کریںبابت کا دریچہ دکھائیںپورے سال کی تقویم دکھائیںاختیارات کا دریچہ دکھائیںتفریقاختیارات اور بابت ٹیب میں صفحہ کو بدلیںاگلے ٹیب پر منتقل ہوںسابقہ ٹیب پر منتقل ہوںمنتخب کردہ صفحہ پر منتقل ہوںمہمیں برآمد کردی گئیںسال کا آخری دنوقت نظر انداز کردیا گیااوقاتآجمتبادل منظر معکوس کریںچوڑائی معکوس کریںگزشتہ اور آئندہ ماہ کی تقویم کو ظاہر یا غائب کریںپوشیدہ مہمیں معکوس کریںنشان زدگی معکوس کریںٹیڑھا معکوس کریںذاتی ڈیٹا روئیت معکوس کریںخط مقطوع منعکس کریںخط کشیدہ معکوس کریںنسخہتاریخ پیدائشہفتہہفتےاختتام ہفتہ کا دناختتام ہفتے کے دنآخرِ ہفتہ کا دن نظر انداز کردیا گیاآخرِ ہفتہ کے دن نظر انداز کردیے گئےکام کرنے کا دنکام کرنے کے دنسالسالسال کی معلوماتسال پراناسال پرانےسال بمع صدیسال بغیر صدیosmo-0.4.2/po/sv.po0000664000175000017500000010177613204320601011026 00000000000000# Swedish translation of Osmo # This file is distributed under the same license as the Osmo package. # # msgid "" msgstr "" "Project-Id-Version: osmo svn version 664\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2009-01-23 02:04+0100\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv\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" msgid "Colors" msgstr "Färger" msgid "Color of contact tags" msgstr "Kontakttaggarnas färg" msgid "Color of links" msgstr "Länkarnas färg" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Fotografistorlek" msgid "Small" msgstr "Liten" msgid "Medium" msgstr "Mellan" msgid "Large" msgstr "Stor" msgid "Hide group column" msgstr "Dölj gruppkolumn" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Ålder" msgid "Birthday date" msgstr "Födelsedagsdatum" msgid "Zodiac sign" msgstr "Stjärntecken" msgid "Contacts" msgstr "Kontakter" msgid "Appearance" msgstr "Utseende" msgid "Miscellaneous" msgstr "Diverse" msgid "Groups" msgstr "Grupper" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Algoritm" msgid "Hashing" msgstr "Hashning" msgid "Compression" msgstr "Komprimering" msgid "Ratio" msgstr "Förhållande" msgid "Fast" msgstr "Snabb" msgid "Good" msgstr "Bra" msgid "Best" msgstr "Bäst" msgid "Type" msgstr "Typ" msgid "Category" msgstr "Kategori" msgid "Last changes" msgstr "Senaste ändringar" msgid "Created" msgstr "Skapad" msgid "Remember the last selected category" msgstr "Kom ihåg senast valda kategori" msgid "Use system format for date and time" msgstr "Använd systemformatets datum och tid" msgid "Notes" msgstr "Anteckningar" msgid "Encryption" msgstr "Kryptering" msgid "Visible columns" msgstr "Synliga kolumner" msgid "Categories" msgstr "Kategorier" msgid "Notes options" msgstr "Inställningar för anteckningar" msgid "Jump to date" msgstr "Hoppa till datum" msgid "Day" msgstr "Dag" msgid "Month" msgstr "Månad" msgid "Year" msgstr "År" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Välj ett typsnitt..." msgid "None" msgstr "Inget" msgid "All items" msgstr "Alla objekt" msgid "Question" msgstr "Fråga" msgid "Information" msgstr "Information" msgid "Error" msgstr "Fel" msgid "Warning" msgstr "Varning" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Markerad fil existerar! Skriv över?" msgid "Selected contact will be removed." msgstr "Markerad kontakt kommer att tas bort." msgid "Are you sure?" msgstr "Är du säker?" msgid "No date" msgstr "Inget datum" msgid "Select photo" msgstr "Välj fotografi" msgid "Address" msgstr "Adress" msgid "Postcode" msgstr "Postnummer" msgid "City" msgstr "Stad" msgid "State" msgstr "Kommun" msgid "Country" msgstr "Land" msgid "Edit contact" msgstr "Redigera kontakt" msgid "Add contact" msgstr "Lägg till kontakt" msgid "Personal" msgstr "Personligt" msgid "Group" msgstr "Grupp" msgid "Home" msgstr "Hem" msgid "Work" msgstr "Arbete" msgid "Phones" msgstr "Telefoner" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Kompletterande information" msgid "_OK" msgstr "" msgid "no entries" msgstr "inga poster" msgid "entry" msgid_plural "entries" msgstr[0] "post" msgstr[1] "poster" msgid "Calendar notes" msgstr "Kalenderanteckningar" msgid "Search" msgstr "Sök" msgid "Filter" msgstr "Filter" msgid "Current month" msgstr "Aktuell månad" msgid "Selected month" msgstr "Vald månad" msgid "Current year" msgstr "Aktuellt år" msgid "Selected year" msgstr "Valt år" msgid "Selected month and year" msgstr "Vald månad och år" msgid "All notes" msgstr "Alla anteckningar" msgid "Case sensitive" msgstr "Skiftlägeskänslig" msgid "Strikethrough past day notes" msgstr "Genomstryk föregående dags anteckningar" msgid "Date" msgstr "Datum" msgid "Note" msgstr "Anteckning" msgid "_Close" msgstr "" msgid "Rat" msgstr "Råtta" msgid "Ox" msgstr "Oxe" msgid "Tiger" msgstr "Tiger" msgid "Hare" msgstr "Hare" msgid "Dragon" msgstr "Drake" msgid "Snake" msgstr "Orm" msgid "Horse" msgstr "Häst" msgid "Sheep" msgstr "Får" msgid "Monkey" msgstr "Apa" msgid "Fowl" msgstr "Höna" msgid "Dog" msgstr "Hund" msgid "Pig" msgstr "Gris" msgid "Unknown" msgstr "Okänt" msgid "Aquarius" msgstr "Vattuman" msgid "Pisces" msgstr "Fisk" msgid "Aries" msgstr "Vädur" msgid "Taurus" msgstr "Oxe" msgid "Gemini" msgstr "Tvilling" msgid "Cancer" msgstr "Kräfta" msgid "Leo" msgstr "Lejon" msgid "Virgo" msgstr "Jungfru" msgid "Libra" msgstr "Våg" msgid "Scorpio" msgstr "Scorpion" msgid "Sagittarius" msgstr "Skytt" msgid "Capricorn" msgstr "Stenbock" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Positioner för flikar" msgid "Left" msgstr "Vänster" msgid "Right" msgstr "Höger" msgid "Top" msgstr "Överkant" msgid "Bottom" msgstr "Nederkant" msgid "Disable underline in links" msgstr "Inaktivera understreck i länkar" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Minst en modul måste vara synlig." msgid "Calendar" msgstr "Kalender" msgid "Tasks" msgstr "Uppgifter" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "Datumformat" msgid "DD-MM-YYYY" msgstr "DD-MM-ÅÅÅÅ" msgid "MM-DD-YYYY" msgstr "MM-DD-ÅÅÅÅ" msgid "YYYY-MM-DD" msgstr "ÅÅÅÅ-MM-DD" msgid "YYYY-DD-MM" msgstr "ÅÅÅÅ-DD-MM" msgid "Time format" msgstr "Tidsformat" msgid "hours" msgstr "timmar" msgid "Spell checker language" msgstr "Språk för stavningskontrollerare" msgid "Enable tooltips" msgstr "Aktivera verktygstips" msgid "Remember last selected page" msgstr "Kom ihåg senast valda sida" msgid "Save data after every modification" msgstr "Spara data efter varje modifiering" msgid "Web browser" msgstr "Webbläsare" msgid "E-mail client" msgstr "E-postklient" msgid "Sound player" msgstr "" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "Aktivera ikon i aktivitetsfält" msgid "Start minimised" msgstr "Starta i minimerat läge" msgid "Ignore day note events" msgstr "Ignorera daganteckningshändelser" msgid "General" msgstr "Allmänt" msgid "Hide" msgstr "Dölj" msgid "Helpers" msgstr "Hjälpmedel" msgid "System tray" msgstr "Aktivitetsfält" msgid "Preferences" msgstr "Inställningar" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "månad" msgstr[1] "månader" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "" msgid "Event marker" msgstr "" msgid "Circle" msgstr "Cirkel" msgid "Ellipse" msgstr "Ellips" msgid "Wave" msgstr "Våg" msgid "Current day marker" msgstr "" msgid "Arrow" msgstr "Pil" msgid "Free-hand circle" msgstr "" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Färg för helgdagar" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Markörfärg" msgid "Event marker color" msgstr "Färg för händelsemarkör" msgid "Current day marker color" msgstr "" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "Typsnitt för datum" msgid "Calendar font" msgstr "Typsnitt för kalender" msgid "Note font" msgstr "Typsnitt för anteckning" msgid "Enable block cursor" msgstr "" msgid "Cursor thickness" msgstr "Markörtjockhet" msgid "Thin" msgstr "Tunn" msgid "Thick" msgstr "Tjock" msgid "Edit category" msgstr "" msgid "Color" msgstr "Färg" msgid "Name" msgstr "Namn" msgid "Select ICS file" msgstr "Markera ICS-fil" msgid "All Files" msgstr "Alla filer" msgid "Calendar files (*.ics)" msgstr "Kalendarierfiler (*.ics)" msgid "Modify ICAL parameters" msgstr "Modifiera ICAL-parametrar" msgid "Filename" msgstr "Filnamn" msgid "Options" msgstr "Alternativ" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Giltig" msgid "Description" msgstr "Beskrivning" msgid "Full date" msgstr "" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "Veckan börjar på måndag" msgid "Show day names" msgstr "Visa namnsdagar" msgid "No month change" msgstr "Inget månadsbyte" msgid "Show week numbers" msgstr "Visa veckonummer" msgid "Simple view in full-year calendar" msgstr "Enkel vy i helårskalender" msgid "Enable auxilary calendars" msgstr "" msgid "Ascending sorting in day notes browser" msgstr "Uppåtgående ordning i bläddrare för daganteckningar" msgid "Enable spell checker in day notes" msgstr "Aktivera stavninskontrollerare i daganteckningar" msgid "Current time" msgstr "Aktuell tid" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Dagnummer" msgid "Today distance" msgstr "" msgid "Marked days" msgstr "Märkta dagar" msgid "Week number" msgstr "Veckonummer" msgid "Weekend days" msgstr "Helgdagar" msgid "Day category" msgstr "Dagkategori" msgid "Moon phase" msgstr "Månfas" msgid "Day notes" msgstr "Daganteckningar" msgid "Day categories" msgstr "Dagkategorier" msgid "iCalendar files" msgstr "iCalendar-filer" msgid "Show in day info panel" msgstr "" msgid "Tasks list" msgstr "Uppgiftslista" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Nr" msgid "Summary" msgstr "Summering" msgid "Due date" msgstr "Förfallodag" msgid "Priority" msgstr "Prioritet" msgid "Error printing" msgstr "Felutskrivning" msgid "No birthdays defined" msgstr "Inga födelsedagar angivna" msgid "Birthdays list" msgstr "Födelsedagslista" msgid "Days to birthday" msgstr "Dagar kvar till födelsedag" msgid "today" msgstr "idag" msgid "Select CSV file" msgstr "Markera CSV-fil" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (comma-separated values)-filer (*.csv)" msgid "Please select file first." msgstr "Var god markera fil först." msgid "Import contacts" msgstr "Importera kontakter" msgid "Import type" msgstr "Importtyp" msgid "File" msgstr "Filnamn" msgid "Input filename" msgstr "Infoga filnamn" msgid "Import" msgstr "Importera" msgid "Nothing to import." msgstr "Inget att importera." msgid "contact added" msgid_plural "contacts added" msgstr[0] "kontakt tillagd" msgstr[1] "kontakter tillagda" msgid "of" msgstr "" msgid "Record" msgstr "Post" msgid "Number fields per record" msgstr "Nummerfält per post" msgid "Use first record as header" msgstr "Använd första posten som rubrik" msgid "Field type" msgstr "Fälttyp" msgid "Value" msgstr "Värde" msgid "No records found in selected file." msgstr "Inga poster hittades i markerad fil." msgid "Cannot read file." msgstr "Kan inte läsa in fil." msgid "Cannot open file." msgstr "Kan inte öppna fil" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Visa kalender" msgid "Show tasks" msgstr "Visa uppgifter" msgid "Show contacts" msgstr "Visa kontakter" msgid "Show notes" msgstr "Visa anteckningar" msgid "Show options" msgstr "Visa alternativ" msgid "Quit" msgstr "Avsluta" msgid "Show small calendar window" msgstr "Visa litet kalenderfönster" msgid "Check for events since last run" msgstr "Leta efter händelser sedan förra gången programmet kördes" msgid "Number of days to check forward for events (default: 0)" msgstr "Antalet dagar att leta framåt efter händelser (standard: 0)" msgid "Set absolute path for settings and data files" msgstr "" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "FEL: Kan inte skapa konfigurationsfiler" msgid "Another copy of OSMO is already running." msgstr "En annat exemplar av OSMO körs redan." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Att använda två eller fler exemplar av OSMO samtidigt kan orsaka dataförlust." msgid "Do you really want to continue?" msgstr "Vill du verkligen fortsätta?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Låg" msgid "High" msgstr "Hög" msgid "Done!" msgstr "Klart!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "kontakt exporterad" msgstr[1] "kontakter exporterade" msgid "Cannot create file." msgstr "Kan inte skapa fil." msgid "Select output file" msgstr "Markera utdatafil" msgid "Export contacts" msgstr "Exportera kontakter" msgid "Output format" msgstr "Utdataformat" msgid "Add header" msgstr "Lägg till rubrik" msgid "Fields to export" msgstr "Fält att exportera" msgid "All" msgstr "Alla" msgid "Invert" msgstr "Invertera" msgid "Select fields" msgstr "Markera fält" msgid "Output filename" msgstr "Filnamn för utdata" msgid "Export" msgstr "Exportera" msgid "Color of items that are due today" msgstr "" msgid "Color of items that are due in the next 7 days" msgstr "" msgid "Color of items that are past due" msgstr "" msgid "Task info font" msgstr "Typsnitt för uppgiftsinformation" msgid "Show in bold tasks with high priority" msgstr "Visa högprioriterade uppgifter i fetstil" msgid "Hide completed tasks" msgstr "Dölj färdigställda uppgifter" msgid "Delete completed tasks without confirmation" msgstr "Radera färdigställda uppgifter utan bekräftelse" msgid "Add new task when double clicked on tasks list" msgstr "Lägg till en ny uppgift då uppgiftslistan dubbelklickas" msgid "Postpone time" msgstr "Skjut upp tid" msgid "minutes" msgstr "minuter" msgid "0 for disable" msgstr "0 för inaktivering" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "Allmänt notifieringskommando" msgid "Tasks options" msgstr "Inställningar för uppgifter" msgid "Reminder options" msgstr "Kom ihåg-inställningar" msgid "Insert timeline" msgstr "Infoga tidslinje" msgid "Timeline" msgstr "Tidslinje" msgid "From (hour)" msgstr "Från (timme)" msgid "Step (minutes)" msgstr "Step (minuter)" msgid "To (hour)" msgstr "Till (timme)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "" msgid "Set time" msgstr "Ställ in tid" msgid "Hour" msgstr "Timme" msgid "Minute" msgstr "Minut" msgid "Today" msgstr "Idag" msgid "Tomorrow" msgstr "Imorgon" msgid "Selected task will be removed." msgstr "Markerad uppgift kommer att tas bort." msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarmvarning" msgid "Days" msgstr "Dagar" msgid "Hours" msgstr "Timmar" msgid "Minutes" msgstr "Minuter" msgid "Alarm command" msgstr "Alarmkommando" msgid "Date period" msgstr "Datumperiod" msgid "Months" msgstr "Månader" msgid "Repeat" msgstr "Upprepa" msgid "Repeat in the following days" msgstr "Upprepa de följande dagarna" msgid "Time period" msgstr "Tidsperiod" msgid "Start" msgstr "Start" msgid "End" msgstr "Slut" msgid "Interval" msgstr "Intervall" msgid "Ignore alarm when task expired offline" msgstr "" msgid "Recurrent task" msgstr "" msgid "Enable" msgstr "Aktivera" msgid "Edit task" msgstr "Redigera uppgift" msgid "Add task" msgstr "Lägg till uppgift" msgid "Basic" msgstr "" msgid "Advanced" msgstr "" msgid "New Moon" msgstr "Nymåne" msgid "Waxing Crescent Moon" msgstr "Halvmåne i första kvarteret" msgid "Quarter Moon" msgstr "Halvmåne" msgid "Waxing Gibbous Moon" msgstr "Tilltagande halvmåne" msgid "Full Moon" msgstr "Fullmåne" msgid "Waning Gibbous Moon" msgstr "Avtagande Halvmåne" msgid "Last Quarter Moon" msgstr "Avtagande halvmåne" msgid "Waning Crescent Moon" msgstr "Halvmåne i sista kvarteret" msgid "Cannot create backup!" msgstr "" msgid "Save backup" msgstr "" msgid "Password protection" msgstr "" msgid "Enter password" msgstr "Skriv in lösenord" msgid "Re-enter password" msgstr "Skriv in lösenordet igen" msgid "Please enter the password" msgstr "" msgid "Passwords do not match!" msgstr "Lösenord stämmer inte!" msgid "Backup file saved successfully!" msgstr "" msgid "Open backup file" msgstr "" msgid "Osmo backup files (*.bck)" msgstr "" msgid "This is not Osmo backup file" msgstr "" msgid "Incorrect password!" msgstr "Fel lösenord!" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "Förnamn" msgid "Last name" msgstr "Efternamn" msgid "Second name" msgstr "Mellannamn" msgid "Nickname" msgstr "Smeknamn" msgid "Tags" msgstr "Taggar" msgid "Name day date" msgstr "Namnsdagsdatum" msgid "Home address" msgstr "Hemadress" msgid "Home postcode" msgstr "Postnummer för hem" msgid "Home city" msgstr "Hemstad" msgid "Home state" msgstr "Hemkommun/hemstat" msgid "Home country" msgstr "Hemland" msgid "Organization" msgstr "Organisation" msgid "Department" msgstr "Avdelning" msgid "Work address" msgstr "Arbetsplatsadress" msgid "Work postcode" msgstr "Postnummer för arbetsplats" msgid "Work city" msgstr "Arbetsstad" msgid "Work state" msgstr "Arbetskommun/arbetsstat" msgid "Work country" msgstr "Arbetsland" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Hemtelefon " msgid "Home phone 2" msgstr "Hemtelefon 2" msgid "Home phone 3" msgstr "Hemtelefon 3" msgid "Home phone 4" msgstr "Hemtelefon 4" msgid "Work phone" msgstr "Arbetstelefon" msgid "Work phone 2" msgstr "Arbetstelefon 2" msgid "Work phone 3" msgstr "Arbetstelefon 3" msgid "Work phone 4" msgstr "Arbetstelefon 4" msgid "Cell phone" msgstr "Mobiltelefon" msgid "Cell phone 2" msgstr "Mobiltelefon 2" msgid "Cell phone 3" msgstr "Mobiltelefon 3" msgid "Cell phone 4" msgstr "Mobiltelefon 4" msgid "E-Mail" msgstr "E-postadress" msgid "E-Mail 2" msgstr "E-postadress 2" msgid "E-Mail 3" msgstr "E-postadress 3" msgid "E-Mail 4" msgstr "E-postadress 4" msgid "WWW" msgstr "Webbsida" msgid "WWW 2" msgstr "Webbsida 2" msgid "WWW 3" msgstr "Webbsida 3" msgid "WWW 4" msgstr "Webbsida 4" msgid "IM Gadu-Gadu" msgstr "" msgid "IM Yahoo" msgstr "" msgid "IM MSN" msgstr "" msgid "IM ICQ" msgstr "" msgid "IM AOL" msgstr "" msgid "IM Jabber" msgstr "" msgid "IM Skype" msgstr "" msgid "IM Tlen" msgstr "" msgid "Blog" msgstr "Blogg" msgid "Photo" msgstr "Fotografi" msgid "New contact" msgstr "Ny kontakt" msgid "Remove contact" msgstr "Ta bort kontakt" msgid "Show birthdays" msgstr "Visa födelsedagar" msgid "Show contact location on the map" msgstr "" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Om" msgid "Clear" msgstr "Töm" msgid "First Name" msgstr "Förnamn" msgid "Last Name" msgstr "Efternamn" msgid "All fields" msgstr "Alla fält" msgid "Contact details" msgstr "Kontaktdetaljer" msgid "Close contact panel" msgstr "Stäng kontaktpanel" msgid "The note has changed." msgstr "Anteckningen har ändrats." msgid "Do you want to save it?" msgstr "Vill du spara den?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Ord" msgid "Lines" msgstr "Rader" msgid "Characters" msgstr "Tecken" msgid "White characters" msgstr "Vita tecken" msgid "Bytes" msgstr "Byte" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "Modifierad" msgid "New note" msgstr "Ny anteckning" msgid "Edit note" msgstr "Redigera anteckning" msgid "Delete note" msgstr "Radera anteckning" msgid "Save note" msgstr "Spara anteckning" msgid "Find" msgstr "Hitta" msgid "Toggle spell checker" msgstr "Växla stavningskontrollerare" msgid "Bold" msgstr "Fetstil" msgid "Italic" msgstr "Kursiv" msgid "Underline" msgstr "Understreck" msgid "Strikethrough" msgstr "Genomstrykning" msgid "Highlight" msgstr "Färgmarkera" msgid "Clear attributes" msgstr "" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Infoga aktuellt datum och tid" msgid "Insert separator" msgstr "" msgid "Statistics" msgstr "Statistik" msgid "Close editor" msgstr "Stäng redigerare" msgid "Note name" msgstr "Anteckningsnamn" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "skiftlägeskänslig" msgid "Close find entry" msgstr "Stäng hitta-post" msgid "Edit entry" msgstr "Redigera post" msgid "Remember cursor position" msgstr "Kom ihåg markörposition" msgid "Selected note will be removed." msgstr "Markerad anteckning kommer att tas bort." msgid "No further data recovery will be possible." msgstr "Inga ytterligare dataåterställningar kommer att vara möjligt." msgid "Add note" msgstr "Lägg till anteckning" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "Krypterad" msgid "Note type" msgstr "Anteckningstyp" msgid "Cannot open the note." msgstr "Kan inte öppna anteckning" msgid "encryption support is disabled" msgstr "Stöd för kryptering inaktiverat" msgid "Authorization" msgstr "Befogenhet" msgid "year" msgid_plural "years" msgstr[0] "år" msgstr[1] "år" msgid "day" msgid_plural "days" msgstr[0] "dag" msgstr[1] "dagar" msgid "hour" msgid_plural "hours" msgstr[0] "timme" msgstr[1] "timmar" msgid "minute" msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minuter" msgid "second" msgid_plural "seconds" msgstr[0] "sekund" msgstr[1] "sekunder" msgid "or" msgstr "eller" msgid "rounded down" msgstr "avrundat nedåt" msgid "week" msgid_plural "weeks" msgstr[0] "vecka" msgstr[1] "veckor" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgid "This calculator only supports dates after year 1." msgstr "Denna beräknare stöder bara datum efter år ett." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "Datumberäknare" msgid "Current date" msgstr "Aktuellt datum" msgid "Set current date" msgstr "Ställ in aktuellt datum" msgid "Second" msgstr "Sekund" msgid "Set current time" msgstr "Ställ in aktuell tid" msgid "Reset time" msgstr "Ställ om tid" msgid "First date and time" msgstr "Första datum och tid" msgid "Second date and time" msgstr "Andra datum och tid" msgid "Alternative time units" msgstr "Alternativa tidsenheter" msgid "Result" msgstr "Resultat" msgid "Duration between two dates" msgstr "Varaktighet mellan två datum" msgid "Operation" msgstr "Åtgärd" msgid "add" msgstr "lägg till" msgid "subtract" msgstr "dra ifrån" msgid "Date and time to add or subtract from" msgstr "Datum och tid att lägga till eller dra ifrån från" msgid "Years" msgstr "År" msgid "Weeks" msgstr "Veckor" msgid "Seconds" msgstr "Sekunder" msgid "Ignore weekend days" msgstr "" msgid "Reset fields" msgstr "Ställ om fält" msgid "Time to add or subtract" msgstr "Tid att lägga till eller dra ifrån" msgid "Add to or subtract from a date" msgstr "Lägg till eller dra ifrån från ett datum " msgid "Cannot perform selected operation." msgstr "Kan inte utföra vald åtgärd." msgid "Task has been modified or removed." msgstr "Uppgiften har modifierats eller tagits bort." msgid "Remind me later" msgstr "Påminn mig senare" msgid "Done" msgstr "Klar" msgid "Show task" msgstr "Visa uppgift" msgid "Alarm warning!" msgstr "Alarmvarning!" msgid "postponed" msgstr "Uppskjuten" msgid "Day note" msgstr "Daganteckning" msgid "Events" msgstr "Händelser" msgid "Event" msgstr "Händelse" msgid "Task" msgstr "Uppgift" msgid "Birthday" msgstr "Födelsedag" msgid "Show Osmo" msgstr "Visa Osmo" msgid "event" msgid_plural "events" msgstr[0] "händelse" msgstr[1] "händelser" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "iCalendar-händelser" msgid "Time" msgstr "" msgid "The list will be cleared and all entries will be lost." msgstr "Listan kommer att tömmas och alla poster kommer att gå förlorade." msgid "event exported" msgid_plural "events exported" msgstr[0] "händelse exporterad" msgstr[1] "händelser exporterade" msgid "iCalendar export" msgstr "iCalendar-exportering" msgid "Day Selector" msgstr "Dagväljare" msgid "Use date period" msgstr "Använd datumperiod" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "" msgid "tasks exported" msgstr "" msgid "was born" msgstr "föddes" msgid "year old" msgid_plural "years old" msgstr[0] "år gammal" msgstr[1] "år gammal" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dag kvar till årets slut" msgstr[1] "dagar kvar till årets slut" msgid "the last day of the year" msgstr "Årets sista dag" msgid "Day tasks" msgstr "Daguppgifter" msgid "Selected day note will be removed." msgstr "Markerad " msgid "Continue?" msgstr "Fortsätt?" msgid "Previous year" msgstr "Föregående år" msgid "Previous month" msgstr "Föregående månad" msgid "Previous day" msgstr "Föregående dag" msgid "Next day" msgstr "Nästa dag" msgid "Next month" msgstr "Nästa månad" msgid "Next year" msgstr "Nästa år" msgid "Full-year calendar" msgstr "Helårskalender" msgid "Print calendar" msgstr "Skriv ut kalender" msgid "Toggle day note panel" msgstr "Växla panel för daganteckning" msgid "Select day color" msgstr "Välj dagfärg" msgid "Browse notes" msgstr "Bläddra bland anteckningar" msgid "Browse iCal events" msgstr "Bläddra bland iCal-händelser" msgid "Export to iCal file" msgstr "Exportera till iCal-fil" msgid "Previous and next month" msgstr "Föregående och nästa månad" msgid "Close note panel" msgstr "Stäng anteckningspanel" msgid "Clear text" msgstr "Rensa text" msgid "Info" msgstr "Information" msgid "Select color" msgstr "Välj färg" msgid "Name day" msgstr "Namnsdag" msgid "Printing properties" msgstr "Egenskaper för utskrivning" msgid "Month name" msgstr "Månadens namn" msgid "Day name" msgstr "Dagens namn" msgid "Fonts" msgstr "Typsnitt" msgid "Birthdays" msgstr "Födelsedagar" msgid "Namedays" msgstr "Namnsdagar" msgid "Visible events" msgstr "Synliga händelser" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "Sidorientering:" msgid "Portrait" msgstr "Porträtt" msgid "Landscape" msgstr "Landskap" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Skottår" msgid "Yes" msgstr "Ja" msgid "No" msgstr "Nej" msgid "Chinese year animal" msgstr "Kinesiska kalenderårets djur" msgid "Number of days" msgstr "Antal dagar" msgid "Number of weeks" msgstr "Antal veckor" msgid "Number of weekend days" msgstr "Antal helgdagar" msgid "Year info" msgstr "Information om år" msgid "Alternative view" msgstr "Alternativ vy" msgid "Started" msgstr "Började med uppgift" msgid "Finished" msgstr "Färdigställde uppgift" msgid "New task" msgstr "Ny uppgift" msgid "Remove task" msgstr "Ta bort uppgift" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "Skriv ut synlig uppgiftslista" msgid "Task details" msgstr "Uppgiftsdetaljer" msgid "Close description panel" msgstr "Stäng beskrivningspanel" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "växla till föregående flik" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "växla till nästa flik" msgid "switch to selected page" msgstr "växla till markerad sida" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "" msgid "exit" msgstr "avsluta" msgid "Space" msgstr "" msgid "select current date" msgstr "välj aktuellt datum" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "växla synlighet för personliga data" msgid "Arrows" msgstr "" msgid "change day" msgstr "byt dag" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "rulla innehållet i panelen för information om dag" msgid "change month" msgstr "byt månad" msgid "Home/End" msgstr "" msgid "change year" msgstr "byt år" msgid "toggle calendars for the previous and next month" msgstr "växla kalendarier för den föregående månaden och nästa månad" msgid "day notes browser" msgstr "daganteckningsbläddrare" msgid "assign background color to day note" msgstr "överlåt bakgrundsfärg till daganteckning" msgid "date calculator" msgstr "datumberäknare" msgid "show full-year calendar" msgstr "visa helårskalender" msgid "jump to date" msgstr "hoppa till datum" msgid "Delete" msgstr "" msgid "remove day note" msgstr "ta bort daganteckning" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "" msgid "set current year" msgstr "" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "lägg till uppgift" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "redigera uppgift" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "ta bort uppgift" msgid "toggle hidden tasks" msgstr "växla dolda uppgifter" msgid "activate search field" msgstr "aktivera sökfält" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "byt kategorifilter" msgid "close task info panel" msgstr "stäng panel för uppgiftsinformation" msgid "Insert" msgstr "Infoga" msgid "add contact" msgstr "lägg till kontakt" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "redigera kontakt" msgid "remove contact" msgstr "ta bort kontakt" msgid "change search mode" msgstr "byt sökläge" msgid "close contact details panel" msgstr "stäng panelen för kontaktdetaljer" msgid "Enter" msgstr "" msgid "open note" msgstr "öppna anteckning" msgid "add note" msgstr "lägg till anteckning" msgid "remove note" msgstr "ta bort anteckning" msgid "edit note name and category" msgstr "redigera namn och kategori" msgid "close note editor" msgstr "stäng anteckningsredigerare" msgid "save note" msgstr "spara anteckning" msgid "find text" msgstr "hitta nästa" msgid "clear selection attributes" msgstr "" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "" msgid "Selector" msgstr "" msgid "Editor" msgstr "Redigerare" msgid "A handy personal organizer" msgstr "En praktisk dagplanerare" msgid "compiled on" msgstr "kompilerat" msgid "Programming" msgstr "Programmering" msgid "Graphics" msgstr "Grafik" msgid "Contributors" msgstr "Medarbetare" msgid "Translators" msgstr "Översättare" msgid "Mailing lists" msgstr "" msgid "Bug tracker" msgstr "" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "Tillgängliga moduler" msgid "Compiled-in features" msgstr "Kompilerat med följande funktioner" msgid "iCalendar support" msgstr "Stöd för iCalendar" msgid "Encrypted notes support" msgstr "Stöd för krypterade anteckningar" msgid "Backup support" msgstr "" msgid "Printing support" msgstr "Stöd för utskrivning" msgid "Spell checker support" msgstr "Stöd för stavningskontrollerare" msgid "version" msgstr "Version" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Snabbtangenter" msgid "License" msgstr "Licens" osmo-0.4.2/po/pt_BR.po0000664000175000017500000011204313204320601011371 00000000000000# Portuguese (Brazil) translation of Osmo. # This file is distributed under the same license as the Osmo package. # Alexandro Casanova , 2012-2013. # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2015-02-14 01:17+0000\n" "Last-Translator: Alexandro Casanova \n" "Language-Team: Portuguese (Brazil)\n" "Language: pt_BR\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" msgid "Colors" msgstr "Cores" msgid "Color of contact tags" msgstr "Cor de tags do contato" msgid "Color of links" msgstr "Cor dos links" msgid "Font size" msgstr "Tamanho da fonte" msgid "Name font size" msgstr "Tamanho da fonte do nome" msgid "Item font size" msgstr "Tamanho da fonte do item" msgid "Photo size" msgstr "Tamanho da foto" msgid "Small" msgstr "Pequeno" msgid "Medium" msgstr "Média" msgid "Large" msgstr "Grande" msgid "Hide group column" msgstr "Ocultar grupo de colunas" msgid "Maps provider" msgstr "Provedor de mapas" msgid "Age" msgstr "Idade" msgid "Birthday date" msgstr "Data do aniversário" msgid "Zodiac sign" msgstr "Signo do zodíaco" msgid "Contacts" msgstr "Contatos" msgid "Appearance" msgstr "Aparência " msgid "Miscellaneous" msgstr "Diverso" msgid "Groups" msgstr "Grupos" msgid "Visible columns in birthday browser" msgstr "Colunas visíveis no navegador de aniversário" msgid "Algorithm" msgstr "Algoritmo " msgid "Hashing" msgstr "Tipo de criptografia" msgid "Compression" msgstr "Compressão" msgid "Ratio" msgstr "Relação" msgid "Fast" msgstr "Rápido" msgid "Good" msgstr "Bom" msgid "Best" msgstr "Ótimo" msgid "Type" msgstr "Tipo" msgid "Category" msgstr "Categoria" msgid "Last changes" msgstr "Ultimas modificações" msgid "Created" msgstr "Criado em" msgid "Remember the last selected category" msgstr "Lembrar a última categoria selecionada" msgid "Use system format for date and time" msgstr "Use formato do sistema para data e hora" msgid "Notes" msgstr "Notas" msgid "Encryption" msgstr "Criptografia" msgid "Visible columns" msgstr "Colunas visíveis" msgid "Categories" msgstr "Categorias" msgid "Notes options" msgstr "Opções de notas" msgid "Jump to date" msgstr "Ir para data" msgid "Day" msgstr "Dia" msgid "Month" msgstr "Mês" msgid "Year" msgstr "Ano" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Selecionar uma fonte..." msgid "None" msgstr "Nenhum" msgid "All items" msgstr "Todos os itens" msgid "Question" msgstr "Pergunta" msgid "Information" msgstr "Informações" msgid "Error" msgstr "Erro" msgid "Warning" msgstr "Aviso" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Arquivo selecionado existe! Deseja substituir?" msgid "Selected contact will be removed." msgstr "Contato selecionado foi removido." msgid "Are you sure?" msgstr "Você tem certeza?" msgid "No date" msgstr "Sem data" msgid "Select photo" msgstr "Selecionar foto" msgid "Address" msgstr "Endereço" msgid "Postcode" msgstr "CEP" msgid "City" msgstr "Cidade" msgid "State" msgstr "Estado" msgid "Country" msgstr "Pais" msgid "Edit contact" msgstr "Editar contato" msgid "Add contact" msgstr "Adicionar contato" msgid "Personal" msgstr "Pessoal" msgid "Group" msgstr "Grupo" msgid "Home" msgstr "Casa" msgid "Work" msgstr "Trabalho" msgid "Phones" msgstr "Telefones" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Informações adicionais" msgid "_OK" msgstr "" msgid "no entries" msgstr "sem entradas" msgid "entry" msgid_plural "entries" msgstr[0] "entrada" msgstr[1] "entradas" msgid "Calendar notes" msgstr "Notas do calendário" msgid "Search" msgstr "Pesquisar" msgid "Filter" msgstr "Filtro" msgid "Current month" msgstr "Mês atual" msgid "Selected month" msgstr "Mês selecionado" msgid "Current year" msgstr "Ano atual" msgid "Selected year" msgstr "Ano selecionado" msgid "Selected month and year" msgstr "Mês e ano selecionado" msgid "All notes" msgstr "Todas as notas" msgid "Case sensitive" msgstr "Diferenciar maiúsculas de minusculas" msgid "Strikethrough past day notes" msgstr "Riscar notas do dia passado" msgid "Date" msgstr "Data" msgid "Note" msgstr "Nota" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rato" msgid "Ox" msgstr "Boi" msgid "Tiger" msgstr "Tigre" msgid "Hare" msgstr "Lebre" msgid "Dragon" msgstr "Dragão" msgid "Snake" msgstr "Cobra" msgid "Horse" msgstr "Cavalo" msgid "Sheep" msgstr "Ovelha" msgid "Monkey" msgstr "Macaco" msgid "Fowl" msgstr "Galinha" msgid "Dog" msgstr "Cachorro" msgid "Pig" msgstr "Porco" msgid "Unknown" msgstr "Desconhecido" msgid "Aquarius" msgstr "Aquário" msgid "Pisces" msgstr "Peixes" msgid "Aries" msgstr "Aries" msgid "Taurus" msgstr "Touro" msgid "Gemini" msgstr "Gêmeos" msgid "Cancer" msgstr "Câncer" msgid "Leo" msgstr "Leão" msgid "Virgo" msgstr "Virgem" msgid "Libra" msgstr "Libra" msgid "Scorpio" msgstr "Escorpião" msgid "Sagittarius" msgstr "Sagitário" msgid "Capricorn" msgstr "Capricórnio" msgid "Osmo has to be restarted to take effect." msgstr "Osmo precisa ser reiniciado para obter efeito." msgid "Layout" msgstr "Layout" msgid "Vertical" msgstr "Vertical" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Posição das abas" msgid "Left" msgstr "Esquerda" msgid "Right" msgstr "Direita" msgid "Top" msgstr "Cima" msgid "Bottom" msgstr "Baixo" msgid "Disable underline in links" msgstr "Desativar sublinhado em links" msgid "Show exit button in toolbar" msgstr "Mostrar botão sair na barra de ferramentas" msgid "At least one module must be visible." msgstr "Pelo menos um modulo deve ser visível." msgid "Calendar" msgstr "Calendário" msgid "Tasks" msgstr "Tarefas" msgid "Override locale settings" msgstr "Substituir as configurações locais" msgid "Date format" msgstr "Formato de data" msgid "DD-MM-YYYY" msgstr "DD-MM-AAAA" msgid "MM-DD-YYYY" msgstr "MM-DD-AAAA" msgid "YYYY-MM-DD" msgstr "AAAA-MM-DD" msgid "YYYY-DD-MM" msgstr "AAAA-DD-MM" msgid "Time format" msgstr "Formato de hora" msgid "hours" msgstr "horas" msgid "Spell checker language" msgstr "Idioma do corretor ortográfico" msgid "Enable tooltips" msgstr "Habilitar dicas" msgid "Remember last selected page" msgstr "Lembrar da última página selecionada" msgid "Save data after every modification" msgstr "Salvar os dados depois de cada modificação" msgid "Web browser" msgstr "Navegador" msgid "E-mail client" msgstr "Cliente de E-mail" msgid "Sound player" msgstr "Reprodutor de som" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "O %s padrão será substituído como endereço web" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "O %s padrão será substituído como endereço de e-mail" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "O %s será substituído como nome do arquivo de som" msgid "Enable system tray" msgstr "Ativar bandeja do sistema" msgid "Start minimised" msgstr "Iniciar minimizado" msgid "Ignore day note events" msgstr "Ignorar eventos de nota do dia" msgid "General" msgstr "Geral" msgid "Hide" msgstr "Ocultar" msgid "Helpers" msgstr "Ajudantes" msgid "System tray" msgstr "Bandeja do sistema" msgid "Preferences" msgstr "Preferências" msgid "Syntax" msgstr "Sintaxe" msgid "abbreviated weekday name" msgstr "dia da semana abreviado" msgid "full weekday name" msgstr "nome da semana completo" msgid "abbreviated month name" msgstr "nome do mês abreviado" msgid "full month name" msgstr "nome do mês completo" msgid "day of the month" msgstr "dia do mês" msgid "MM/DD/YY" msgstr "MM/DD/AA" msgid "day of the month without leading zeros" msgstr "dia do mês sem zeros à esquerda" msgid "month" msgid_plural "months" msgstr[0] "mês" msgstr[1] "meses" msgid "year without century" msgstr "ano sem o século" msgid "year with century" msgstr "ano com o século" msgid "Date header format" msgstr "Formato do cabeçalho de data" msgid "Set default format" msgstr "Definir formato padrão" msgid "Date format syntax" msgstr "Formato de sintaxe da data" msgid "Day note marker" msgstr "Marcador de nota diária" msgid "Event marker" msgstr "Marcador de eventos" msgid "Circle" msgstr "Circulo" msgid "Ellipse" msgstr "Elipse" msgid "Wave" msgstr "Onda" msgid "Current day marker" msgstr "Marcador de dia atual" msgid "Arrow" msgstr "Seta" msgid "Free-hand circle" msgstr "Circulo a mão livre" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Cor dos dias de fim-de-semana" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cor do cursor" msgid "Event marker color" msgstr "Cor do marcador de evento" msgid "Current day marker color" msgstr "Cor do marcador do dia atual" msgid "Birthday marker color" msgstr "Cor do marcador de aniversário" msgid "Date font" msgstr "Fonte da data" msgid "Calendar font" msgstr "Fonte do calendário" msgid "Note font" msgstr "Fonte da nota" msgid "Enable block cursor" msgstr "Habilitar bloqueio de cursor" msgid "Cursor thickness" msgstr "Espessura do Cursor" msgid "Thin" msgstr "Fino" msgid "Thick" msgstr "Espesso" msgid "Edit category" msgstr "Editar categoria" msgid "Color" msgstr "Cor" msgid "Name" msgstr "Nome" msgid "Select ICS file" msgstr "Selecionar arquivo ICS" msgid "All Files" msgstr "Todos os Arquivos" msgid "Calendar files (*.ics)" msgstr "Arquivos de calendário (*.ics)" msgid "Modify ICAL parameters" msgstr "Modificar parâmetros ICAL" msgid "Filename" msgstr "Nome do arquivo" msgid "Options" msgstr "Opções" msgid "Disabled" msgstr "Desabilitado" msgid "Valid" msgstr "Válido" msgid "Description" msgstr "Descrição" msgid "Full date" msgstr "Data completa" msgid "Mark" msgstr "Marcar" msgid "Week start on Monday" msgstr "Início da semana na segunda-feira" msgid "Show day names" msgstr "Mostrar nomes do dia" msgid "No month change" msgstr "Não mudar mês" msgid "Show week numbers" msgstr "Mostrar números da semana" msgid "Simple view in full-year calendar" msgstr "Visão simples em todo calendário do ano" msgid "Enable auxilary calendars" msgstr "Ativar calendários auxiliar" msgid "Ascending sorting in day notes browser" msgstr "Classificação ascendente em navegação de notas do dia" msgid "Enable spell checker in day notes" msgstr "Ativar verificador ortográfico em notas do dia" msgid "Current time" msgstr "Horário atual" msgid "Show seconds" msgstr "Mostrar segundos" msgid "Day number" msgstr "Número do dia" msgid "Today distance" msgstr "Distancia de hoje" msgid "Marked days" msgstr "Dias marcados" msgid "Week number" msgstr "Número da semana" msgid "Weekend days" msgstr "Dia de final de semana" msgid "Day category" msgstr "Categoria Dia" msgid "Moon phase" msgstr "Fases da lua" msgid "Day notes" msgstr "Notas do dia" msgid "Day categories" msgstr "Categorias do dia" msgid "iCalendar files" msgstr "Arquivos iCalendar" msgid "Show in day info panel" msgstr "Mostrar em painel informações do dia" msgid "Tasks list" msgstr "Lista de tarefas" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Não." msgid "Summary" msgstr "Resumo" msgid "Due date" msgstr "Data de vencimento" msgid "Priority" msgstr "Prioridade" msgid "Error printing" msgstr "Erro de impressão" msgid "No birthdays defined" msgstr "Nenhum aniversário definido" msgid "Birthdays list" msgstr "Lista de aniversários" msgid "Days to birthday" msgstr "Dias para o aniversário" msgid "today" msgstr "hoje" msgid "Select CSV file" msgstr "Selecione o arquivo CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "Arquivos CSV (valores separados por vírgula) (*.csv)" msgid "Please select file first." msgstr "Favor selecione o primeiro arquivo." msgid "Import contacts" msgstr "Importar contatos" msgid "Import type" msgstr "Tipo de importação" msgid "File" msgstr "Arquivo" msgid "Input filename" msgstr "Arquivo de entrada" msgid "Import" msgstr "Importar" msgid "Nothing to import." msgstr "Nada a importar" msgid "contact added" msgid_plural "contacts added" msgstr[0] "contato adicionado" msgstr[1] "contatos adicionados" msgid "of" msgstr "de" msgid "Record" msgstr "Registro" msgid "Number fields per record" msgstr "Numero de campo por registro" msgid "Use first record as header" msgstr "Usar primeiro registro como cabeçalho" msgid "Field type" msgstr "Tipo de campo" msgid "Value" msgstr "Valor" msgid "No records found in selected file." msgstr "Nenhum registro encontrado no arquivo selecionado." msgid "Cannot read file." msgstr "Não foi possível ler arquivo." msgid "Cannot open file." msgstr "Não foi possível ler arquivo." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Mostrar calendário" msgid "Show tasks" msgstr "Mostrar tarefas" msgid "Show contacts" msgstr "Mostrar contatos" msgid "Show notes" msgstr "Mostrar notas" msgid "Show options" msgstr "Mostrar opções" msgid "Quit" msgstr "Sair" msgid "Show small calendar window" msgstr "Mostrar pequena janela de calendário" msgid "Check for events since last run" msgstr "Checar por eventos desde a ultima execução" msgid "Number of days to check forward for events (default: 0)" msgstr "Número de dias a frente para checar por eventos (padrão: 0)" msgid "Set absolute path for settings and data files" msgstr "Definir diretório absoluto para configurações e arquivos de dados." msgid "Match contacts with given string" msgstr "Combinar contatos com determinada string" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERRO: Não foi possível criar arquivos de configuração" msgid "Another copy of OSMO is already running." msgstr "Outra copia do OSMO já está em execução." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Usar simultaneamente duas ou mais instancias do OSMO poderão ser uma das " "causas para a perda de dados." msgid "Do you really want to continue?" msgstr "Você realmente deseja continuar?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Baixa" msgid "High" msgstr "Alta" msgid "Done!" msgstr "Feito!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contato exportado" msgstr[1] "contatos exportados" msgid "Cannot create file." msgstr "Não foi possível criar o arquivo." msgid "Select output file" msgstr "Selecione o arquivo de saída" msgid "Export contacts" msgstr "Exportar contato" msgid "Output format" msgstr "Formato de saída" msgid "Add header" msgstr "Adicionar cabeçalho" msgid "Fields to export" msgstr "Campos para exportar" msgid "All" msgstr "Todos" msgid "Invert" msgstr "Inverter" msgid "Select fields" msgstr "Selecione os campos" msgid "Output filename" msgstr "Arquivo de saída" msgid "Export" msgstr "Exportar" msgid "Color of items that are due today" msgstr "Cor de itens que vencem hoje" msgid "Color of items that are due in the next 7 days" msgstr "Cor dos itens vencem nos próximos 7 dias." msgid "Color of items that are past due" msgstr "Cor dos itens que venceram" msgid "Task info font" msgstr "Informações da fonte de tarefas" msgid "Show in bold tasks with high priority" msgstr "Mostrar em negrito tarefas com grande prioridade" msgid "Hide completed tasks" msgstr "Ocultar tarefas concluídas" msgid "Delete completed tasks without confirmation" msgstr "Deletar tarefas concluídas sem confirmação" msgid "Add new task when double clicked on tasks list" msgstr "Adicionar nova tarefa ao clicar duas vezes na lista de tarefas" msgid "Postpone time" msgstr "Adiar tempo" msgid "minutes" msgstr "minutos" msgid "0 for disable" msgstr "0 para desativar" msgid "Repeat sound alarm" msgstr "Repetir o alarme de som" msgid "times" msgstr "vezes" msgid "Global notification command" msgstr "Notificação de comando global" msgid "Tasks options" msgstr "Opções de tarefas" msgid "Reminder options" msgstr "Opções de lembrete" msgid "Insert timeline" msgstr "Inserir linha do tempo" msgid "Timeline" msgstr "Linha do tempo" msgid "From (hour)" msgstr "De (horas)" msgid "Step (minutes)" msgstr "Progresso (minutos)" msgid "To (hour)" msgstr "Para (horas)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Favor selecionar pelo menos um dia quando a recorrência é habilitada." msgid "Set time" msgstr "Definir hora" msgid "Hour" msgstr "Hora" msgid "Minute" msgstr "Minuto" msgid "Today" msgstr "Hoje" msgid "Tomorrow" msgstr "Amanhã" msgid "Selected task will be removed." msgstr "Selecionar tarefa a ser removida." msgid "Select date and time" msgstr "Selecionar data e hora." msgid "Enable sound notification" msgstr "Habilitar som de notificação" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Aviso de alarme" msgid "Days" msgstr "Dias" msgid "Hours" msgstr "Horas" msgid "Minutes" msgstr "Minutos" msgid "Alarm command" msgstr "Comando de alarme" msgid "Date period" msgstr "Período de data" msgid "Months" msgstr "Meses" msgid "Repeat" msgstr "Repetir" msgid "Repeat in the following days" msgstr "Repetir nos dias a seguintes" msgid "Time period" msgstr "Período de tempo" msgid "Start" msgstr "Começar" msgid "End" msgstr "Fim" msgid "Interval" msgstr "Intervalo" msgid "Ignore alarm when task expired offline" msgstr "Ignorar aviso quando tarefa termina desligada" msgid "Recurrent task" msgstr "Tarefa recorrente" msgid "Enable" msgstr "Habilitar" msgid "Edit task" msgstr "Editar tarefa" msgid "Add task" msgstr "Adicionar tarefa" msgid "Basic" msgstr "Básico." msgid "Advanced" msgstr "Avançado" msgid "New Moon" msgstr "Lua Nova" msgid "Waxing Crescent Moon" msgstr "Lua Crescente" msgid "Quarter Moon" msgstr "Lua Quarto Crescente" msgid "Waxing Gibbous Moon" msgstr "Lua Crescente Gibosa" msgid "Full Moon" msgstr "Lua Cheia" msgid "Waning Gibbous Moon" msgstr "Lua Minguante Gibosa" msgid "Last Quarter Moon" msgstr "Lua Quarto Minguante" msgid "Waning Crescent Moon" msgstr "Lua Minguante" msgid "Cannot create backup!" msgstr "Não foi possível criar backup!" msgid "Save backup" msgstr "Salvar backup" msgid "Password protection" msgstr "Proteção por senha" msgid "Enter password" msgstr "Digite a senha" msgid "Re-enter password" msgstr "Repita a senha" msgid "Please enter the password" msgstr "Favor digitar a senha" msgid "Passwords do not match!" msgstr "As senhas não coincidem!" msgid "Backup file saved successfully!" msgstr "Arquivo de backup salvo com sucesso!" msgid "Open backup file" msgstr "Abrir arquivo de backup" msgid "Osmo backup files (*.bck)" msgstr "Arquivo de backup Osmo (.*bck)" msgid "This is not Osmo backup file" msgstr "Este não é um arquivo de backup Osmo" msgid "Incorrect password!" msgstr "Senha incorreta!" msgid "All your data will be replaced with backup file content." msgstr "Todos os dados serão substitutos com o conteúdo do arquivo de backup." msgid "Osmo has to be restarted now..." msgstr "Osmo será reiniciado agora..." msgid "Please select address" msgstr "Favor selecione o endereço" msgid "First name" msgstr "Primeiro nome" msgid "Last name" msgstr "Sobre nome" msgid "Second name" msgstr "Segundo nome" msgid "Nickname" msgstr "Apelido/Nickname" msgid "Tags" msgstr "Tags" msgid "Name day date" msgstr "Data do dia" msgid "Home address" msgstr "Endereço residencial" msgid "Home postcode" msgstr "CEP residencial" msgid "Home city" msgstr "Cidade natal" msgid "Home state" msgstr "Estado natal" msgid "Home country" msgstr "País de origem" msgid "Organization" msgstr "Organização" msgid "Department" msgstr "Departamento" msgid "Work address" msgstr "Endereço do trabalho" msgid "Work postcode" msgstr "CEP do trabalho" msgid "Work city" msgstr "Cidade onde trabalha" msgid "Work state" msgstr "Estado de onde trabalha" msgid "Work country" msgstr "País de onde trabalha" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Telefone residencial" msgid "Home phone 2" msgstr "Telefone residencial 2" msgid "Home phone 3" msgstr "Telefone residencial 3" msgid "Home phone 4" msgstr "Telefone residencial 4" msgid "Work phone" msgstr "Telefone do trabalho" msgid "Work phone 2" msgstr "Telefone do trabalho 2" msgid "Work phone 3" msgstr "Telefone do trabalho 3" msgid "Work phone 4" msgstr "Telefone do trabalho 4" msgid "Cell phone" msgstr "Celular" msgid "Cell phone 2" msgstr "Celular 2" msgid "Cell phone 3" msgstr "Celular 3" msgid "Cell phone 4" msgstr "Celular 4" msgid "E-Mail" msgstr "E-Mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "Endereço de bate-papo Gadu-Gadu" msgid "IM Yahoo" msgstr "Endereço de bate-papo Yahoo" msgid "IM MSN" msgstr "Endereço de bate-papo MSN" msgid "IM ICQ" msgstr "Endereço de bate-papo ICQ" msgid "IM AOL" msgstr "Endereço de bate-papo AOL" msgid "IM Jabber" msgstr "Endereço de bate-papo Jabber" msgid "IM Skype" msgstr "Endereço de bate-papo Skype" msgid "IM Tlen" msgstr "Endereço de bate-papo Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Foto" msgid "New contact" msgstr "Novo contato" msgid "Remove contact" msgstr "Remover contato" msgid "Show birthdays" msgstr "Mostrar aniversários" msgid "Show contact location on the map" msgstr "Ver localização do contato no mapa" msgid "Backup data" msgstr "Dados de backup" msgid "Restore data" msgstr "Restaurar dados" msgid "About" msgstr "Créditos" msgid "Clear" msgstr "Limpar" msgid "First Name" msgstr "Primeiro Nome" msgid "Last Name" msgstr "Sobre Nome" msgid "All fields" msgstr "Todos os campos" msgid "Contact details" msgstr "Detalhes do contato" msgid "Close contact panel" msgstr "Fechar painel de contato" msgid "The note has changed." msgstr "A nota foi modificada" msgid "Do you want to save it?" msgstr "Você realmente deseja salvá-la?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Palavras" msgid "Lines" msgstr "Linhas" msgid "Characters" msgstr "Carácteres" msgid "White characters" msgstr "Carácteres brancos" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Documento" msgid "Selection" msgstr "Seleção" msgid "Modified" msgstr "Modificado em" msgid "New note" msgstr "Nova nota" msgid "Edit note" msgstr "Editar nota" msgid "Delete note" msgstr "Deletar nota" msgid "Save note" msgstr "Salvar nota" msgid "Find" msgstr "Encontrar" msgid "Toggle spell checker" msgstr "Habilitar/Desabilitar corretor ortográfico" msgid "Bold" msgstr "Negrito" msgid "Italic" msgstr "Itálico" msgid "Underline" msgstr "Sublinhado" msgid "Strikethrough" msgstr "Riscar" msgid "Highlight" msgstr "Realçar" msgid "Clear attributes" msgstr "Limpar atributos" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Inserir data e hora atual" msgid "Insert separator" msgstr "Inserir separador" msgid "Statistics" msgstr "Estatistias" msgid "Close editor" msgstr "Fechar editor" msgid "Note name" msgstr "Nome da nota" msgid "Read-only" msgstr "Somente leitura" msgid "Line" msgstr "Linha" msgid "Column" msgstr "Coluna" msgid "case sensitive" msgstr "diferenciar maiúsculas de minusculas" msgid "Close find entry" msgstr "Fechar entrada da pesquisa" msgid "Edit entry" msgstr "Editar entrada" msgid "Remember cursor position" msgstr "Lembrar posição do cursor" msgid "Selected note will be removed." msgstr "Nota selecionada será removida." msgid "No further data recovery will be possible." msgstr "Nenhuma recuperação de dados será possivel." msgid "Add note" msgstr "Adicionar nota" msgid "Plain" msgstr "Planíce" msgid "Encrypted" msgstr "Criptografado" msgid "Note type" msgstr "Tipo de nota" msgid "Cannot open the note." msgstr "Não foi possível abrir nota." msgid "encryption support is disabled" msgstr "suporte a criptografia está desativado" msgid "Authorization" msgstr "Autorização" msgid "year" msgid_plural "years" msgstr[0] "ano de idade" msgstr[1] "anos de idade" msgid "day" msgid_plural "days" msgstr[0] "dia" msgstr[1] "dias" msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" msgid "or" msgstr "ou" msgid "rounded down" msgstr "arredondado para baixo" msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" msgid "working day" msgid_plural "working days" msgstr[0] "dia útil" msgstr[1] "dias úteis" msgid "time is ignored" msgstr "hora é ignorada" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "dia de final de semana" msgstr[1] "dias de fim-de-semana" msgid "This calculator only supports dates after year 1." msgstr "Esta calculadora suporta apenas datas após um ano." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "dia de final de semana ignorado" msgstr[1] "dias de fim-de-semana ignorado" msgid "Date calculator" msgstr "Calcular data" msgid "Current date" msgstr "Data de hoje" msgid "Set current date" msgstr "Definir dia de hoje" msgid "Second" msgstr "Segundo" msgid "Set current time" msgstr "Definir a hora atual" msgid "Reset time" msgstr "Resetar hora" msgid "First date and time" msgstr "Primeira data e hora" msgid "Second date and time" msgstr "Segunda data e hora" msgid "Alternative time units" msgstr "Unidades de tempo alternativas" msgid "Result" msgstr "Resultado" msgid "Duration between two dates" msgstr "Duração entre duas datas" msgid "Operation" msgstr "Operação" msgid "add" msgstr "adicionar" msgid "subtract" msgstr "subtrair" msgid "Date and time to add or subtract from" msgstr "Data e hora para adicionar ou subtrair" msgid "Years" msgstr "Anos" msgid "Weeks" msgstr "Semanas" msgid "Seconds" msgstr "Segundos" msgid "Ignore weekend days" msgstr "Ignorar dias de final de semana" msgid "Reset fields" msgstr "Reiniciar campos" msgid "Time to add or subtract" msgstr "Tempo para adicionar ou subtrair" msgid "Add to or subtract from a date" msgstr "Adicionar ou subtrair de uma data" msgid "Cannot perform selected operation." msgstr "Não foi possível executar a operação selecionada" msgid "Task has been modified or removed." msgstr "A tarefa foi modificada ou removida." msgid "Remind me later" msgstr "Lembrar mais tarde." msgid "Done" msgstr "Feito" msgid "Show task" msgstr "Mostrar tarefa" msgid "Alarm warning!" msgstr "Aviso de alarme!" msgid "postponed" msgstr "adiada" msgid "Day note" msgstr "Nota do dia" msgid "Events" msgstr "Eventos" msgid "Event" msgstr "Evento" msgid "Task" msgstr "Tarefa" msgid "Birthday" msgstr "Aniversário" msgid "Show Osmo" msgstr "Mostrar Osmo" msgid "event" msgid_plural "events" msgstr[0] "evento" msgstr[1] "eventos" msgid "No valid calendars defined" msgstr "Nenhum calendário válido definido." msgid "iCalendar events" msgstr "Eventos iCalendar" msgid "Time" msgstr "Hora" msgid "The list will be cleared and all entries will be lost." msgstr "A lista será apagada e todas as entradas serão perdidas." msgid "event exported" msgid_plural "events exported" msgstr[0] "evento exportado" msgstr[1] "eventos exportados" msgid "iCalendar export" msgstr "Exportar iCalendar" msgid "Day Selector" msgstr "Seletor Dia" msgid "Use date period" msgstr "Use período de data" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Não há tarefas com data definida encontrada." msgid "Save tasks" msgstr "Salvar tarefas" msgid "tasks exported" msgstr "tarefas exportadas" msgid "was born" msgstr "nasceu" msgid "year old" msgid_plural "years old" msgstr[0] "ano" msgstr[1] "anos" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "dia até o final do ano" msgstr[1] "dias até o final do ano" msgid "the last day of the year" msgstr "o último dia do ano" msgid "Day tasks" msgstr "Tarefas do dia" msgid "Selected day note will be removed." msgstr "Nota do dia selecionado será removida." msgid "Continue?" msgstr "Continuar?" msgid "Previous year" msgstr "Ano anterior" msgid "Previous month" msgstr "Mês anterior" msgid "Previous day" msgstr "Dia anterior" msgid "Next day" msgstr "Dia seguinte" msgid "Next month" msgstr "Próximo mês" msgid "Next year" msgstr "Próximo ano" msgid "Full-year calendar" msgstr "Todo o ano do calendário" msgid "Print calendar" msgstr "Imprimir calendário" msgid "Toggle day note panel" msgstr "Habilitar/Desabilitar painel de nota diária" msgid "Select day color" msgstr "Selecione a cor do dia" msgid "Browse notes" msgstr "Procurar notas" msgid "Browse iCal events" msgstr "Procurar eventos iCal" msgid "Export to iCal file" msgstr "Exportar para arquivo iCal" msgid "Previous and next month" msgstr "Mês anterior e próximo" msgid "Close note panel" msgstr "Fechar painel de notas" msgid "Clear text" msgstr "Limpar texto" msgid "Info" msgstr "Informações" msgid "Select color" msgstr "Selecione a cor" msgid "Name day" msgstr "Nome do dia" msgid "Printing properties" msgstr "Propriedades de impressão" msgid "Month name" msgstr "Nome do mês" msgid "Day name" msgstr "Nome do dia" msgid "Fonts" msgstr "Fontes" msgid "Birthdays" msgstr "Aniversários" msgid "Namedays" msgstr "Nome dos dias" msgid "Visible events" msgstr "Eventos visíveis" msgid "Padding" msgstr "Acolchoamento" msgid "Event maximum length" msgstr "Comprimento máximo do evento" msgid "Page orientation:" msgstr "Orientação da página:" msgid "Portrait" msgstr "Retrato" msgid "Landscape" msgstr "Paisagem" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Ano bissexto" msgid "Yes" msgstr "Sim" msgid "No" msgstr "Num" msgid "Chinese year animal" msgstr "Ano zodíaco chinês" msgid "Number of days" msgstr "Número de dias" msgid "Number of weeks" msgstr "Número de semanas" msgid "Number of weekend days" msgstr "Número de dias de fim-de-semana" msgid "Year info" msgstr "Informação do ano" msgid "Alternative view" msgstr "Visão alternativa" msgid "Started" msgstr "Começou" msgid "Finished" msgstr "Finalizado" msgid "New task" msgstr "Nova tarefa" msgid "Remove task" msgstr "Remover tarefa" msgid "Change due date to previous date" msgstr "Alterar data de vencimento até a data anterior" msgid "Change due date to next date" msgstr "Alterar data de vencimento para próxima data" msgid "Export tasks" msgstr "Exportar tarefas" msgid "Print visible tasks list" msgstr "Imprimir lista de tarefas visíveis" msgid "Task details" msgstr "Detalhes da tarefa" msgid "Close description panel" msgstr "Fechar painel de descrição" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "mudar para aba anterior" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDown" msgid "switch to next tab" msgstr "mudar para próxima aba" msgid "switch to selected page" msgstr "mudar para a página selecionada" msgid "show options window" msgstr "mostrar janela de opções" msgid "show about window" msgstr "mostrar janela de créditos" msgid "toggle fullscreen mode" msgstr "habilitar/desabilitar o modo de tela cheia" msgid "PageUp/PageDn" msgstr "PageUp/PageDown" msgid "switch page in options and about tab" msgstr "mudar página em opções e aba de créditos" msgid "exit" msgstr "sair" msgid "Space" msgstr "Espaço" msgid "select current date" msgstr "selecionar data atual" msgid "Ctrl+Space" msgstr "Ctrl+Espaço" msgid "toggle personal data visibility" msgstr "Habilitar/Desabilitar visibilidade de dados pessoais" msgid "Arrows" msgstr "Setas" msgid "change day" msgstr "alterar dia" msgid "Ctrl+Up/Down" msgstr "Ctrl+Cima/Baixo" msgid "scroll the contents in the day info panel" msgstr "rolar o conteúdo no painel de informações do dia" msgid "change month" msgstr "mudar mês" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "mudar ano" msgid "toggle calendars for the previous and next month" msgstr "habilitar/desabilitar Mês anterior e próximo" msgid "day notes browser" msgstr "navegador de notas do dia" msgid "assign background color to day note" msgstr "atribuir cor de fundo a nota diária" msgid "date calculator" msgstr "calculador de datas" msgid "show full-year calendar" msgstr "mostrar calendário do ano completo" msgid "jump to date" msgstr "ir para data" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "remover nota do dia" msgid "Alt+Arrows" msgstr "Alt+Setas" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "fechar editor" msgid "toggle bold" msgstr "habilitar/desabilitar negrito" msgid "toggle italic" msgstr "habilitar/desabilitar itálico" msgid "toggle underline" msgstr "habilitar/desabilitar sublinhado" msgid "toggle strikethrough" msgstr "habilitar/desabilitar tachado" msgid "toggle highlight" msgstr "habilitar/desabilitar destaque" msgid "Arrows Up/Down" msgstr "Setas Cima/Baixo" msgid "toggle alternative view" msgstr "habilitar/desabilitar visão alternativa" msgid "year info" msgstr "informações do ano" msgid "set current year" msgstr "definir ano atual" msgid "close full-year calendar" msgstr "fechar calendário do ano completo" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "adicionar tarefa" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "editar tarefa" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "remover tarefa" msgid "toggle hidden tasks" msgstr "habilitar/desabilitar as tarefes ocultas" msgid "activate search field" msgstr "ativar campo de pesquisa" msgid "Left, Right" msgstr "Esquerda, Direita" msgid "change category filter" msgstr "alterar categoria de filtro" msgid "close task info panel" msgstr "fechar tarefa do painel de informação" msgid "Insert" msgstr "Inserir" msgid "add contact" msgstr "adicionar contato" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "editar contato" msgid "remove contact" msgstr "remover contato" msgid "change search mode" msgstr "mudar modo de busca" msgid "close contact details panel" msgstr "fechar painel de detalhes do contato" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "abrir nota" msgid "add note" msgstr "adicionar nota" msgid "remove note" msgstr "remover nota" msgid "edit note name and category" msgstr "editar nome da nota e categórica" msgid "close note editor" msgstr "fechar editor de notas" msgid "save note" msgstr "salvar nota" msgid "find text" msgstr "localizar texto" msgid "clear selection attributes" msgstr "limpar atributos da seleção" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO foi projetado tendo em mente a conveniência do usuário, são vários os " "atalhos do teclado. Aqui está a lista completa:" msgid "Note editor" msgstr "Editor de notas" msgid "Selector" msgstr "Seletor" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "Um conveniente organizador pessoal" msgid "compiled on" msgstr "compilado em" msgid "Programming" msgstr "Desenvolvedores" msgid "Graphics" msgstr "Gráficos" msgid "Contributors" msgstr "Contribuintes" msgid "Translators" msgstr "Tradutores" msgid "Mailing lists" msgstr "Lista de E-mails" msgid "Bug tracker" msgstr "Lista de Bugs" msgid "Feature requests" msgstr "Solicitação de Recurso" msgid "Available modules" msgstr "Módulos disponíveis" msgid "Compiled-in features" msgstr "Funcionalidades compiladas" msgid "iCalendar support" msgstr "Suporte ao iCalendar" msgid "Encrypted notes support" msgstr "Suporte a notas criptografadas" msgid "Backup support" msgstr "Suporte a Backup" msgid "Printing support" msgstr "Suporte a Impressão" msgid "Spell checker support" msgstr "Suporte ao verificador ortográfico" msgid "version" msgstr "versão" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Atalhos do teclado" msgid "License" msgstr "Licença" #~ msgid "handy personal organizer" #~ msgstr "organizador pessoal à mão" osmo-0.4.2/po/ca.mo0000664000175000017500000006740413204320601010755 00000000000000 + ++, , ,,.7,f,o,x,,,, , ,, ,, , , - --,-(=- f-q- z---&-$- --- - ...#.*. =.J.*P.{.. ....."./ /$/ 3/>/ G/ R/ _/ l/ y/////// /// 0000A0G0.]0!0 0000 011 1 )161>1 F1S1f1 1 1 1 11 11%11 2 2 !2-2 12>2 M2Z2c2 s2 }2 222+2 2 2 22323J3N3S3Y3`3i33333 3!3 3 3 3 34 44424F4Y4 i4t4x4444 44444444 4555'5.535 <5G5 [5f5k5 |5 555555555555666,6 16;6 @6 M6 W6 d6 o6 |6 6 6 66666 66 66666&7-747 D7P7d7 i7u777777777 7 78 88 &8 38 =8G8L8P8V8^8d8 h8 s8888 888888 88 88 8 999 %9 09:9C9F9[9*c99"9999 9 99 99 :#:72:j:: :: :: :::::: : ;;:;P;j; s; ;; ;; ;;;; < <<"<'<+<1<C<J<Y<#u<<<< <<< < === ="*= M=W=_=f=m= ===== == == >!>"5>X>x>>>> >>->"?3?D?M? S?]? l? z??%?? ? ?? @ @@!.@JP@@@@@@@ @@ @@A A $A2A 7A"DAgAvA |AA6AAAA1AB !B -B9BQB ZBdBjByBBB BB BBBB#BCCC C0C4C:C@CFC[CoCwC|CC C CC CCCC DD D !D +D 8D CD PD ]D jD xD D DD DDD DDD DDD#DE)E @E KEXE kEwEEEE EE"E"F2F;F*MF xFF F F FFF F FFGG'G7G IGVGeG mG zGG GG GGG G G G G)GH&H:HRH$[HHHHHH0HI&IFINI WI bImIcIJ JK #K0K:BK }K KKK KKKKK LLL$L3LELULsL*L LL LLL L)L (M5MV BVPVaVhVwV~VVVVVVV V VVVVVWW%W*W0W7W=WDWLWiWWWWWWWW W W W XX$X+X0X6X =XJX QX[XbXkXsX4|XXXXX X YY#Y+YFYXYqY zYYYYYYY YYY YYYZ ZZ!Z 'Z2ZCZKZQZXZ gZqZZZZ ZZZ Z Z Z ZZ Z Z [[[ 2[*=[h[-z[[[[[[[[[\ \I0\z\\ \\ \\\\"\] ] "]-]?]D]>K])] ]] ]] ^ ^ ^*^#=^ a^k^z^^^^^^^^(^,_1_I_Z_l_{_______+_ ````$` 6`@`G`_`u````"``*a1;a0maaa(a*ab1bDAbbb bb bbbbc-c'Bc jcxc&c ccc cK dUd\dadgdzddd ddddddde%e:eOeWene8teeee<e f ff1fGf Xfdfif!fff ff f ff$f&g7g>gDgJg\g`gfglgrgzggggg gggg!ghh h)h/hChVhhh}hhhhh h hi iiii.iKi Qi ^i ji$wi*ii i ii j$%jJj fjsj j!j%jjjk) kJk!Zk |kkk-kkk kkll4lGlZl ilvl }lll lllll lll m7m Nm[m!vmm9mmm"n4nHn8Mn"n&nnnn n nw:?$Xt#>6L&Tnme-yj;,E aRbC6b'd9+B-`+2$ Y? Q Ge.i~VJ v[a  *5#9x"275!4 1HuOTgq},^EN"s|t8@v*`);<=[\{KD{W1|(c7p Lr%PJ)m_ xK qIp MfUuBs\gh S@Drf.>lF U3Zn=/i0%& ZOA]'HGkShz83_N0Y~Q(MjI4woRy}zl!PkoA FC^VW:dc]</X0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowAscending sorting in day notes browserAt least one module must be visible.AuthorizationBestBirthdayBirthday dateBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create file.Cannot open file.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable system trayEnable tooltipsEncryptionEndEnter passwordErrorError printingEventEvent markerEvent marker colorEventsExportExport contactsExport to iCal fileFastFaxField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFowlFree-hand circleFrom (hour)Full MoonFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonthsMoon phaseNameName day dateNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No.NoneNoteNote fontNote nameNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOperationOptionsOrganizationOutput filenameOutput formatOxPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlease select at least one day when recurrency is enabled.Please select file first.PostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRecurrent taskRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysReset fieldsReset timeResultRightSagittariusSave data after every modificationSave noteScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectorSet absolute path for settings and data filesSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTaskTask detailsTask has been modified or removed.Task info fontTasksTasks optionsTaurusThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.TigerTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday till end of yeardays till end of yearedit contactedit note name and categoryedit taskentryentrieseventeventsevent exportedevents exportedexitfind texthourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateshow full-year calendarsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagethe last day of the yeartodaytoggle calendars for the previous and next monthtoggle hidden taskstoggle personal data visibilityversionwas bornweekweeksyearyearsyear oldyears oldProject-Id-Version: Osmo 0.2.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2008-02-03 20:09+100 Last-Translator: Roger Adell Language-Team: Català Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); 0 per a deshabilitarUn pràctic organizador personalSobre...Nou contacteAfegir capçaleraCrear nova tasca al fer doble click a la llista de tasquesAfegir notaNova tascaSumar o restar d'una dataInformació addicionalDireccióEdatComanda d'alarmaAlarma d'avís!Avís d'alarma!AlgoritmeTotTots els fitxersTots els campsTots els elementsTotes les notesUnitats de temps alternativesVista alternativaUna altra còpis d'OSMO s'està executant.AparençaAquariEsteu segurs?ÀriesFletxaOrdrn ascendent en notes del diaCom a mínim un mòdul ha de ser visivle.AutorizacióMillorData de naixementData de naixementLista d'aniversarisBlogNegretaAvallExplorar events d'iCalendarExplorar notesBytesArxius CSV (valors separats per comes) (*.csv)CalendariFitxers de calendari (*.ics)Font del calendariNotes del calendariCrancNo s'ha pogut crear el fitxer.El fitxer no es pot obrir.No es pot dur a terme la operació sel·leccionada.El fitxer no es pot llegir.CapricornCoincidència de majúscules / minúsculesCategoriesCategoriaTelèfon mòbilTelèfon mòbil 2Telèfon mòbil 3Telèfon mòbil 4CaràctersComprovar els esdeveniments des de l'última execucióAnimal del calendario xinèsCercleCiutatEsborrarEsborrar formatEsborrar textTancar detalls del contacteTancar descripcióTancar editorTancar barra de búsquedaTancar notesColorColor de les etiquetes de contactesColor dels elements que finalitzaran durant els pròxims 7 diesColor dels elements que finalitzen avuiColor dels elements que ja han vençutColor d'enllaçosColorsCaracterístiques complertesCompressióDetalls del contacteContactesContinuar?ContribucionsPaísCreatData actualMarca de data actualColor de marca de data actualMes actualHora actualAny actualColor del cursorGruix del cursorDD-MM-AAAADataData i hora de la que sumar o restarCalculadora de datesFont de la dataFormat dataPeríode de datesDiaSel·leccionar diaCategories de diesCategoria de diesNota del diaMarca per a nota del diaNotes del diaNúmero de diaTasques del diaDiesDies fins l'aniversariEliminar las tasques determinades sense confirmacióEsborrar notaDepartamentDescripcióDeshabilitar subratllat dels enllaçosDesitja continuar?Desitja guardar-la?gosFetFet!DracData de finalitzacióTemps entre dues datesCorreu electrònicCorreu electrònic 2Correu electrònic 3Correu electrònic 4Client de correu electrònicERROR: No s'ha pogut crear el fitxer de configuració.Editar contacteEditar elementEditar notaEditar tascaEditorElipseHabilitarMostrar calendaris auxiliarsUsar cursor de blocMostrar icona a la safata de sistemaMostrar sugerènciesXifradoFiEntrea la contrassenyaErrorError imprimintEsdevenimentMarca d'esdevenimentsColor de marca d'esdevenimentsEsdevenimentsExportarExportar contactesExportar a fitxer iCalRàpidaFaxTipus de campCamps a exportarFitxerNom de l'arxiuFiltreBuscarAcabatNomData i hora d'iniciNomGallCercleDesde (hora)Lluna plenaCalendario d'Any complertGèminisGeneralComanda global de notificacióBonaGràficsGrupGrupsLlebreResumAjudesOcultarOcultar tasques determinadesOcultar columna de grupsAltaDestacatCasaAdreça de recidènciaCiutat de residènciaPaís de residènciaTelèfonTelèfon 2Telèfon 3Telèfon 4Còdi postalRegió de residènciaCavallHoraHoresIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnorar alarmes quan la tasca expira sense connexióImportarImportar contactesTipus d'importacióContrassenya incorrecta!InformacióInformacióFitxer d'entradaInserirInserir data i hora actualInserir separadorInsertar franja de tempsInternetIntèrvalInvertirCursivaAnar a la dataDreceres del teclatGranCognomsQuart minvantÚltima canvisCognomAny de canviEsquerraLleóBalançaLlicènciaLíniesBaixaMM-DD-AAAADies assenyalatsMitjanaMinutMinutsMiscel·làniaModificatModificar paràmetres d'ICALMonoMesMesosFase lunarNomSantLluna novaNou contacteNova notaNova tascaDi­a següentMes següentAny següentPseudònimNoNo s'han definit aniversarisSense dataNo es podran recuperar les dades després.No canviar de mesCap registre trobat al fitxer sel·leccionat.No.CapNotaFont de les notesNombre de la notaNotesOpcions de notesRes per importar.Número de camps per registreNúmero de diesNúmero de dies per comprovar esdeveniments cap endavant (por defecto: 0)Dies de cap de setmanaNúmero de setmanesOperacióOpcionsOrganizacióFitxer de sortidaFormat de sortidaBouLes contrassenyes no coincideixen!PersonalTelèfonsFotografiaTamany de la fotoPorcPeixosSel·leccioni com am mínim un dia si la tasca és repetitiva.Si us plau, sel·leccioni el fitxer abansCodi postalRetardament d'avís posposatPreferènciesMes sigüent i anteriorDia anteriorMes anteriorAny anteriorImprimir calendariImprimir llista de tasques visiblesPrioritatDesarrollamentQuart creixentPreguntaSalirRataRatiEscriu la contrasesenya de nouRegistreTasca repetitivaRecordar última pàgina sel·leccionadaRecordar l'última categoria sel·leccionadaRecordar-m'ho més tardOpcions d'avisosEliminar contacteEliminar tascaRepetirRepetir els dies següentsReiniciar campsReiniciar horaResultatDretaSagitariGuardar dades després de cada modificacióGuardar notaEscorpíBuscarSegonData i hora de fiSegon nomSegonsSel·lecioni fitxer CSVSeleccioni fitxer ICSSeleccioni una font...Sel·leccionar colorSel·leccionar color del di­aSel·leccioni campsSel·leccioni el fitxer de sortidaSel·leccioni fotografiaEl contacte sel·leccionat serà esborrat.La nota del di­a sel·leccionat serà eliminada.El fitxer sel·leccionat existeix. Sobreesciure?Mes sel·leccionatMes i any sel·leccionatLa nota sel·leccionada serà eliminada.Les tasques sel·leccionades s'eliminaran.Any sel·leccionatSelL·leccionarEstableixi la ruta absoluta per als fitxers de dades i configutacióFixar data actualFixar hora actualFixar horaOvellaMostrar OsmoMostrar aniversariMostrar calendariMostrar contactesMostrar nom del diaMostrar en negreta tasques amb prioritat altaMostrar al panell d'informació del diaMostrar notesMostrar opcionsMostrar petita finestra del calendarioMostrar tascaMostrar tasquesMostrar número de setmanaVista simple del calendari anualUsar simultàniament dos o més còpies d'OSMO pot causar pèrdua de dades.PetitaSerpIniciIniciar minimitzatIniciRegióEstadístiquesSalt (minuts)TatxatTatxar notes de dies passatsResumSafata de sistemaPosició de les pestanyesTascaDetalls de la vistaLa tasca ha estat editada o esborradaCons per als detallsTasquesOpcions de les tasquesTaureLa llista serà buidada, totes les entrades es perderan.La nota ha canviat.GruixutPrimAquesta calculadora només afmet dates posteriors a l'any 1.TigreFormat d'horaPeríode de tempsHora a sumar o restarFranges de tempsFins (hora)AvuiDistància al di­a d'avuiMostrar / ocultar notes del di­aDemàAmuntTraductorsTipusSubratllatDesconegutPeríode de datesUsar primer registe com a capçaleraUsar format de data i hora del sistemaVàlidValorVergeColumnes visiblesWWWWWW 2WWW 3WWW 4MinvantMinvantAvísOnaCreixentCreixentNavegadorNúmero de setmanaLa setmana comença dillunsDies en cap de setmanaColor dels dies de cap de setmanaSetmanesEspaisParaulesFeinaAdreça de la feinaCiutat de la feinaPaís de la feinaTelèfon de la feinaTelèfon de la feina 2Telèfon de la feina 3Telèfon de la feina 4Còdi postal de la feinaRegió de la feinaAAAA-DD-MMAAAA-MM-DDAnyNota del'anyAnysSiSigne del zodiacactivar el camp de búsquedasumarnou contacteafegir notaafegir tascaasignar color de fons a nota del diaCoincidència de majúscules / minúsculescanviar filtre de categoriescanviar diacanviar mescanviar el mode de búsquedacanviar anyeliminar atributs de la sel·lecciótancar detalls del contactetancar notestancar informació de la tascacompilat elcontacte afegitcontactes afegitscontacte exportatcontactes exportatscalculadora de datesdiadiesExplorador de notes del diadies fins a fi d'anydies fins a fi d'anyeditar contacteeditar nom de la nota y categoriaeditar tascaelementelementsesdevenimentesdevenimentsesdeveniment exportatesdeveniments exportatssortirbuscarhorahoreshoresesdeveniments d'iCalendarExportació d'iCalendarArxius d'iCalendarSoport d'iCalendaranar a la dataminutminutsminutsmesmesossense entradesdeobrir notaoPosposateliminar contacteeliminar nota del diaeliminar notaeliminar tascaarrodonit cap a baixguardar notadesplaçar el contigut del panell d'informació del diasegonsegonssel·leccionar data actualmostrar calendario d'any complertrestarcanviar de pàgina a les pestanyes "Opcions" i "Sobre..."anar a la pestanya següentanar a la pestanya anterioranar a la pestanya sel·leccionadaÚltim dia de l'anyAvuimostrar / ocultar calendaris pel mes anterior i següentmostrar / ocultar tasques amagadescanviar visibilitat de dades personalsversiónaixésetmanasetmanesanysanysedatedatosmo-0.4.2/po/zh_CN.po0000664000175000017500000010111413204320601011361 00000000000000# Chinese translation of Osmo # This file is distributed under the same license as the Osmo package. # sasaqqdan , 2009. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2009-10-20 15:11+0800\n" "Last-Translator: sasaqqdan \n" "Language-Team: puppy.cnbits.com \n" "Language: zh_CN\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" msgid "Colors" msgstr "色彩" msgid "Color of contact tags" msgstr "联系人标签颜色" msgid "Color of links" msgstr "链接颜色" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "照片大小" msgid "Small" msgstr "小" msgid "Medium" msgstr "中" msgid "Large" msgstr "大" msgid "Hide group column" msgstr "隐藏分组栏" msgid "Maps provider" msgstr "" msgid "Age" msgstr "年龄" msgid "Birthday date" msgstr "生日" msgid "Zodiac sign" msgstr "黄道星座" msgid "Contacts" msgstr "联系人" msgid "Appearance" msgstr "外观" msgid "Miscellaneous" msgstr "其他" msgid "Groups" msgstr "群组" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "算法" msgid "Hashing" msgstr "哈希" msgid "Compression" msgstr "压缩" msgid "Ratio" msgstr "比率" msgid "Fast" msgstr "快" msgid "Good" msgstr "好" msgid "Best" msgstr "最好" msgid "Type" msgstr "类型" msgid "Category" msgstr "类别" msgid "Last changes" msgstr "最后更改" msgid "Created" msgstr "已创建" msgid "Remember the last selected category" msgstr "记录最近已选择的分类" msgid "Use system format for date and time" msgstr "使用系统日期和事件格式" msgid "Notes" msgstr "笔记" msgid "Encryption" msgstr "加密" msgid "Visible columns" msgstr "列可见" msgid "Categories" msgstr "类别" msgid "Notes options" msgstr "笔记选项" msgid "Jump to date" msgstr "跳转到日期" msgid "Day" msgstr "日" msgid "Month" msgstr "月" msgid "Year" msgstr "年" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "选择字体......" msgid "None" msgstr "无" msgid "All items" msgstr "所有项目" msgid "Question" msgstr "问题" msgid "Information" msgstr "信息" msgid "Error" msgstr "错误" msgid "Warning" msgstr "警告" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "选择的文件已存在!是否覆盖?" msgid "Selected contact will be removed." msgstr "已选择的联系人将被删除。" msgid "Are you sure?" msgstr "你确定?" msgid "No date" msgstr "无日期" msgid "Select photo" msgstr "选择照片" msgid "Address" msgstr "地址" msgid "Postcode" msgstr "邮编" msgid "City" msgstr "城市" msgid "State" msgstr "省" msgid "Country" msgstr "国家" msgid "Edit contact" msgstr "编辑联系人" msgid "Add contact" msgstr "添加联系人" msgid "Personal" msgstr "个人" msgid "Group" msgstr "组" msgid "Home" msgstr "家庭" msgid "Work" msgstr "工作" msgid "Phones" msgstr "电话号码" msgid "Internet" msgstr "互联网" msgid "Additional info" msgstr "附加信息" msgid "_OK" msgstr "" msgid "no entries" msgstr "没有导入" msgid "entry" msgid_plural "entries" msgstr[0] "" msgid "Calendar notes" msgstr "日历笔记" msgid "Search" msgstr "查找" msgid "Filter" msgstr "过滤" msgid "Current month" msgstr "当前月份" msgid "Selected month" msgstr "已选择月份" msgid "Current year" msgstr "当前年份" msgid "Selected year" msgstr "已选择年份" msgid "Selected month and year" msgstr "选定的月份和年份" msgid "All notes" msgstr "所有项目" msgid "Case sensitive" msgstr "大小写敏感" msgid "Strikethrough past day notes" msgstr "给过往日期笔记添加删除线" msgid "Date" msgstr "日期" msgid "Note" msgstr "笔记" msgid "_Close" msgstr "" msgid "Rat" msgstr "鼠" msgid "Ox" msgstr "牛" msgid "Tiger" msgstr "虎" msgid "Hare" msgstr "兔" msgid "Dragon" msgstr "龙" msgid "Snake" msgstr "蛇" msgid "Horse" msgstr "马" msgid "Sheep" msgstr "羊" msgid "Monkey" msgstr "猴" msgid "Fowl" msgstr "鸡" msgid "Dog" msgstr "狗" msgid "Pig" msgstr "猪" msgid "Unknown" msgstr "未知" msgid "Aquarius" msgstr "水瓶" msgid "Pisces" msgstr "双鱼" msgid "Aries" msgstr "地址" msgid "Taurus" msgstr "半人马" msgid "Gemini" msgstr "双子" msgid "Cancer" msgstr "巨蟹" msgid "Leo" msgstr "狮子" msgid "Virgo" msgstr "处女" msgid "Libra" msgstr "天平" msgid "Scorpio" msgstr "天蝎" msgid "Sagittarius" msgstr "射手" msgid "Capricorn" msgstr "摩羯" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "标签位置" msgid "Left" msgstr "左" msgid "Right" msgstr "右" msgid "Top" msgstr "顶" msgid "Bottom" msgstr "底" msgid "Disable underline in links" msgstr "关闭链接下划线" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "至少保留一个模组可见" msgid "Calendar" msgstr "日历" msgid "Tasks" msgstr "任务" msgid "Override locale settings" msgstr "覆盖语言区域设定" msgid "Date format" msgstr "日期格式" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "时间格式" msgid "hours" msgstr "小时" msgid "Spell checker language" msgstr "拼写检查语言" msgid "Enable tooltips" msgstr "工具提示可用" msgid "Remember last selected page" msgstr "记录最近选择页面" msgid "Save data after every modification" msgstr "每次修改后保存数据" msgid "Web browser" msgstr "WWW 浏览器" msgid "E-mail client" msgstr "邮件客户端" msgid "Sound player" msgstr "声音播放" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "%s 将被替代为 Web 地址" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "%s 将被替代为 E-Mail 地址" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "%s 将被替代为声音文件名" msgid "Enable system tray" msgstr "任务栏可用" msgid "Start minimised" msgstr "启动后最小化" msgid "Ignore day note events" msgstr "忽略笔记事件" msgid "General" msgstr "一般" msgid "Hide" msgstr "隐藏" msgid "Helpers" msgstr "帮助者" msgid "System tray" msgstr "任务栏" msgid "Preferences" msgstr "设置" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "每日笔记标示符" msgid "Event marker" msgstr "事件标示符" msgid "Circle" msgstr "圆圈" msgid "Ellipse" msgstr "椭圆" msgid "Wave" msgstr "波浪" msgid "Current day marker" msgstr "当前日期标示符" msgid "Arrow" msgstr "箭头" msgid "Free-hand circle" msgstr "手写圆圈" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "双休日颜色" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "光标颜色" msgid "Event marker color" msgstr "标题着色" msgid "Current day marker color" msgstr "当前日期标示符颜色" msgid "Birthday marker color" msgstr "生日标示符颜色" msgid "Date font" msgstr "日期字体" msgid "Calendar font" msgstr "日历字体" msgid "Note font" msgstr "笔记字体" msgid "Enable block cursor" msgstr "启用块状光标" msgid "Cursor thickness" msgstr "光标幅度" msgid "Thin" msgstr "薄" msgid "Thick" msgstr "厚" msgid "Edit category" msgstr "" msgid "Color" msgstr "颜色" msgid "Name" msgstr "姓名" msgid "Select ICS file" msgstr "选择 ICS 文件" msgid "All Files" msgstr "全部文件" msgid "Calendar files (*.ics)" msgstr "日历文件(*.ics)" msgid "Modify ICAL parameters" msgstr "修改 ICAL 参数" msgid "Filename" msgstr "文件名" msgid "Options" msgstr "选项" msgid "Disabled" msgstr "" msgid "Valid" msgstr "可用" msgid "Description" msgstr "描述" msgid "Full date" msgstr "日期" msgid "Mark" msgstr "标示" msgid "Week start on Monday" msgstr "一周从星期一开始" msgid "Show day names" msgstr "显示日名" msgid "No month change" msgstr "不改变月份" msgid "Show week numbers" msgstr "显示周数" msgid "Simple view in full-year calendar" msgstr "预览全年日历" msgid "Enable auxilary calendars" msgstr "启用辅助日历" msgid "Ascending sorting in day notes browser" msgstr "升序浏览日记笔记" msgid "Enable spell checker in day notes" msgstr "在日期笔记中启用拼写检查" msgid "Current time" msgstr "当前时间" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "天数" msgid "Today distance" msgstr "距离今天" msgid "Marked days" msgstr "已标识日期" msgid "Week number" msgstr "周数" msgid "Weekend days" msgstr "双休日" msgid "Day category" msgstr "日类别" msgid "Moon phase" msgstr "月相" msgid "Day notes" msgstr "每日记录" msgid "Day categories" msgstr "日类别" msgid "iCalendar files" msgstr "日历字体" msgid "Show in day info panel" msgstr "在信息面板中显示日记" msgid "Tasks list" msgstr "任务列表" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "第" msgid "Summary" msgstr "摘要" msgid "Due date" msgstr "到期" msgid "Priority" msgstr "优先顺序" msgid "Error printing" msgstr "打印错误" msgid "No birthdays defined" msgstr "没有定义生日" msgid "Birthdays list" msgstr "生日列表" msgid "Days to birthday" msgstr "距离生日天数" msgid "today" msgstr "今日" msgid "Select CSV file" msgstr "选择 CSV 文件" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV 文件(逗号分隔值)(*.csv)" msgid "Please select file first." msgstr "请首先选择文件" msgid "Import contacts" msgstr "导入联系人" msgid "Import type" msgstr "导入类型" msgid "File" msgstr "文件" msgid "Input filename" msgstr "输出文件名" msgid "Import" msgstr "导入" msgid "Nothing to import." msgstr "没有导出" msgid "contact added" msgid_plural "contacts added" msgstr[0] "" msgid "of" msgstr "的" msgid "Record" msgstr "记录" msgid "Number fields per record" msgstr "每个记录字段数" msgid "Use first record as header" msgstr "使用第一条记录作为标题" msgid "Field type" msgstr "字段类型" msgid "Value" msgstr "值" msgid "No records found in selected file." msgstr "在所选文件中未找到记录。" msgid "Cannot read file." msgstr "无法读取文件。" msgid "Cannot open file." msgstr "无法打开文件。" msgid "Counter" msgstr "" msgid "Show calendar" msgstr "显示日历" msgid "Show tasks" msgstr "显示任务" msgid "Show contacts" msgstr "显示联系人" msgid "Show notes" msgstr "显示笔记" msgid "Show options" msgstr "显示选项" msgid "Quit" msgstr "退出" msgid "Show small calendar window" msgstr "显示小日历窗口" msgid "Check for events since last run" msgstr "检查上次运行后的新事件" msgid "Number of days to check forward for events (default: 0)" msgstr "事件向前查询天数(默认:0)" msgid "Set absolute path for settings and data files" msgstr "给设置和数据文件设置绝对路径" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "错误:无法创建配置文件" msgid "Another copy of OSMO is already running." msgstr "已经有一个 Osmo 在运行。" msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "同时运行两个以上的OSMO可能会导致数据丢失。" msgid "Do you really want to continue?" msgstr "你真想继续吗?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "低" msgid "High" msgstr "高" msgid "Done!" msgstr "完成!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "" msgid "Cannot create file." msgstr "无法创建文件。" msgid "Select output file" msgstr "选择输出文件" msgid "Export contacts" msgstr "导出联系人" msgid "Output format" msgstr "输出格式" msgid "Add header" msgstr "添加标题" msgid "Fields to export" msgstr "导出字段" msgid "All" msgstr "全部" msgid "Invert" msgstr "转化" msgid "Select fields" msgstr "选择字段" msgid "Output filename" msgstr "输出文件名" msgid "Export" msgstr "导出" msgid "Color of items that are due today" msgstr "今日到期项目颜色" msgid "Color of items that are due in the next 7 days" msgstr "下 7 天到期项目颜色" msgid "Color of items that are past due" msgstr "已过期项目颜色" msgid "Task info font" msgstr "任务信息字体" msgid "Show in bold tasks with high priority" msgstr "粗体显示优先任务" msgid "Hide completed tasks" msgstr "隐藏已完成任务" msgid "Delete completed tasks without confirmation" msgstr "不经确认删除已完成任务" msgid "Add new task when double clicked on tasks list" msgstr "双击任务列表添加新任务" msgid "Postpone time" msgstr "推迟时间" msgid "minutes" msgstr "分" msgid "0 for disable" msgstr "0 即禁用" msgid "Repeat sound alarm" msgstr "重复声音警报" msgid "times" msgstr "时间" msgid "Global notification command" msgstr "全局提醒使用的命令" msgid "Tasks options" msgstr "任务选项" msgid "Reminder options" msgstr "提醒选项" msgid "Insert timeline" msgstr "插入时间线" msgid "Timeline" msgstr "时间线" msgid "From (hour)" msgstr "来自(小时)" msgid "Step (minutes)" msgstr "步进(分) " msgid "To (hour)" msgstr "到(小时)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "重复提醒已启用,请至少选择一个日期。" msgid "Set time" msgstr "设置时间" msgid "Hour" msgstr "小时" msgid "Minute" msgstr "分钟" msgid "Today" msgstr "今天" msgid "Tomorrow" msgstr "明天" msgid "Selected task will be removed." msgstr "选择的任务将被删除。" msgid "Select date and time" msgstr "完成日期和时间" msgid "Enable sound notification" msgstr "启用声音提醒" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "警告" msgid "Days" msgstr "日" msgid "Hours" msgstr "小时" msgid "Minutes" msgstr "分钟" msgid "Alarm command" msgstr "使用警告命令" msgid "Date period" msgstr "日期间隔" msgid "Months" msgstr "月" msgid "Repeat" msgstr "重复" msgid "Repeat in the following days" msgstr "在以后日期中重复" msgid "Time period" msgstr "时间间隔" msgid "Start" msgstr "开始" msgid "End" msgstr "结束" msgid "Interval" msgstr "间隔" msgid "Ignore alarm when task expired offline" msgstr "当任务过期,则忽略警告" msgid "Recurrent task" msgstr "重复任务" msgid "Enable" msgstr "启用" msgid "Edit task" msgstr "编辑任务" msgid "Add task" msgstr "添加任务" msgid "Basic" msgstr "基本" msgid "Advanced" msgstr "高级" msgid "New Moon" msgstr "新月" msgid "Waxing Crescent Moon" msgstr "娥眉月" msgid "Quarter Moon" msgstr "半弦月" msgid "Waxing Gibbous Moon" msgstr "盈凸月" msgid "Full Moon" msgstr "满月" msgid "Waning Gibbous Moon" msgstr "亏凸月" msgid "Last Quarter Moon" msgstr "下弦月" msgid "Waning Crescent Moon" msgstr "残月" msgid "Cannot create backup!" msgstr "无法创建备份!" msgid "Save backup" msgstr "保存备份" msgid "Password protection" msgstr "密码保护" msgid "Enter password" msgstr "输入密码" msgid "Re-enter password" msgstr "重新输入密码" msgid "Please enter the password" msgstr "请输入密码" msgid "Passwords do not match!" msgstr "密码不匹配!" msgid "Backup file saved successfully!" msgstr "顺利保存备份文件!" msgid "Open backup file" msgstr "打开备份文件" msgid "Osmo backup files (*.bck)" msgstr "Osmo 备份文件(*.bck)" msgid "This is not Osmo backup file" msgstr "此文件不是 Osmo 备份文件" msgid "Incorrect password!" msgstr "错误的密码!" msgid "All your data will be replaced with backup file content." msgstr "所有的数据将被备份文件内容取代。" msgid "Osmo has to be restarted now..." msgstr "Osmo 现在必须重启......" msgid "Please select address" msgstr "请选择地址" msgid "First name" msgstr "名" msgid "Last name" msgstr "姓" msgid "Second name" msgstr "别名" msgid "Nickname" msgstr "昵称" msgid "Tags" msgstr "标签" msgid "Name day date" msgstr "日期名称" msgid "Home address" msgstr "家庭地址" msgid "Home postcode" msgstr "家庭邮编" msgid "Home city" msgstr "所在城市" msgid "Home state" msgstr "所在省份" msgid "Home country" msgstr "所在国家" msgid "Organization" msgstr "组织" msgid "Department" msgstr "部署" msgid "Work address" msgstr "工作地址" msgid "Work postcode" msgstr "工作地邮编" msgid "Work city" msgstr "工作所在城市" msgid "Work state" msgstr "工作所在省份" msgid "Work country" msgstr "工作所在国家" msgid "Fax" msgstr "传真" msgid "Home phone" msgstr "个人电话" msgid "Home phone 2" msgstr "个人电话 2 " msgid "Home phone 3" msgstr "个人电话 3 " msgid "Home phone 4" msgstr "个人电话 4 " msgid "Work phone" msgstr "工作电话" msgid "Work phone 2" msgstr "工作电话 2 " msgid "Work phone 3" msgstr "工作电话 3 " msgid "Work phone 4" msgstr "工作电话 4 " msgid "Cell phone" msgstr "手机" msgid "Cell phone 2" msgstr "手机 2" msgid "Cell phone 3" msgstr "手机 3" msgid "Cell phone 4" msgstr "手机 4" msgid "E-Mail" msgstr "电子邮件" msgid "E-Mail 2" msgstr "电子邮件 2" msgid "E-Mail 3" msgstr "电子邮件 3" msgid "E-Mail 4" msgstr "电子邮件 4" msgid "WWW" msgstr "网址" msgid "WWW 2" msgstr "网址 2" msgid "WWW 3" msgstr "网址 3" msgid "WWW 4" msgstr "网址 4" msgid "IM Gadu-Gadu" msgstr "Gadu-Gadu 号码" msgid "IM Yahoo" msgstr "Yahoo 号码" msgid "IM MSN" msgstr "MSN 号码" msgid "IM ICQ" msgstr "ICQ 号码" msgid "IM AOL" msgstr "AOL 号码" msgid "IM Jabber" msgstr "Jabber 号码" msgid "IM Skype" msgstr "Skype 号码" msgid "IM Tlen" msgstr "Tlen 号码" msgid "Blog" msgstr "博客" msgid "Photo" msgstr "照片" msgid "New contact" msgstr "新建联系人" msgid "Remove contact" msgstr "删除联系人" msgid "Show birthdays" msgstr "距离生日天数" msgid "Show contact location on the map" msgstr "在地图上显示联系人所在地" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "关于" msgid "Clear" msgstr "清除" msgid "First Name" msgstr "名" msgid "Last Name" msgstr "姓" msgid "All fields" msgstr "全部字段" msgid "Contact details" msgstr "联系人细节" msgid "Close contact panel" msgstr "关闭联系人面板" msgid "The note has changed." msgstr "笔记已改变。" msgid "Do you want to save it?" msgstr "你真想继续吗?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "词" msgid "Lines" msgstr "行" msgid "Characters" msgstr "字" msgid "White characters" msgstr "空白字符" msgid "Bytes" msgstr "字节" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "已修改" msgid "New note" msgstr "新建笔记" msgid "Edit note" msgstr "编辑笔记" msgid "Delete note" msgstr "删除笔记" msgid "Save note" msgstr "保存笔记" msgid "Find" msgstr "寻找" msgid "Toggle spell checker" msgstr "切换拼写检查" msgid "Bold" msgstr "粗体" msgid "Italic" msgstr "斜体" msgid "Underline" msgstr "下划线" msgid "Strikethrough" msgstr "删除线" msgid "Highlight" msgstr "高亮" msgid "Clear attributes" msgstr "清除属性" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "插入日期和时间" msgid "Insert separator" msgstr "插入分割符" msgid "Statistics" msgstr "统计" msgid "Close editor" msgstr "关闭编辑器" msgid "Note name" msgstr "笔记名字" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "大小写敏感" msgid "Close find entry" msgstr "关闭寻找条目" msgid "Edit entry" msgstr "编辑条目" msgid "Remember cursor position" msgstr "记住光标位置" msgid "Selected note will be removed." msgstr "已选择的日记将被删除" msgid "No further data recovery will be possible." msgstr "没有更多数据恢复了。" msgid "Add note" msgstr "添加笔记" msgid "Plain" msgstr "未加密" msgid "Encrypted" msgstr "已加密" msgid "Note type" msgstr "笔记类型" msgid "Cannot open the note." msgstr "无法打开笔记。" msgid "encryption support is disabled" msgstr "加密支持已关闭" msgid "Authorization" msgstr "授权" msgid "year" msgid_plural "years" msgstr[0] "" msgid "day" msgid_plural "days" msgstr[0] "" msgid "hour" msgid_plural "hours" msgstr[0] "" msgid "minute" msgid_plural "minutes" msgstr[0] "" msgid "second" msgid_plural "seconds" msgstr[0] "" msgid "or" msgstr "或" msgid "rounded down" msgstr "四舍五入" msgid "week" msgid_plural "weeks" msgstr[0] "" msgid "working day" msgid_plural "working days" msgstr[0] "" msgid "time is ignored" msgstr "忽略时间" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgid "This calculator only supports dates after year 1." msgstr "该计算器只支持正数日期。" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgid "Date calculator" msgstr "日期计算器" msgid "Current date" msgstr "当前日期" msgid "Set current date" msgstr "设置当前日期" msgid "Second" msgstr "秒" msgid "Set current time" msgstr "设置当前时间" msgid "Reset time" msgstr "重设时间" msgid "First date and time" msgstr "起始日期和时间" msgid "Second date and time" msgstr "完成日期和时间" msgid "Alternative time units" msgstr "选择时间单位" msgid "Result" msgstr "結果" msgid "Duration between two dates" msgstr "两个不同日期的时间差" msgid "Operation" msgstr "操作" msgid "add" msgstr "增加" msgid "subtract" msgstr "减少" msgid "Date and time to add or subtract from" msgstr "日期和时间增减" msgid "Years" msgstr "年" msgid "Weeks" msgstr "周" msgid "Seconds" msgstr "秒" msgid "Ignore weekend days" msgstr "忽略双休日" msgid "Reset fields" msgstr "重设字段" msgid "Time to add or subtract" msgstr "时间的增减" msgid "Add to or subtract from a date" msgstr "一天任务的增减" msgid "Cannot perform selected operation." msgstr "不能执行选定的操作。" msgid "Task has been modified or removed." msgstr "任务已被修改或删除。" msgid "Remind me later" msgstr "稍后提醒我" msgid "Done" msgstr "完成" msgid "Show task" msgstr "显示任务" msgid "Alarm warning!" msgstr "警告!" msgid "postponed" msgstr "已推迟" msgid "Day note" msgstr "每日记录" msgid "Events" msgstr "事件" msgid "Event" msgstr "条目" msgid "Task" msgstr "任务" msgid "Birthday" msgstr "生日" msgid "Show Osmo" msgstr "显示 Osmo" msgid "event" msgid_plural "events" msgstr[0] "" msgid "No valid calendars defined" msgstr "没有定义日历" msgid "iCalendar events" msgstr "iCalendar 事件" msgid "Time" msgstr "时间" msgid "The list will be cleared and all entries will be lost." msgstr "此列表将被清除,所有条目将丢失。" msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgid "iCalendar export" msgstr "输出到 iCalendar" msgid "Day Selector" msgstr "选择天" msgid "Use date period" msgstr "使用日期间隔" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "选定日期中没有发现任务。" msgid "Save tasks" msgstr "保存任务" msgid "tasks exported" msgstr "任务已导出 " msgid "was born" msgstr "出生于" msgid "year old" msgid_plural "years old" msgstr[0] "" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "" msgid "the last day of the year" msgstr "一年的最后一天" msgid "Day tasks" msgstr "每日任务" msgid "Selected day note will be removed." msgstr "已选择的笔记将被删除" msgid "Continue?" msgstr "是否继续?" msgid "Previous year" msgstr "前一年" msgid "Previous month" msgstr "前一月" msgid "Previous day" msgstr "前一天" msgid "Next day" msgstr "下一天" msgid "Next month" msgstr "下一个月" msgid "Next year" msgstr "下一年" msgid "Full-year calendar" msgstr "全年日历" msgid "Print calendar" msgstr "打印日历" msgid "Toggle day note panel" msgstr "切换笔记面板" msgid "Select day color" msgstr "选择日期颜色" msgid "Browse notes" msgstr "浏览笔记" msgid "Browse iCal events" msgstr "浏览 iCal 事件" msgid "Export to iCal file" msgstr "输出到 iCal 文件" msgid "Previous and next month" msgstr "前一月及后一月" msgid "Close note panel" msgstr "关闭笔记面板" msgid "Clear text" msgstr "清除文本" msgid "Info" msgstr "信息" msgid "Select color" msgstr "选择颜色" msgid "Name day" msgstr "日期名称" msgid "Printing properties" msgstr "打印属性" msgid "Month name" msgstr "月份名字" msgid "Day name" msgstr "日期名字" msgid "Fonts" msgstr "字体" msgid "Birthdays" msgstr "生日" msgid "Namedays" msgstr "日期名字" msgid "Visible events" msgstr "可见事件" msgid "Padding" msgstr "边缘空白" msgid "Event maximum length" msgstr "事件最长长度" msgid "Page orientation:" msgstr "页面外观" msgid "Portrait" msgstr "垂直" msgid "Landscape" msgstr "横向" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "闰年" msgid "Yes" msgstr "是" msgid "No" msgstr "否" msgid "Chinese year animal" msgstr "属相" msgid "Number of days" msgstr "天数" msgid "Number of weeks" msgstr "周数" msgid "Number of weekend days" msgstr "双休日数" msgid "Year info" msgstr "年份信息" msgid "Alternative view" msgstr "其他外观" msgid "Started" msgstr "已开始" msgid "Finished" msgstr "完成" msgid "New task" msgstr "新任务" msgid "Remove task" msgstr "删除任务" msgid "Change due date to previous date" msgstr "将到期日设定为前一日期" msgid "Change due date to next date" msgstr "将到期日设定为后一日期" msgid "Export tasks" msgstr "导出联系人" msgid "Print visible tasks list" msgstr "打印可见的任务列表" msgid "Task details" msgstr "任务细节" msgid "Close description panel" msgstr "关闭说明面板" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "转到前一标签" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "转到下一标签" msgid "switch to selected page" msgstr "切换到选定标签" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "在关于标签和选项之间切换" msgid "exit" msgstr "退出" msgid "Space" msgstr "空格" msgid "select current date" msgstr "选择当前日期" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "切换个人数据可见" msgid "Arrows" msgstr "箭头" msgid "change day" msgstr "日期变更" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "在信息面板中显示日记" msgid "change month" msgstr "改变月份" msgid "Home/End" msgstr "" msgid "change year" msgstr "改变年份" msgid "toggle calendars for the previous and next month" msgstr "在前一月和后一月中切换日历" msgid "day notes browser" msgstr "浏览器" msgid "assign background color to day note" msgstr "为日记指定背景色" msgid "date calculator" msgstr "日期计算器" msgid "show full-year calendar" msgstr "显示全年日历" msgid "jump to date" msgstr "跳转到日期" msgid "Delete" msgstr "选择日期" msgid "remove day note" msgstr "删除日记" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "关闭笔记面板" msgid "toggle bold" msgstr "切换粗体" msgid "toggle italic" msgstr "切换斜体" msgid "toggle underline" msgstr "切换下划线" msgid "toggle strikethrough" msgstr "切换删除线" msgid "toggle highlight" msgstr "切换高亮" msgid "Arrows Up/Down" msgstr "上/下箭头" msgid "toggle alternative view" msgstr "切换不同外观" msgid "year info" msgstr "年份信息" msgid "set current year" msgstr "设置当前年份" msgid "close full-year calendar" msgstr "显示全年日历" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "添加任务" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "编辑任务" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "删除任务" msgid "toggle hidden tasks" msgstr "隐藏任务切换" msgid "activate search field" msgstr "激活查找字段" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "变更类别筛选" msgid "close task info panel" msgstr "关闭任务信息面板" msgid "Insert" msgstr "插入" msgid "add contact" msgstr "添加联系人" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "编辑联系人" msgid "remove contact" msgstr "删除联系人" msgid "change search mode" msgstr "改变查找模式" msgid "close contact details panel" msgstr "关闭联系人细节面板" msgid "Enter" msgstr "Enter 键" msgid "open note" msgstr "打开笔记" msgid "add note" msgstr "添加笔记" msgid "remove note" msgstr "删除笔记" msgid "edit note name and category" msgstr "编辑笔记名字和分类" msgid "close note editor" msgstr "关闭笔记面板" msgid "save note" msgstr "保存笔记" msgid "find text" msgstr "查找文字" msgid "clear selection attributes" msgstr "清除选择属性" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "笔记面板" msgid "Selector" msgstr "选择器" msgid "Editor" msgstr "编辑器" msgid "A handy personal organizer" msgstr "趁手的个人安排工具" msgid "compiled on" msgstr "编译自" msgid "Programming" msgstr "计划" msgid "Graphics" msgstr "图示" msgid "Contributors" msgstr "贡献者" msgid "Translators" msgstr "翻译者" msgid "Mailing lists" msgstr "邮件列表" msgid "Bug tracker" msgstr "错误追踪" msgid "Feature requests" msgstr "要求新特性" msgid "Available modules" msgstr "支持的模块" msgid "Compiled-in features" msgstr "内建特性" msgid "iCalendar support" msgstr "支持 ICalendar" msgid "Encrypted notes support" msgstr "支持加密笔记" msgid "Backup support" msgstr "支持备份" msgid "Printing support" msgstr "支持打印" msgid "Spell checker support" msgstr "支持拼写检查" msgid "version" msgstr "版本" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "快捷键" msgid "License" msgstr "许可证" #~ msgid "handy personal organizer" #~ msgstr "趁手的个人日程安排工具" osmo-0.4.2/po/el.mo0000664000175000017500000010605613204320601010767 00000000000000  + ++ , , ,.',V,_,h,,,, , ,, ,, , , , ,--(-- V-a- j-x-~-&-$- --- -- .... -.:.*@.k.t. .....".. // #/./ 7/ B/ O/ \/ i/t////// /// 00 01070.M0!|0 0000 001 1 1&1.1 61C1V1 o1 }1 1 11 11%11 1 2 22 !2.2 =2J2S2 c2 m2 x222+2 2 2 223"3:3>3C3I3P3Y3t3{333 3!3 3 3 3 33344"464I4 Y4d4h4w4}44 44444444 44 5555#5 ,575 K5V5[5 l5 x555555555555566 6#6 (6 56 ?6 L6 W6 d6 q6 ~6 66666 66 66666&677 ,787L7 Q7]7l7s7777777 7 77 77 8 8 %8/84888>8F8L8 P8 [8g8n8u8 }888888 88 88 8889 9 9"9+9.9C9*K9v9"9999 9 99 999 :7:R:i: y:: :: :::::: :::::8;R; [; i;u; ;; ;;;; ; ;< <<<<+<2<A<#]<<<< <<< < <<= ="= 5=?=G=N=U= j=v=~=== == == =!=">@>`>o>>> >>-> ??,?5? ;?E? T? b?p?%?? ? ?? ? ?@!@J8@@@@@@@ @@ @@@ A AA A",AOA^A dArA6yAAAA1AB B B!B9B BBLBRBaBwBB BB BBBB#BBBCCCC"C(C.CCCWC_CdCyC C CC CCCCCC C D D D +D 8D ED RD `D kD vDD DDD DDD DDD#DEE (E 3E@E SE_EzEEE EE"E FF#F*5F `FmF F F FFF F FFFFGG 1G>GMG UG bGmG pGzG }GGG G G G G)GGH"H:H$CHhH{HHHH0HHI.I6I ?I JIUIQhI%JJJK#Kh=K#K!KBK//L_L rL L LLLLLL"L" M0CM'tM$MMMM M MR NY\N NNNN%O*O /Om#`mm'mCmn+n#Jnnn }nn n0nn/nOoQdo%o'op!"pDp9Wp!p'pp ppM q'Xqqqq(qqq!r!4r+Vrr,rrr) s;3sCosNs!t*$t@Ot?tttOu%Quwuuuu#u'uv.6vPevJv%w!'w4Iw!~w!w2w6w,x xx xGx *y 7yByWy my{yy yyy)yJzBYzz!z z&z5{ 9{ D{iQ{ {{{2{)|2| B|3O|E| | || |}}'&}DN}S} }}}~,~0~6~<~B~"`~~~~~'~!~>!`'} #!7#Y#}#'ŀ /!8Zah:{ǁ#! H+t0΂.8+.d@2ԃ C7W#'˄g[Py'ʅ- ?> ~#Ȇ 2S it0Ç##=!a'~Ɉ1H8z6$7 ?X92Ҋ ]7p ȋՋ# w9>$Wt">5K%Snle,xj~:+E aRbC6a&c8*A-`+1# X?Q Gd.i~UJ u[`  )5#9x"264!4 1GtOTgq},^DN!s{s8@v*_ (;<=Z[zKC{W0|'c7p Lq%OI)m^wJ pIo MeUuBr\fh R?Drf-=lE T2Ym<.h/$&ZNA\'HFkSgz73_M0Y}P(LiH3voQy|yk Pjn@  FB]VV:db];/X0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowAscending sorting in day notes browserAt least one module must be visible.AuthorizationBestBirthdayBirthday dateBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create file.Cannot open file.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable system trayEnable tooltipsEncryptionEndEnter passwordErrorError printingEventEvent markerEvent marker colorEventsExportExport contactsExport to iCal fileFastFaxField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFowlFree-hand circleFrom (hour)Full MoonFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonthsMoon phaseNameName day dateNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No.NoneNoteNote fontNote nameNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOperationOptionsOrganizationOutput filenameOutput formatOxPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlease select at least one day when recurrency is enabled.Please select file first.PostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRecurrent taskRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysReset fieldsReset timeResultRightSagittariusSave data after every modificationSave noteScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectorSet absolute path for settings and data filesSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTaskTask detailsTask has been modified or removed.Task info fontTasksTasks optionsTaurusThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.TigerTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday till end of yeardays till end of yearedit contactedit note name and categoryedit taskentryentrieseventeventsevent exportedevents exportedexitfind texthourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateshow full-year calendarsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagethe last day of the yeartodaytoggle calendars for the previous and next monthtoggle hidden taskstoggle personal data visibilityversionwas bornweekweeksyearyearsyear oldyears oldProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2008-11-08 19:10+0200 Last-Translator: tsakf Language-Team: Greek Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 για απενεργοποίησηΈνα βολικό OrganizerΠερίContact toevoegenΠροσθήκη κεφαλίδαςΠροσθήκη νέας εργασίας με διπλό κλικ στην λίστα εργασιώνΠροσθήση σημείωσηςΠροσθήκη εργασίαςΠρόσθεση με/Αφαίρεση από ημερομηνίαΠερισσότερες πληροφορίεςΔιεύθυνσηΗλικίαAlarm commandAlarm warningΥπενθύμιση!ΑλγόριθμοςΌλαΌλα τα αρχείαΌλα τα πεδίαΌλα τα αντικείμεναΌλες οι σημειώσειςΕναλλακτικές μονάδες ώρεςΕναλλακτική εμφάνισηTo OSMO ήδη εκτελείται.ΕμφάνισηΥδροχόοςΣίγουρα;ΚριόςΒέλοςΑύξουσα ταξινόμιση στον πλοηγητή σημειώσεωνΤουλάχιστον μια επιλογή πρέπει να είναι εμφανής.AuthorizationΚαλύτερηΓενέθλιαΗμέρα γενεθλίωνΚατάλογος γενεθλίωνBlogΈντοναΚάτωΠΛοήγηση στα συμβάντα iCalΠλοήγηση στις σημειώσειςBytesCSV (τιμές διαχωρισμένες με κόμμα) (*.csv)ΗμερολόγιοΑρχεία ημερολογίου (*.ics)Γραμματοσειρά ημερολογίουΣημειώσεις ημερολογίουΚαρκίνοςΑδυναμία δημιουργίας αρχείου.Αδυναμία πρόσβασης στο αρχείο.Αδυναμία εκτέλεσης λειτουργίας.Αδυναμία ανάγνωσης αρχείου.ΑιγόκερωςΚεφαλαία/πεζάΚατηγορίεςΚατηγορίαΚινητό τηλέφωνοΚινητό τηλέφωνο 2Κινητό τηλέφωνο 3Κινητό τηλέφωνο 4ΧαρακτήρεςΈλεγχος για συμβάντα από την τελευταία χρήσηΚινέζικο ωροσκόπιοΚύκλοςΠόληΚαθαρισμόςΚαθαρισμός ιδιοτήτωνΚαθαρισμός κειμένουΚλείσιμο πλαισίου επαφώνΚλείσιμο πλαισίου περιγραφήςΚλείσιμο κειμενογράφουΚλείσιμο στην εύρεσηΚλείσιμο πλαισίου σημειώσεωνΧρώμαΧρώμα των ετικετών επαφώνΧρώμα αντικειμένων που πρέπει να γίνουν στις επόμενες 7 ημέρεςΧρώμα αντικειμένων που πρέπει να γίνουν σήμεραΧρώμα αντικειμένων που έχει παρέλθει η ημερομηνία τουςΧρώμα συνδέσμωνΧρώματαΕνσωματωμένες δυνατότητεςΣυμπίεσηΛεπτομέρεις επαφήςΕπαφέςΣυνέχεια;ΣυντελεστέςΧώραΔημιουργήθηκεΗμερομηνίαΔείκτης σημερινής ημερομηνίαςΧρώμα επιλογέα τρέχουσας ημέραςΤρέχων μήναςΤρέχουσα ώραΤρέχον έτοςΧρώμα δείκτηΠάχος δείκτηΗΗ-ΜΜ-ΕΕΕΕΗμερομηνίαΗμερομηνία και ώρα για πρόσθεση ή αφαίρεσηΥπολογιστής ημερώνΓραμματοσειρά ημέραςΜορφή ημερομηνίαςΠερίοδος ημερομηνίαςΗμέραΕπιλογέας ημέραςΚατηγορίες ημερώνΚατηγορία ημέραςΣημείωση ημέραςΕπιλογέας σημειώσειωνΗμερήσιες σημειώσειςΑρθμός ημέραςΗμερήσιες εργασίεςΗμέρεςΗμέρες μέχρι γενέθλιαΔιαγραφή ολοκληρωμένων εργασιών χωρίς επιβεβαίωσηΔιαγαφή σημείωσηςΤμήμαΠεριγραφήΑπενεργοποίηση υπογραμμισης στους συνδέσμουςΣυνέχεια;Αποθήκευση;ΣκύλοςΟλοκληρώθηκεΟλοκληρώθηκε!ΔράκοςΗμερομηνία εφαρμογήςΔιάρκεια μεταξύ των δύο ημερομηνιώνE-mailE-mail 2E-mail 3E-mail 4E-mail πρόγραμμαΛαθος: Αδυναμία δημιουργίας αρχείων ρυθμίσεωνΔιόρθωση επαφήςΔιόρθωση καταχώρησηςΔιόρθωση σημείωσηςΔιόρθωση εργασίαςΚειμενογράφοςΈλλειψηΕνεργοποίησηΕνεργοποίηση εξωτερικών ημερολογίωνΕνεργοποίηση δείκτη blockEnable system trayΕνεργοποίηση συμβουλών (αναδυόμενο)ΚρυπτογράφησηΤέλοςΕισαγωγή λέξης κλειδίΛάθοςΕκτύπωση λαθώνΣυμβάνΕπιλογέας συμβάντωνΧρώμα επιλογέα συμβάντωνΣυμβάνταΕξαγωγήΕξαγωγή επαφώνΕξαγωγή σε αρχείο iCalΓρήγορηΦΑΞΤύπος πεδίουΠεδία για εξαγωγήΑρχείοΌνομα ΑρχείουΦίλτροΑναζήτησηΤελείωσεΌνομαΑρχική ημερομηνία/ώραΌνομαΚόκοραςΚύκλος Από (ώρα)ΠανσέληνοςΗμερολόγιο ΈτουςΔίδυμοιΓενικάΓενική εντολή πληροφόρησηςΚαλήΓραφικάΟμάδαΟμάδεςΛαγόςΒοηθήματαΑποκρυψηΑπόκρυψη ολοκληρωμένων εργασιώνΑπόκρυψη στήλης ομάδωνΥψηλήΈντοναΣπιτιούΔιεύθυνση διαμονήςΠόλη διαμονήςΧώρα διαμονήςΤηλέφωνο διαμονήςΤηλέφωνο διαμονής 2Τηλέφωνο διαμονής 3Τηλέφωνο διαμονής 4Ταχ. κώδικας διαμονήςΝομός διαμονήςΆλογοΏρα'ΩρεςIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooΑνγόηση υπενθύμισης όταν η εργασία έληξε offlineΕισαγωγήΕισαγωγή επαφώνΕϊδος εισαγωγήςΛάθος λάξη κλειδίΠληροφορίεςΠκηροφορίεςΌνομα αρχείου εισόδουΕισαγωγήΤρέχουσα Ημερομηνία/ΩραΕισαγωγή διαχωριστικούΕισαγωγή ημερομηνίας/ώραςInternetΔιάστημα μεταξύΑντιστροφήΛοξάΜετάβαση στην ημερομηνίαΣυντομεύσειςΜεγάλοΕπίθετο Φθίνουσα ΗμισέλινοςΤελευταίες αλλαγέςΕπώνυμοLeap yearΑριστεράΛέωνΖυγόςΆδεια χρήσηςΓραμμέςΧαμηλήΜΜ-ΗΗ-ΕΕΕΕΕπιλεγείσες ημέρεςΜεσαίοΛεπτάΛεπτάΔιάφοραΤροποποιημένοΤροποποίηση παραμέτρων ICALΠίθηκοςΜήναςΜήνεςΦάση σελήνηςΌνομαΟνομαστική εορτήΝέα ΣελήνηΝέα επαφήΝέα σημείωσηΝέα εργασίαΕπόμενη ημέραΕπόμενος μήναςΕπόμενο έτοςΧαϊδευτικόΟχιΔεν έχουν εισαχθεί γενέθλιαΧωρίς ΗμερομηνίαΑδυναμία ανάκτησης περισσότερων δεδομένωνΌχι αλλαγή μηνόςΔεν υπάρχουν εγγραφές στο επιλεγμένο αρχείοΑρ.ΚανέναΣημείωσηΓραμματοσειρά σημειώσεωνΌνομα σημείωσηςΣημειώσειςΕπιλογές σημειώσειωνΚαμμία εισαγωγή.Αριθμός πεδίων εγγραφήςΑριθμός ημερώνΑριθμός ημερών στο μέλλον για συμβάντα (προκαθορισμένο:0)Αριθμός ΣαββατοκύριακαΑριθμός εβδομάδωνΛειτουργίαΕπιλογέςΟργανισμόςΌνομα ΑρχείουΜορφή αρχείουΒουβάλιΟι λέξεις κλειδιά δεν ταιριάζουνΠροσωπικάΤηλέφωναΦωτογραφίαΜέγεθος φωτογραφίαςΓουρούνιΙχθείςPlease select at least one day when recurrency is enabled.Παρακαλώ επιλογή αρχείουΤαχ. ΚώδικαςΑναβολή γιαΠροτιμήσειςΠροηγούμενος και επόμενος μήναςΠροηγούμενη ημέραΠροηγούμενος μήναςΠροηγούμενο έτοςΕκτύπωση ημερολογίουΕκτύπωση καταλόγου εμφανών εργασιώνΠροτεραιότηταΠρογραμματισμόςΑύξουσα ΗμισέληνοςΕρώτησηΈξοδοςΠοντίκιΣχέσηΕπανεισαγωγή λέξης κλειδίΕγγραφήΕπαναλαμβανόμενη εργασίαΥπενθύμιση τελευταίας επιλεγμένης σελίδαςΕπανάληψη επιλογής προηγούμενης κατηγορίαςΥπενθύμιση αργότεραΕπιλογές υπενθύμισηςΔιαγραφή επαφήςΑφαίρεση εργασίαςΕπανάληψηΕπανάληψη στις επόμενες ημέρεςΚαθαρισμός πεδίωνΕπανακαθορισμός ώραςΑποτέλεσμαΔεξιάΤοξότηςΑποθήκευση δεδομένων μετά από κάθε αλλαγήΑποθήκευση σημείωσηςΣκορπιόςΑναζήτησηΔευτερόλεπταΤελική ημερομηνία/ώραΠατρώνυμοΔευτερόλεπταΕπιλογή αρχείου CSVΕπιλογή αρχείου ICSΕπιλογή γραμματοσειράςΕπιλογή χρώματοςΕπιλογή χρώματος ημέραςΕπιλογή πεδίωνΕπιλογή αρχείουΕπιλεγμένη φωτογραφίαΗ επιλεγμένη επαφή θα διαγραφεί.Η επιλεχθείσα σημείωση θα διαγραφεί.Το επιλεγμένο αρχείο υπάρχει! Επανεγγραφή;Επιλεγμένος μήναςΕπιλογή: μήνας και έτοςΗ επιλεγμένη σημείωση θα διαγραφείΗ επιλεγμένη εργασία θα αφαιρεθεί.Επιλεγμένο έτοςΕπιλογέαςΕπιλογή διαδρομής για ρυθμίσεις και αρχείαΤρέχουσα ημερομηνίαΡύθμιση ώραςΡύθμιση ώραςΠρόβατοΕμφάνιση OsmoΕμφάνιση γενεθλίωνΕμφάνιση ημερολογίουΕμφάνιση επαφώνΕμφάνιση ονομάτων ημέραςΕμφάνιση εργασιών προτεραιότητας με έντοναΕμφάνιση ημέρας στο πλάισιο πληροφοριώνΕμφάνιση σημειώσεωνΕμφάνιση επιλογώνΕμφάνιση μικρού ημερολογίουΕμφάνιση εργασίαςΕμφάνιση εργασιώνΕμφάνιση αριθμού εβδομάδαςΕμφάνιση πλήρους ημερολογίουΗ ταυτόχρονη χρήση δύο ή περισσοτέρων OSMO, μπορεί να οδηγήσει σε απώλεια δεδομένων.Μικρό ΦίδιΑρχή Εκκίνηση σε ελαχιστοποιημένο παράθυροΆρχισεΝομόςΣτατιστικάΒήμα (λεπτά)StrikethroughStrikethrough past day notesΠερίληψηSystem trayΘέσεις στηλοθέτηΕργασίαΛεπτομέρειες εργασίαςΗ εργασία έχει τροποποιηθεί ή διαγραφεί.Γραμματοσερά λεπτομερειών εργασιώνΕργασίεςΕπιλογές εργασιώνΤαύροςΗ λίστα θα διαγραφεί.Η σημείωση έχει τροποποιηθείΠαχύςΛεπτόςΑυτός ο υπολογιστής υπολογίζει ημερομηνίες μετά το έτος 1ΤίγρηςΜορφή ώραςΠερίοδος ώραςΏρα για πρόσθεση ή αφαίρεσηTimelineΈως (ώρα)ΣήμεραΧρονική απόσταση από σήμεραΕναλλάξιμο πλαίσιο σημειώσεων ημέραςΑύριοΠάνω ΜεταφραστέςΤύποςΥπογράμμισηΆγνωστοΠερίοδος ημερομηνίαςΧρήση πρώτης καταχώρησης ως κεφαλίδαΧρήση της μορφής Ημερομηνίας/Ώρας συστήματοςΈγκυροΤιμήΠαρθένοςΕμφανείς στήλεςWWWWWW 2WWW 3WWW 4Φθίνων ΜηνίσκοςΦθίνων Αμφίκυρτος ΠροσοχήΚύμαΑύξων ΜηνίσκοςΑύξων ΑμφίκυρτοςΠλοηγητής διαδικτύουΑριθμός εβδομάδαςΠρώτη ημέρα της εβδομάδας ΔευτέραΣαββατοκύριακαΧρώμα ΣαββατοκύριακαΕβδομάδεςΚενάΛέξειςΕργασίαςΔιεύθυνση εργασίαςΠόλη εργασίαςΧώρα εργασίαςΤηλέφωνο εργασίαςΤηλέφωνο εργασίας 2Τηλέφωνο εργασίας 3Τηλέφωνο εργασίας 4Ταχ. Κώδικας εργασίαςΝομός εργασίαςΕΕΕΕ-ΗΗ-ΜΜΕΕΕΕ-ΜΜ-ΗΗΈτοςΠληροφορίες έτουςΈτηΝαιΩροσκόπιοενεργοποίηση πεδίου αναζήτησηςπρόσθεσηπροσθήκη επαφήςπροσθήκη σημείωσηςπροσθήκη εργασίαςπροσθήκη χρώματος φόντου στην σημείωσηcase sensitiveαλλαγή φίλτρου κατηγορίαςαλλαγή ημέραςαλλαγή μήνααλλαγή τρόπου αναζήτησηςαλλαγή έτουςκαθαρισμός ιδιοτήτων επιλογήςκλείσιμο πλαισίου επαφώνκλείσιμο κειμενογράφου σημειώσεωνκλείσιμο πλαισίου εργασιώνcompiled onεπαφή προστέθηκεεπαφές προστέθηκανΕπαφή εξήχθηΕπαφές εξήχθησανυπολογιστής ημερώνημέραημέρεςπλοηγητής σημειώσεωνΗμέρα μέχρι τέλος του έτουςΗμέρες μέχρι τέλος του έτουςδιόρθωση επαφήςδιόρθωση ονόματος σημείωσης και κατηγορίαςτροποποίηση εργασίαςκαταχώρησηκαταχωρήσειςΣυμβάνΣυμβάνταΓεγονός εξήχθηΓεγονότα εξήχθησανέξοδοςαναζήτηση κειμένουώραώρεςώρεςΣυμβάντα iCalendarΕξαγωγή iCalendarΑρχεία iCalendarΥποστήριξη iCalendarμετάβαση σε ημέραλεπτόλεπτάλεπτάμήναςμήνεςδεν υπάρχουν καταχωρήσειςαπό άνοιγα σημείωσηςήΑναβλήθηκεδιαγραφή επαφήςδιαγραφή σημείωσηςδιαγραφή σημείωσηςδιαγραφή εργασίαςστρογγύλευση σεαποθήκευση σημείωσηςεμφάνιση των περιεχομένων της ημέρας στο πλαίσιο πληροφοριών ημέραςδευτερόλεπτοδευτερόλεπταΕπιλογή τρέχουσας ημερομηνίαςΕμφάνιση ετήσιου ημερολογίουαφαίρεσηswitch page in options and about tabΜετάβαση στην επόμενη καρτέλαΜετάβαση στην προηγούμενη καρτέλαΜετάβαση στο επιλεγμένο πακέτοη τελευταία ημέρα του έτουςσήμεραεναλλαγή ημερολογίου για προηγούμενο/επόμενο μήναεναλλαγή εργασιών σε απόκρυψηtoggle personal data visibilityΈκδοσηΓεννήθηκεεβδομάδαεβδομάδεςέτοςέτηετώνετώνosmo-0.4.2/po/el.po0000664000175000017500000012162413204320601010770 00000000000000# Greek translation of Osmo # This file is distributed under the same license as the Osmo package. # tsakf , 2008 # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2008-11-08 19:10+0200\n" "Last-Translator: tsakf \n" "Language-Team: Greek\n" "Language: el\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" msgid "Colors" msgstr "Χρώματα" msgid "Color of contact tags" msgstr "Χρώμα των ετικετών επαφών" msgid "Color of links" msgstr "Χρώμα συνδέσμων" msgid "Font size" msgstr "" msgid "Name font size" msgstr "" msgid "Item font size" msgstr "" msgid "Photo size" msgstr "Μέγεθος φωτογραφίας" msgid "Small" msgstr "Μικρό " msgid "Medium" msgstr "Μεσαίο" msgid "Large" msgstr "Μεγάλο" msgid "Hide group column" msgstr "Απόκρυψη στήλης ομάδων" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Ηλικία" msgid "Birthday date" msgstr "Ημέρα γενεθλίων" msgid "Zodiac sign" msgstr "Ωροσκόπιο" msgid "Contacts" msgstr "Επαφές" msgid "Appearance" msgstr "Εμφάνιση" msgid "Miscellaneous" msgstr "Διάφορα" msgid "Groups" msgstr "Ομάδες" msgid "Visible columns in birthday browser" msgstr "" msgid "Algorithm" msgstr "Αλγόριθμος" msgid "Hashing" msgstr "" msgid "Compression" msgstr "Συμπίεση" msgid "Ratio" msgstr "Σχέση" msgid "Fast" msgstr "Γρήγορη" msgid "Good" msgstr "Καλή" msgid "Best" msgstr "Καλύτερη" msgid "Type" msgstr "Τύπος" msgid "Category" msgstr "Κατηγορία" msgid "Last changes" msgstr "Τελευταίες αλλαγές" msgid "Created" msgstr "Δημιουργήθηκε" msgid "Remember the last selected category" msgstr "Επανάληψη επιλογής προηγούμενης κατηγορίας" msgid "Use system format for date and time" msgstr "Χρήση της μορφής Ημερομηνίας/Ώρας συστήματος" msgid "Notes" msgstr "Σημειώσεις" msgid "Encryption" msgstr "Κρυπτογράφηση" msgid "Visible columns" msgstr "Εμφανείς στήλες" msgid "Categories" msgstr "Κατηγορίες" msgid "Notes options" msgstr "Επιλογές σημειώσειων" msgid "Jump to date" msgstr "Μετάβαση στην ημερομηνία" msgid "Day" msgstr "Ημέρα" msgid "Month" msgstr "Μήνας" msgid "Year" msgstr "Έτος" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Επιλογή γραμματοσειράς" msgid "None" msgstr "Κανένα" msgid "All items" msgstr "Όλα τα αντικείμενα" msgid "Question" msgstr "Ερώτηση" msgid "Information" msgstr "Πκηροφορίες" msgid "Error" msgstr "Λάθος" msgid "Warning" msgstr "Προσοχή" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Το επιλεγμένο αρχείο υπάρχει! Επανεγγραφή;" msgid "Selected contact will be removed." msgstr "Η επιλεγμένη επαφή θα διαγραφεί." msgid "Are you sure?" msgstr "Σίγουρα;" msgid "No date" msgstr "Χωρίς Ημερομηνία" msgid "Select photo" msgstr "Επιλεγμένη φωτογραφία" msgid "Address" msgstr "Διεύθυνση" msgid "Postcode" msgstr "Ταχ. Κώδικας" msgid "City" msgstr "Πόλη" msgid "State" msgstr "Νομός" msgid "Country" msgstr "Χώρα" msgid "Edit contact" msgstr "Διόρθωση επαφής" msgid "Add contact" msgstr "Contact toevoegen" msgid "Personal" msgstr "Προσωπικά" msgid "Group" msgstr "Ομάδα" msgid "Home" msgstr "Σπιτιού" msgid "Work" msgstr "Εργασίας" msgid "Phones" msgstr "Τηλέφωνα" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Περισσότερες πληροφορίες" msgid "_OK" msgstr "" msgid "no entries" msgstr "δεν υπάρχουν καταχωρήσεις" msgid "entry" msgid_plural "entries" msgstr[0] "καταχώρηση" msgstr[1] "καταχωρήσεις" msgid "Calendar notes" msgstr "Σημειώσεις ημερολογίου" msgid "Search" msgstr "Αναζήτηση" msgid "Filter" msgstr "Φίλτρο" msgid "Current month" msgstr "Τρέχων μήνας" msgid "Selected month" msgstr "Επιλεγμένος μήνας" msgid "Current year" msgstr "Τρέχον έτος" msgid "Selected year" msgstr "Επιλεγμένο έτος" msgid "Selected month and year" msgstr "Επιλογή: μήνας και έτος" msgid "All notes" msgstr "Όλες οι σημειώσεις" msgid "Case sensitive" msgstr "Κεφαλαία/πεζά" msgid "Strikethrough past day notes" msgstr "Strikethrough past day notes" msgid "Date" msgstr "Ημερομηνία" msgid "Note" msgstr "Σημείωση" msgid "_Close" msgstr "" msgid "Rat" msgstr "Ποντίκι" msgid "Ox" msgstr "Βουβάλι" msgid "Tiger" msgstr "Τίγρης" msgid "Hare" msgstr "Λαγός" msgid "Dragon" msgstr "Δράκος" msgid "Snake" msgstr "Φίδι" msgid "Horse" msgstr "Άλογο" msgid "Sheep" msgstr "Πρόβατο" msgid "Monkey" msgstr "Πίθηκος" msgid "Fowl" msgstr "Κόκορας" msgid "Dog" msgstr "Σκύλος" msgid "Pig" msgstr "Γουρούνι" msgid "Unknown" msgstr "Άγνωστο" msgid "Aquarius" msgstr "Υδροχόος" msgid "Pisces" msgstr "Ιχθείς" msgid "Aries" msgstr "Κριός" msgid "Taurus" msgstr "Ταύρος" msgid "Gemini" msgstr "Δίδυμοι" msgid "Cancer" msgstr "Καρκίνος" msgid "Leo" msgstr "Λέων" msgid "Virgo" msgstr "Παρθένος" msgid "Libra" msgstr "Ζυγός" msgid "Scorpio" msgstr "Σκορπιός" msgid "Sagittarius" msgstr "Τοξότης" msgid "Capricorn" msgstr "Αιγόκερως" msgid "Osmo has to be restarted to take effect." msgstr "" msgid "Layout" msgstr "" msgid "Vertical" msgstr "" msgid "Horizontal" msgstr "" msgid "Tabs position" msgstr "Θέσεις στηλοθέτη" msgid "Left" msgstr "Αριστερά" msgid "Right" msgstr "Δεξιά" msgid "Top" msgstr "Πάνω " msgid "Bottom" msgstr "Κάτω" msgid "Disable underline in links" msgstr "Απενεργοποίηση υπογραμμισης στους συνδέσμους" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "Τουλάχιστον μια επιλογή πρέπει να είναι εμφανής." msgid "Calendar" msgstr "Ημερολόγιο" msgid "Tasks" msgstr "Εργασίες" msgid "Override locale settings" msgstr "" msgid "Date format" msgstr "Μορφή ημερομηνίας" msgid "DD-MM-YYYY" msgstr "ΗΗ-ΜΜ-ΕΕΕΕ" msgid "MM-DD-YYYY" msgstr "ΜΜ-ΗΗ-ΕΕΕΕ" msgid "YYYY-MM-DD" msgstr "ΕΕΕΕ-ΜΜ-ΗΗ" msgid "YYYY-DD-MM" msgstr "ΕΕΕΕ-ΗΗ-ΜΜ" msgid "Time format" msgstr "Μορφή ώρας" msgid "hours" msgstr "ώρες" msgid "Spell checker language" msgstr "" msgid "Enable tooltips" msgstr "Ενεργοποίηση συμβουλών (αναδυόμενο)" msgid "Remember last selected page" msgstr "Υπενθύμιση τελευταίας επιλεγμένης σελίδας" msgid "Save data after every modification" msgstr "Αποθήκευση δεδομένων μετά από κάθε αλλαγή" msgid "Web browser" msgstr "Πλοηγητής διαδικτύου" msgid "E-mail client" msgstr "E-mail πρόγραμμα" msgid "Sound player" msgstr "" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "" msgid "Enable system tray" msgstr "Enable system tray" msgid "Start minimised" msgstr "Εκκίνηση σε ελαχιστοποιημένο παράθυρο" msgid "Ignore day note events" msgstr "" msgid "General" msgstr "Γενικά" msgid "Hide" msgstr "Αποκρυψη" msgid "Helpers" msgstr "Βοηθήματα" msgid "System tray" msgstr "System tray" msgid "Preferences" msgstr "Προτιμήσεις" msgid "Syntax" msgstr "" msgid "abbreviated weekday name" msgstr "" msgid "full weekday name" msgstr "" msgid "abbreviated month name" msgstr "" msgid "full month name" msgstr "" msgid "day of the month" msgstr "" msgid "MM/DD/YY" msgstr "" msgid "day of the month without leading zeros" msgstr "" msgid "month" msgid_plural "months" msgstr[0] "μήνας" msgstr[1] "μήνες" msgid "year without century" msgstr "" msgid "year with century" msgstr "" msgid "Date header format" msgstr "" msgid "Set default format" msgstr "" msgid "Date format syntax" msgstr "" msgid "Day note marker" msgstr "Επιλογέας σημειώσειων" msgid "Event marker" msgstr "Επιλογέας συμβάντων" msgid "Circle" msgstr "Κύκλος" msgid "Ellipse" msgstr "Έλλειψη" msgid "Wave" msgstr "Κύμα" msgid "Current day marker" msgstr "Δείκτης σημερινής ημερομηνίας" msgid "Arrow" msgstr "Βέλος" msgid "Free-hand circle" msgstr "Κύκλος " msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Χρώμα Σαββατοκύριακα" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Χρώμα δείκτη" msgid "Event marker color" msgstr "Χρώμα επιλογέα συμβάντων" msgid "Current day marker color" msgstr "Χρώμα επιλογέα τρέχουσας ημέρας" msgid "Birthday marker color" msgstr "" msgid "Date font" msgstr "Γραμματοσειρά ημέρας" msgid "Calendar font" msgstr "Γραμματοσειρά ημερολογίου" msgid "Note font" msgstr "Γραμματοσειρά σημειώσεων" msgid "Enable block cursor" msgstr "Ενεργοποίηση δείκτη block" msgid "Cursor thickness" msgstr "Πάχος δείκτη" msgid "Thin" msgstr "Λεπτός" msgid "Thick" msgstr "Παχύς" msgid "Edit category" msgstr "" msgid "Color" msgstr "Χρώμα" msgid "Name" msgstr "Όνομα" msgid "Select ICS file" msgstr "Επιλογή αρχείου ICS" msgid "All Files" msgstr "Όλα τα αρχεία" msgid "Calendar files (*.ics)" msgstr "Αρχεία ημερολογίου (*.ics)" msgid "Modify ICAL parameters" msgstr "Τροποποίηση παραμέτρων ICAL" msgid "Filename" msgstr "Όνομα Αρχείου" msgid "Options" msgstr "Επιλογές" msgid "Disabled" msgstr "" msgid "Valid" msgstr "Έγκυρο" msgid "Description" msgstr "Περιγραφή" msgid "Full date" msgstr "" msgid "Mark" msgstr "" msgid "Week start on Monday" msgstr "Πρώτη ημέρα της εβδομάδας Δευτέρα" msgid "Show day names" msgstr "Εμφάνιση ονομάτων ημέρας" msgid "No month change" msgstr "Όχι αλλαγή μηνός" msgid "Show week numbers" msgstr "Εμφάνιση αριθμού εβδομάδας" msgid "Simple view in full-year calendar" msgstr "Εμφάνιση πλήρους ημερολογίου" msgid "Enable auxilary calendars" msgstr "Ενεργοποίηση εξωτερικών ημερολογίων" msgid "Ascending sorting in day notes browser" msgstr "Αύξουσα ταξινόμιση στον πλοηγητή σημειώσεων" msgid "Enable spell checker in day notes" msgstr "" msgid "Current time" msgstr "Τρέχουσα ώρα" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Αρθμός ημέρας" msgid "Today distance" msgstr "Χρονική απόσταση από σήμερα" msgid "Marked days" msgstr "Επιλεγείσες ημέρες" msgid "Week number" msgstr "Αριθμός εβδομάδας" msgid "Weekend days" msgstr "Σαββατοκύριακα" msgid "Day category" msgstr "Κατηγορία ημέρας" msgid "Moon phase" msgstr "Φάση σελήνης" msgid "Day notes" msgstr "Ημερήσιες σημειώσεις" msgid "Day categories" msgstr "Κατηγορίες ημερών" msgid "iCalendar files" msgstr "Αρχεία iCalendar" msgid "Show in day info panel" msgstr "Εμφάνιση ημέρας στο πλάισιο πληροφοριών" msgid "Tasks list" msgstr "" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "Αρ." msgid "Summary" msgstr "Περίληψη" msgid "Due date" msgstr "Ημερομηνία εφαρμογής" msgid "Priority" msgstr "Προτεραιότητα" msgid "Error printing" msgstr "Εκτύπωση λαθών" msgid "No birthdays defined" msgstr "Δεν έχουν εισαχθεί γενέθλια" msgid "Birthdays list" msgstr "Κατάλογος γενεθλίων" msgid "Days to birthday" msgstr "Ημέρες μέχρι γενέθλια" msgid "today" msgstr "σήμερα" msgid "Select CSV file" msgstr "Επιλογή αρχείου CSV" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (τιμές διαχωρισμένες με κόμμα) (*.csv)" msgid "Please select file first." msgstr "Παρακαλώ επιλογή αρχείου" msgid "Import contacts" msgstr "Εισαγωγή επαφών" msgid "Import type" msgstr "Εϊδος εισαγωγής" msgid "File" msgstr "Αρχείο" msgid "Input filename" msgstr "Όνομα αρχείου εισόδου" msgid "Import" msgstr "Εισαγωγή" msgid "Nothing to import." msgstr "Καμμία εισαγωγή." msgid "contact added" msgid_plural "contacts added" msgstr[0] "επαφή προστέθηκε" msgstr[1] "επαφές προστέθηκαν" msgid "of" msgstr "από " msgid "Record" msgstr "Εγγραφή" msgid "Number fields per record" msgstr "Αριθμός πεδίων εγγραφής" msgid "Use first record as header" msgstr "Χρήση πρώτης καταχώρησης ως κεφαλίδα" msgid "Field type" msgstr "Τύπος πεδίου" msgid "Value" msgstr "Τιμή" msgid "No records found in selected file." msgstr "Δεν υπάρχουν εγγραφές στο επιλεγμένο αρχείο" msgid "Cannot read file." msgstr "Αδυναμία ανάγνωσης αρχείου." msgid "Cannot open file." msgstr "Αδυναμία πρόσβασης στο αρχείο." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Εμφάνιση ημερολογίου" msgid "Show tasks" msgstr "Εμφάνιση εργασιών" msgid "Show contacts" msgstr "Εμφάνιση επαφών" msgid "Show notes" msgstr "Εμφάνιση σημειώσεων" msgid "Show options" msgstr "Εμφάνιση επιλογών" msgid "Quit" msgstr "Έξοδος" msgid "Show small calendar window" msgstr "Εμφάνιση μικρού ημερολογίου" msgid "Check for events since last run" msgstr "Έλεγχος για συμβάντα από την τελευταία χρήση" msgid "Number of days to check forward for events (default: 0)" msgstr "Αριθμός ημερών στο μέλλον για συμβάντα (προκαθορισμένο:0)" msgid "Set absolute path for settings and data files" msgstr "Επιλογή διαδρομής για ρυθμίσεις και αρχεία" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "Λαθος: Αδυναμία δημιουργίας αρχείων ρυθμίσεων" msgid "Another copy of OSMO is already running." msgstr "To OSMO ήδη εκτελείται." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Η ταυτόχρονη χρήση δύο ή περισσοτέρων OSMO, μπορεί να οδηγήσει σε απώλεια " "δεδομένων." msgid "Do you really want to continue?" msgstr "Συνέχεια;" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Χαμηλή" msgid "High" msgstr "Υψηλή" msgid "Done!" msgstr "Ολοκληρώθηκε!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "Επαφή εξήχθη" msgstr[1] "Επαφές εξήχθησαν" msgid "Cannot create file." msgstr "Αδυναμία δημιουργίας αρχείου." msgid "Select output file" msgstr "Επιλογή αρχείου" msgid "Export contacts" msgstr "Εξαγωγή επαφών" msgid "Output format" msgstr "Μορφή αρχείου" msgid "Add header" msgstr "Προσθήκη κεφαλίδας" msgid "Fields to export" msgstr "Πεδία για εξαγωγή" msgid "All" msgstr "Όλα" msgid "Invert" msgstr "Αντιστροφή" msgid "Select fields" msgstr "Επιλογή πεδίων" msgid "Output filename" msgstr "Όνομα Αρχείου" msgid "Export" msgstr "Εξαγωγή" msgid "Color of items that are due today" msgstr "Χρώμα αντικειμένων που πρέπει να γίνουν σήμερα" msgid "Color of items that are due in the next 7 days" msgstr "Χρώμα αντικειμένων που πρέπει να γίνουν στις επόμενες 7 ημέρες" msgid "Color of items that are past due" msgstr "Χρώμα αντικειμένων που έχει παρέλθει η ημερομηνία τους" msgid "Task info font" msgstr "Γραμματοσερά λεπτομερειών εργασιών" msgid "Show in bold tasks with high priority" msgstr "Εμφάνιση εργασιών προτεραιότητας με έντονα" msgid "Hide completed tasks" msgstr "Απόκρυψη ολοκληρωμένων εργασιών" msgid "Delete completed tasks without confirmation" msgstr "Διαγραφή ολοκληρωμένων εργασιών χωρίς επιβεβαίωση" msgid "Add new task when double clicked on tasks list" msgstr "Προσθήκη νέας εργασίας με διπλό κλικ στην λίστα εργασιών" msgid "Postpone time" msgstr "Αναβολή για" msgid "minutes" msgstr "λεπτά" msgid "0 for disable" msgstr "0 για απενεργοποίηση" msgid "Repeat sound alarm" msgstr "" msgid "times" msgstr "" msgid "Global notification command" msgstr "Γενική εντολή πληροφόρησης" msgid "Tasks options" msgstr "Επιλογές εργασιών" msgid "Reminder options" msgstr "Επιλογές υπενθύμισης" msgid "Insert timeline" msgstr "Εισαγωγή ημερομηνίας/ώρας" msgid "Timeline" msgstr "Timeline" msgid "From (hour)" msgstr "Από (ώρα)" msgid "Step (minutes)" msgstr "Βήμα (λεπτά)" msgid "To (hour)" msgstr "Έως (ώρα)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Please select at least one day when recurrency is enabled." msgid "Set time" msgstr "Ρύθμιση ώρας" msgid "Hour" msgstr "Ώρα" msgid "Minute" msgstr "Λεπτά" msgid "Today" msgstr "Σήμερα" msgid "Tomorrow" msgstr "Αύριο" msgid "Selected task will be removed." msgstr "Η επιλεγμένη εργασία θα αφαιρεθεί." msgid "Select date and time" msgstr "" msgid "Enable sound notification" msgstr "" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarm warning" msgid "Days" msgstr "Ημέρες" msgid "Hours" msgstr "'Ωρες" msgid "Minutes" msgstr "Λεπτά" msgid "Alarm command" msgstr "Alarm command" msgid "Date period" msgstr "Περίοδος ημερομηνίας" msgid "Months" msgstr "Μήνες" msgid "Repeat" msgstr "Επανάληψη" msgid "Repeat in the following days" msgstr "Επανάληψη στις επόμενες ημέρες" msgid "Time period" msgstr "Περίοδος ώρας" msgid "Start" msgstr "Αρχή " msgid "End" msgstr "Τέλος" msgid "Interval" msgstr "Διάστημα μεταξύ" msgid "Ignore alarm when task expired offline" msgstr "Ανγόηση υπενθύμισης όταν η εργασία έληξε offline" msgid "Recurrent task" msgstr "Επαναλαμβανόμενη εργασία" msgid "Enable" msgstr "Ενεργοποίηση" msgid "Edit task" msgstr "Διόρθωση εργασίας" msgid "Add task" msgstr "Προσθήκη εργασίας" msgid "Basic" msgstr "" msgid "Advanced" msgstr "" msgid "New Moon" msgstr "Νέα Σελήνη" msgid "Waxing Crescent Moon" msgstr "Αύξων Μηνίσκος" msgid "Quarter Moon" msgstr "Αύξουσα Ημισέληνος" msgid "Waxing Gibbous Moon" msgstr "Αύξων Αμφίκυρτος" msgid "Full Moon" msgstr "Πανσέληνος" msgid "Waning Gibbous Moon" msgstr "Φθίνων Αμφίκυρτος " msgid "Last Quarter Moon" msgstr "Φθίνουσα Ημισέλινος" msgid "Waning Crescent Moon" msgstr "Φθίνων Μηνίσκος" msgid "Cannot create backup!" msgstr "" msgid "Save backup" msgstr "" msgid "Password protection" msgstr "" msgid "Enter password" msgstr "Εισαγωγή λέξης κλειδί" msgid "Re-enter password" msgstr "Επανεισαγωγή λέξης κλειδί" msgid "Please enter the password" msgstr "" msgid "Passwords do not match!" msgstr "Οι λέξεις κλειδιά δεν ταιριάζουν" msgid "Backup file saved successfully!" msgstr "" msgid "Open backup file" msgstr "" msgid "Osmo backup files (*.bck)" msgstr "" msgid "This is not Osmo backup file" msgstr "" msgid "Incorrect password!" msgstr "Λάθος λάξη κλειδί" msgid "All your data will be replaced with backup file content." msgstr "" msgid "Osmo has to be restarted now..." msgstr "" msgid "Please select address" msgstr "" msgid "First name" msgstr "Όνομα" msgid "Last name" msgstr "Επώνυμο" msgid "Second name" msgstr "Πατρώνυμο" msgid "Nickname" msgstr "Χαϊδευτικό" msgid "Tags" msgstr "" msgid "Name day date" msgstr "Ονομαστική εορτή" msgid "Home address" msgstr "Διεύθυνση διαμονής" msgid "Home postcode" msgstr "Ταχ. κώδικας διαμονής" msgid "Home city" msgstr "Πόλη διαμονής" msgid "Home state" msgstr "Νομός διαμονής" msgid "Home country" msgstr "Χώρα διαμονής" msgid "Organization" msgstr "Οργανισμός" msgid "Department" msgstr "Τμήμα" msgid "Work address" msgstr "Διεύθυνση εργασίας" msgid "Work postcode" msgstr "Ταχ. Κώδικας εργασίας" msgid "Work city" msgstr "Πόλη εργασίας" msgid "Work state" msgstr "Νομός εργασίας" msgid "Work country" msgstr "Χώρα εργασίας" msgid "Fax" msgstr "ΦΑΞ" msgid "Home phone" msgstr "Τηλέφωνο διαμονής" msgid "Home phone 2" msgstr "Τηλέφωνο διαμονής 2" msgid "Home phone 3" msgstr "Τηλέφωνο διαμονής 3" msgid "Home phone 4" msgstr "Τηλέφωνο διαμονής 4" msgid "Work phone" msgstr "Τηλέφωνο εργασίας" msgid "Work phone 2" msgstr "Τηλέφωνο εργασίας 2" msgid "Work phone 3" msgstr "Τηλέφωνο εργασίας 3" msgid "Work phone 4" msgstr "Τηλέφωνο εργασίας 4" msgid "Cell phone" msgstr "Κινητό τηλέφωνο" msgid "Cell phone 2" msgstr "Κινητό τηλέφωνο 2" msgid "Cell phone 3" msgstr "Κινητό τηλέφωνο 3" msgid "Cell phone 4" msgstr "Κινητό τηλέφωνο 4" msgid "E-Mail" msgstr "E-mail" msgid "E-Mail 2" msgstr "E-mail 2" msgid "E-Mail 3" msgstr "E-mail 3" msgid "E-Mail 4" msgstr "E-mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Φωτογραφία" msgid "New contact" msgstr "Νέα επαφή" msgid "Remove contact" msgstr "Διαγραφή επαφής" msgid "Show birthdays" msgstr "Εμφάνιση γενεθλίων" msgid "Show contact location on the map" msgstr "" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "Περί" msgid "Clear" msgstr "Καθαρισμός" msgid "First Name" msgstr "Όνομα" msgid "Last Name" msgstr "Επίθετο " msgid "All fields" msgstr "Όλα τα πεδία" msgid "Contact details" msgstr "Λεπτομέρεις επαφής" msgid "Close contact panel" msgstr "Κλείσιμο πλαισίου επαφών" msgid "The note has changed." msgstr "Η σημείωση έχει τροποποιηθεί" msgid "Do you want to save it?" msgstr "Αποθήκευση;" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Λέξεις" msgid "Lines" msgstr "Γραμμές" msgid "Characters" msgstr "Χαρακτήρες" msgid "White characters" msgstr "Κενά" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "" msgid "Selection" msgstr "" msgid "Modified" msgstr "Τροποποιημένο" msgid "New note" msgstr "Νέα σημείωση" msgid "Edit note" msgstr "Διόρθωση σημείωσης" msgid "Delete note" msgstr "Διαγαφή σημείωσης" msgid "Save note" msgstr "Αποθήκευση σημείωσης" msgid "Find" msgstr "Αναζήτηση" msgid "Toggle spell checker" msgstr "" msgid "Bold" msgstr "Έντονα" msgid "Italic" msgstr "Λοξά" msgid "Underline" msgstr "Υπογράμμιση" msgid "Strikethrough" msgstr "Strikethrough" msgid "Highlight" msgstr "Έντονα" msgid "Clear attributes" msgstr "Καθαρισμός ιδιοτήτων" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Τρέχουσα Ημερομηνία/Ωρα" msgid "Insert separator" msgstr "Εισαγωγή διαχωριστικού" msgid "Statistics" msgstr "Στατιστικά" msgid "Close editor" msgstr "Κλείσιμο κειμενογράφου" msgid "Note name" msgstr "Όνομα σημείωσης" msgid "Read-only" msgstr "" msgid "Line" msgstr "" msgid "Column" msgstr "" msgid "case sensitive" msgstr "case sensitive" msgid "Close find entry" msgstr "Κλείσιμο στην εύρεση" msgid "Edit entry" msgstr "Διόρθωση καταχώρησης" msgid "Remember cursor position" msgstr "" msgid "Selected note will be removed." msgstr "Η επιλεγμένη σημείωση θα διαγραφεί" msgid "No further data recovery will be possible." msgstr "Αδυναμία ανάκτησης περισσότερων δεδομένων" msgid "Add note" msgstr "Προσθήση σημείωσης" msgid "Plain" msgstr "" msgid "Encrypted" msgstr "" msgid "Note type" msgstr "" msgid "Cannot open the note." msgstr "" msgid "encryption support is disabled" msgstr "" msgid "Authorization" msgstr "Authorization" msgid "year" msgid_plural "years" msgstr[0] "έτος" msgstr[1] "έτη" msgid "day" msgid_plural "days" msgstr[0] "ημέρα" msgstr[1] "ημέρες" msgid "hour" msgid_plural "hours" msgstr[0] "ώρα" msgstr[1] "ώρες" msgid "minute" msgid_plural "minutes" msgstr[0] "λεπτό" msgstr[1] "λεπτά" msgid "second" msgid_plural "seconds" msgstr[0] "δευτερόλεπτο" msgstr[1] "δευτερόλεπτα" msgid "or" msgstr "ή" msgid "rounded down" msgstr "στρογγύλευση σε" msgid "week" msgid_plural "weeks" msgstr[0] "εβδομάδα" msgstr[1] "εβδομάδες" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgid "time is ignored" msgstr "" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgid "This calculator only supports dates after year 1." msgstr "Αυτός ο υπολογιστής υπολογίζει ημερομηνίες μετά το έτος 1" msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgid "Date calculator" msgstr "Υπολογιστής ημερών" msgid "Current date" msgstr "Ημερομηνία" msgid "Set current date" msgstr "Τρέχουσα ημερομηνία" msgid "Second" msgstr "Δευτερόλεπτα" msgid "Set current time" msgstr "Ρύθμιση ώρας" msgid "Reset time" msgstr "Επανακαθορισμός ώρας" msgid "First date and time" msgstr "Αρχική ημερομηνία/ώρα" msgid "Second date and time" msgstr "Τελική ημερομηνία/ώρα" msgid "Alternative time units" msgstr "Εναλλακτικές μονάδες ώρες" msgid "Result" msgstr "Αποτέλεσμα" msgid "Duration between two dates" msgstr "Διάρκεια μεταξύ των δύο ημερομηνιών" msgid "Operation" msgstr "Λειτουργία" msgid "add" msgstr "πρόσθεση" msgid "subtract" msgstr "αφαίρεση" msgid "Date and time to add or subtract from" msgstr "Ημερομηνία και ώρα για πρόσθεση ή αφαίρεση" msgid "Years" msgstr "Έτη" msgid "Weeks" msgstr "Εβδομάδες" msgid "Seconds" msgstr "Δευτερόλεπτα" msgid "Ignore weekend days" msgstr "" msgid "Reset fields" msgstr "Καθαρισμός πεδίων" msgid "Time to add or subtract" msgstr "Ώρα για πρόσθεση ή αφαίρεση" msgid "Add to or subtract from a date" msgstr "Πρόσθεση με/Αφαίρεση από ημερομηνία" msgid "Cannot perform selected operation." msgstr "Αδυναμία εκτέλεσης λειτουργίας." msgid "Task has been modified or removed." msgstr "Η εργασία έχει τροποποιηθεί ή διαγραφεί." msgid "Remind me later" msgstr "Υπενθύμιση αργότερα" msgid "Done" msgstr "Ολοκληρώθηκε" msgid "Show task" msgstr "Εμφάνιση εργασίας" msgid "Alarm warning!" msgstr "Υπενθύμιση!" msgid "postponed" msgstr "Αναβλήθηκε" msgid "Day note" msgstr "Σημείωση ημέρας" msgid "Events" msgstr "Συμβάντα" msgid "Event" msgstr "Συμβάν" msgid "Task" msgstr "Εργασία" msgid "Birthday" msgstr "Γενέθλια" msgid "Show Osmo" msgstr "Εμφάνιση Osmo" msgid "event" msgid_plural "events" msgstr[0] "Συμβάν" msgstr[1] "Συμβάντα" msgid "No valid calendars defined" msgstr "" msgid "iCalendar events" msgstr "Συμβάντα iCalendar" msgid "Time" msgstr "" msgid "The list will be cleared and all entries will be lost." msgstr "Η λίστα θα διαγραφεί." msgid "event exported" msgid_plural "events exported" msgstr[0] "Γεγονός εξήχθη" msgstr[1] "Γεγονότα εξήχθησαν" msgid "iCalendar export" msgstr "Εξαγωγή iCalendar" msgid "Day Selector" msgstr "Επιλογέας ημέρας" msgid "Use date period" msgstr "Περίοδος ημερομηνίας" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "" msgid "Save tasks" msgstr "" msgid "tasks exported" msgstr "" msgid "was born" msgstr "Γεννήθηκε" msgid "year old" msgid_plural "years old" msgstr[0] "ετών" msgstr[1] "ετών" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "Ημέρα μέχρι τέλος του έτους" msgstr[1] "Ημέρες μέχρι τέλος του έτους" msgid "the last day of the year" msgstr "η τελευταία ημέρα του έτους" msgid "Day tasks" msgstr "Ημερήσιες εργασίες" msgid "Selected day note will be removed." msgstr "Η επιλεχθείσα σημείωση θα διαγραφεί." msgid "Continue?" msgstr "Συνέχεια;" msgid "Previous year" msgstr "Προηγούμενο έτος" msgid "Previous month" msgstr "Προηγούμενος μήνας" msgid "Previous day" msgstr "Προηγούμενη ημέρα" msgid "Next day" msgstr "Επόμενη ημέρα" msgid "Next month" msgstr "Επόμενος μήνας" msgid "Next year" msgstr "Επόμενο έτος" msgid "Full-year calendar" msgstr "Ημερολόγιο Έτους" msgid "Print calendar" msgstr "Εκτύπωση ημερολογίου" msgid "Toggle day note panel" msgstr "Εναλλάξιμο πλαίσιο σημειώσεων ημέρας" msgid "Select day color" msgstr "Επιλογή χρώματος ημέρας" msgid "Browse notes" msgstr "Πλοήγηση στις σημειώσεις" msgid "Browse iCal events" msgstr "ΠΛοήγηση στα συμβάντα iCal" msgid "Export to iCal file" msgstr "Εξαγωγή σε αρχείο iCal" msgid "Previous and next month" msgstr "Προηγούμενος και επόμενος μήνας" msgid "Close note panel" msgstr "Κλείσιμο πλαισίου σημειώσεων" msgid "Clear text" msgstr "Καθαρισμός κειμένου" msgid "Info" msgstr "Πληροφορίες" msgid "Select color" msgstr "Επιλογή χρώματος" msgid "Name day" msgstr "" msgid "Printing properties" msgstr "" msgid "Month name" msgstr "" msgid "Day name" msgstr "" msgid "Fonts" msgstr "" msgid "Birthdays" msgstr "" msgid "Namedays" msgstr "" msgid "Visible events" msgstr "" msgid "Padding" msgstr "" msgid "Event maximum length" msgstr "" msgid "Page orientation:" msgstr "" msgid "Portrait" msgstr "" msgid "Landscape" msgstr "" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Leap year" msgid "Yes" msgstr "Ναι" msgid "No" msgstr "Οχι" msgid "Chinese year animal" msgstr "Κινέζικο ωροσκόπιο" msgid "Number of days" msgstr "Αριθμός ημερών" msgid "Number of weeks" msgstr "Αριθμός εβδομάδων" msgid "Number of weekend days" msgstr "Αριθμός Σαββατοκύριακα" msgid "Year info" msgstr "Πληροφορίες έτους" msgid "Alternative view" msgstr "Εναλλακτική εμφάνιση" msgid "Started" msgstr "Άρχισε" msgid "Finished" msgstr "Τελείωσε" msgid "New task" msgstr "Νέα εργασία" msgid "Remove task" msgstr "Αφαίρεση εργασίας" msgid "Change due date to previous date" msgstr "" msgid "Change due date to next date" msgstr "" msgid "Export tasks" msgstr "" msgid "Print visible tasks list" msgstr "Εκτύπωση καταλόγου εμφανών εργασιών" msgid "Task details" msgstr "Λεπτομέρειες εργασίας" msgid "Close description panel" msgstr "Κλείσιμο πλαισίου περιγραφής" msgid "Ctrl+PageUp" msgstr "" msgid "switch to previous tab" msgstr "Μετάβαση στην προηγούμενη καρτέλα" msgid "Ctrl+PageDn" msgstr "" msgid "switch to next tab" msgstr "Μετάβαση στην επόμενη καρτέλα" msgid "switch to selected page" msgstr "Μετάβαση στο επιλεγμένο πακέτο" msgid "show options window" msgstr "" msgid "show about window" msgstr "" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "" msgid "switch page in options and about tab" msgstr "switch page in options and about tab" msgid "exit" msgstr "έξοδος" msgid "Space" msgstr "" msgid "select current date" msgstr "Επιλογή τρέχουσας ημερομηνίας" msgid "Ctrl+Space" msgstr "" msgid "toggle personal data visibility" msgstr "toggle personal data visibility" msgid "Arrows" msgstr "" msgid "change day" msgstr "αλλαγή ημέρας" msgid "Ctrl+Up/Down" msgstr "" msgid "scroll the contents in the day info panel" msgstr "εμφάνιση των περιεχομένων της ημέρας στο πλαίσιο πληροφοριών ημέρας" msgid "change month" msgstr "αλλαγή μήνα" msgid "Home/End" msgstr "" msgid "change year" msgstr "αλλαγή έτους" msgid "toggle calendars for the previous and next month" msgstr "εναλλαγή ημερολογίου για προηγούμενο/επόμενο μήνα" msgid "day notes browser" msgstr "πλοηγητής σημειώσεων" msgid "assign background color to day note" msgstr "προσθήκη χρώματος φόντου στην σημείωση" msgid "date calculator" msgstr "υπολογιστής ημερών" msgid "show full-year calendar" msgstr "Εμφάνιση ετήσιου ημερολογίου" msgid "jump to date" msgstr "μετάβαση σε ημέρα" msgid "Delete" msgstr "" msgid "remove day note" msgstr "διαγραφή σημείωσης" msgid "Alt+Arrows" msgstr "" msgid "Esc" msgstr "" msgid "close editor" msgstr "" msgid "toggle bold" msgstr "" msgid "toggle italic" msgstr "" msgid "toggle underline" msgstr "" msgid "toggle strikethrough" msgstr "" msgid "toggle highlight" msgstr "" msgid "Arrows Up/Down" msgstr "" msgid "toggle alternative view" msgstr "" msgid "year info" msgstr "" msgid "set current year" msgstr "" msgid "close full-year calendar" msgstr "" msgid "Alt+a, Insert" msgstr "" msgid "add task" msgstr "προσθήκη εργασίας" msgid "Alt+e, Ctrl+Enter" msgstr "" msgid "edit task" msgstr "τροποποίηση εργασίας" msgid "Alt+r, Delete" msgstr "" msgid "remove task" msgstr "διαγραφή εργασίας" msgid "toggle hidden tasks" msgstr "εναλλαγή εργασιών σε απόκρυψη" msgid "activate search field" msgstr "ενεργοποίηση πεδίου αναζήτησης" msgid "Left, Right" msgstr "" msgid "change category filter" msgstr "αλλαγή φίλτρου κατηγορίας" msgid "close task info panel" msgstr "κλείσιμο πλαισίου εργασιών" msgid "Insert" msgstr "Εισαγωγή" msgid "add contact" msgstr "προσθήκη επαφής" msgid "Ctrl+Enter" msgstr "" msgid "edit contact" msgstr "διόρθωση επαφής" msgid "remove contact" msgstr "διαγραφή επαφής" msgid "change search mode" msgstr "αλλαγή τρόπου αναζήτησης" msgid "close contact details panel" msgstr "κλείσιμο πλαισίου επαφών" msgid "Enter" msgstr "" msgid "open note" msgstr "άνοιγα σημείωσης" msgid "add note" msgstr "προσθήκη σημείωσης" msgid "remove note" msgstr "διαγραφή σημείωσης" msgid "edit note name and category" msgstr "διόρθωση ονόματος σημείωσης και κατηγορίας" msgid "close note editor" msgstr "κλείσιμο κειμενογράφου σημειώσεων" msgid "save note" msgstr "αποθήκευση σημείωσης" msgid "find text" msgstr "αναζήτηση κειμένου" msgid "clear selection attributes" msgstr "καθαρισμός ιδιοτήτων επιλογής" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" msgid "Note editor" msgstr "" msgid "Selector" msgstr "Επιλογέας" msgid "Editor" msgstr "Κειμενογράφος" msgid "A handy personal organizer" msgstr "Ένα βολικό Organizer" msgid "compiled on" msgstr "compiled on" msgid "Programming" msgstr "Προγραμματισμός" msgid "Graphics" msgstr "Γραφικά" msgid "Contributors" msgstr "Συντελεστές" msgid "Translators" msgstr "Μεταφραστές" msgid "Mailing lists" msgstr "" msgid "Bug tracker" msgstr "" msgid "Feature requests" msgstr "" msgid "Available modules" msgstr "" msgid "Compiled-in features" msgstr "Ενσωματωμένες δυνατότητες" msgid "iCalendar support" msgstr "Υποστήριξη iCalendar" msgid "Encrypted notes support" msgstr "" msgid "Backup support" msgstr "" msgid "Printing support" msgstr "" msgid "Spell checker support" msgstr "" msgid "version" msgstr "Έκδοση" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Συντομεύσεις" msgid "License" msgstr "Άδεια χρήσης" osmo-0.4.2/po/en_GB.po0000664000175000017500000010463313204320601011343 00000000000000# English UK translation of Osmo # This file is distributed under the same license as the Osmo package. # Steve Cook # msgid "" msgstr "" "Project-Id-Version: Osmo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: \n" "Last-Translator: Steve Cook (Yorvyk) \n" "Language-Team: English UK en_GB \n" "Language: en_GB\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" msgid "Colors" msgstr "Colours" msgid "Color of contact tags" msgstr "Colour of contact tags" msgid "Color of links" msgstr "Colour of links" msgid "Font size" msgstr "Font size" msgid "Name font size" msgstr "Name font size" msgid "Item font size" msgstr "Item font size" msgid "Photo size" msgstr "Photo size" msgid "Small" msgstr "Small" msgid "Medium" msgstr "Medium" msgid "Large" msgstr "Large" msgid "Hide group column" msgstr "Hide group column" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Age" msgid "Birthday date" msgstr "Birthday date" msgid "Zodiac sign" msgstr "Zodiac sign" msgid "Contacts" msgstr "Contacts" msgid "Appearance" msgstr "Appearance" msgid "Miscellaneous" msgstr "Miscellaneous" msgid "Groups" msgstr "Groups" msgid "Visible columns in birthday browser" msgstr "Visible columns in birthday browser" msgid "Algorithm" msgstr "Algorithm" msgid "Hashing" msgstr "Hashing" msgid "Compression" msgstr "Compression" msgid "Ratio" msgstr "Ratio" msgid "Fast" msgstr "Fast" msgid "Good" msgstr "Good" msgid "Best" msgstr "Best" msgid "Type" msgstr "Type" msgid "Category" msgstr "Category" msgid "Last changes" msgstr "Last changes" msgid "Created" msgstr "Created" msgid "Remember the last selected category" msgstr "Remember the last selected category" msgid "Use system format for date and time" msgstr "Use system format for date and time" msgid "Notes" msgstr "Notes" msgid "Encryption" msgstr "Encryption" msgid "Visible columns" msgstr "Visible columns" msgid "Categories" msgstr "Categories" msgid "Notes options" msgstr "Notes options" msgid "Jump to date" msgstr "Jump to date" msgid "Day" msgstr "Day" msgid "Month" msgstr "Month" msgid "Year" msgstr "Year" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Select a font..." msgid "None" msgstr "None" msgid "All items" msgstr "All items" msgid "Question" msgstr "Question" msgid "Information" msgstr "Information" msgid "Error" msgstr "Error" msgid "Warning" msgstr "Warning" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Selected file exist! Overwrite?" msgid "Selected contact will be removed." msgstr "Selected contact will be removed." msgid "Are you sure?" msgstr "Are you sure?" msgid "No date" msgstr "No date" msgid "Select photo" msgstr "Select photo" msgid "Address" msgstr "Address" msgid "Postcode" msgstr "Postcode" msgid "City" msgstr "City" msgid "State" msgstr "County" msgid "Country" msgstr "Country" msgid "Edit contact" msgstr "Edit contact" msgid "Add contact" msgstr "Add contact" msgid "Personal" msgstr "Personal" msgid "Group" msgstr "Group" msgid "Home" msgstr "Home" msgid "Work" msgstr "Work" msgid "Phones" msgstr "Phones" msgid "Internet" msgstr "Internet" msgid "Additional info" msgstr "Additional info" msgid "_OK" msgstr "" msgid "no entries" msgstr "no entries" msgid "entry" msgid_plural "entries" msgstr[0] "entry" msgstr[1] "entries" msgid "Calendar notes" msgstr "Calendar notes" msgid "Search" msgstr "Search" msgid "Filter" msgstr "Filter" msgid "Current month" msgstr "Current month" msgid "Selected month" msgstr "Selected month" msgid "Current year" msgstr "Current year" msgid "Selected year" msgstr "Selected year" msgid "Selected month and year" msgstr "Selected month and year" msgid "All notes" msgstr "All notes" msgid "Case sensitive" msgstr "Case sensitive" msgid "Strikethrough past day notes" msgstr "Strike-through past day notes" msgid "Date" msgstr "Date" msgid "Note" msgstr "Note" msgid "_Close" msgstr "" msgid "Rat" msgstr "Rat" msgid "Ox" msgstr "Ox" msgid "Tiger" msgstr "Tiger" msgid "Hare" msgstr "Rabbit" msgid "Dragon" msgstr "Dragon" msgid "Snake" msgstr "Snake" msgid "Horse" msgstr "Horse" msgid "Sheep" msgstr "Goat" msgid "Monkey" msgstr "Monkey" msgid "Fowl" msgstr "Fowl" msgid "Dog" msgstr "Dog" msgid "Pig" msgstr "Boar" msgid "Unknown" msgstr "Unknown" msgid "Aquarius" msgstr "Aquarius" msgid "Pisces" msgstr "Pisces" msgid "Aries" msgstr "Aries" msgid "Taurus" msgstr "Taurus" msgid "Gemini" msgstr "Gemini" msgid "Cancer" msgstr "Cancer" msgid "Leo" msgstr "Leo" msgid "Virgo" msgstr "Virgo" msgid "Libra" msgstr "Libra" msgid "Scorpio" msgstr "Scorpio" msgid "Sagittarius" msgstr "Sagittarius" msgid "Capricorn" msgstr "Capricorn" msgid "Osmo has to be restarted to take effect." msgstr "Osmo has to be restarted to take effect." msgid "Layout" msgstr "Layout" msgid "Vertical" msgstr "Vertical" msgid "Horizontal" msgstr "Horizontal" msgid "Tabs position" msgstr "Tabs position" msgid "Left" msgstr "Left" msgid "Right" msgstr "Right" msgid "Top" msgstr "Top" msgid "Bottom" msgstr "Bottom" msgid "Disable underline in links" msgstr "Disable underline in links" msgid "Show exit button in toolbar" msgstr "Show exit button in toolbar" msgid "At least one module must be visible." msgstr "At least one module must be visible." msgid "Calendar" msgstr "Calendar" msgid "Tasks" msgstr "Tasks" msgid "Override locale settings" msgstr "Override locale settings" msgid "Date format" msgstr "Date format" msgid "DD-MM-YYYY" msgstr "DD-MM-YYYY" msgid "MM-DD-YYYY" msgstr "MM-DD-YYYY" msgid "YYYY-MM-DD" msgstr "YYYY-MM-DD" msgid "YYYY-DD-MM" msgstr "YYYY-DD-MM" msgid "Time format" msgstr "Time format" msgid "hours" msgstr "hours" msgid "Spell checker language" msgstr "Spell checker language" msgid "Enable tooltips" msgstr "Enable tooltips" msgid "Remember last selected page" msgstr "Remember last selected page" msgid "Save data after every modification" msgstr "Save data after every modification" msgid "Web browser" msgstr "Web browser" msgid "E-mail client" msgstr "E-mail client" msgid "Sound player" msgstr "Sound player" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "The %s pattern will be replaced with web address" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "The %s pattern will be replaced with e-mail address" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "The %s pattern will be replaced with sound filename" msgid "Enable system tray" msgstr "Enable system tray" msgid "Start minimised" msgstr "Start minimised" msgid "Ignore day note events" msgstr "Ignore day note events" msgid "General" msgstr "General" msgid "Hide" msgstr "Hide" msgid "Helpers" msgstr "Helpers" msgid "System tray" msgstr "System tray" msgid "Preferences" msgstr "Preferences" msgid "Syntax" msgstr "Syntax" msgid "abbreviated weekday name" msgstr "abbreviated weekday name" msgid "full weekday name" msgstr "full weekday name" msgid "abbreviated month name" msgstr "abbreviated month name" msgid "full month name" msgstr "full month name" msgid "day of the month" msgstr "day of the month" msgid "MM/DD/YY" msgstr "MM/DD/YY" msgid "day of the month without leading zeros" msgstr "day of the month without leading zeros" msgid "month" msgid_plural "months" msgstr[0] "month" msgstr[1] "months" msgid "year without century" msgstr "year without century" msgid "year with century" msgstr "year with century" msgid "Date header format" msgstr "Date header format" msgid "Set default format" msgstr "Set default format" msgid "Date format syntax" msgstr "Date format syntax" msgid "Day note marker" msgstr "Day note marker" msgid "Event marker" msgstr "Event marker" msgid "Circle" msgstr "Circle" msgid "Ellipse" msgstr "Ellipse" msgid "Wave" msgstr "Wave" msgid "Current day marker" msgstr "Current day marker" msgid "Arrow" msgstr "Arrow" msgid "Free-hand circle" msgstr "Free-hand circle" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Weekend days colour" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Cursor colour" msgid "Event marker color" msgstr "Event marker colour" msgid "Current day marker color" msgstr "Current day marker colour" msgid "Birthday marker color" msgstr "Birthday marker colour" msgid "Date font" msgstr "Date font" msgid "Calendar font" msgstr "Calendar font" msgid "Note font" msgstr "Note font" msgid "Enable block cursor" msgstr "Enable block cursor" msgid "Cursor thickness" msgstr "Cursor thickness" msgid "Thin" msgstr "Thin" msgid "Thick" msgstr "Thick" msgid "Edit category" msgstr "Edit category" msgid "Color" msgstr "Colour" msgid "Name" msgstr "Name" msgid "Select ICS file" msgstr "Select ICS file" msgid "All Files" msgstr "All Files" msgid "Calendar files (*.ics)" msgstr "Calendar files (*.ics)" msgid "Modify ICAL parameters" msgstr "Modify ICAL parameters" msgid "Filename" msgstr "Filename" msgid "Options" msgstr "Options" msgid "Disabled" msgstr "Disabled" msgid "Valid" msgstr "Valid" msgid "Description" msgstr "Description" msgid "Full date" msgstr "Full date" msgid "Mark" msgstr "Mark" msgid "Week start on Monday" msgstr "Week start on Monday" msgid "Show day names" msgstr "Show day names" msgid "No month change" msgstr "No month change" msgid "Show week numbers" msgstr "Show week numbers" msgid "Simple view in full-year calendar" msgstr "Simple view in full-year calendar" msgid "Enable auxilary calendars" msgstr "Enable auxilary calendars" msgid "Ascending sorting in day notes browser" msgstr "Ascending sorting in day notes browser" msgid "Enable spell checker in day notes" msgstr "Enable spell checker in day notes" msgid "Current time" msgstr "Current time" msgid "Show seconds" msgstr "Show seconds" msgid "Day number" msgstr "Day number" msgid "Today distance" msgstr "Today distance" msgid "Marked days" msgstr "Marked days" msgid "Week number" msgstr "Week number" msgid "Weekend days" msgstr "Weekend days" msgid "Day category" msgstr "Day category" msgid "Moon phase" msgstr "Moon phase" msgid "Day notes" msgstr "Day notes" msgid "Day categories" msgstr "Day categories" msgid "iCalendar files" msgstr "iCalendar files" msgid "Show in day info panel" msgstr "Show in day info panel" msgid "Tasks list" msgstr "Tasks list" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "No." msgid "Summary" msgstr "Summary" msgid "Due date" msgstr "Due date" msgid "Priority" msgstr "Priority" msgid "Error printing" msgstr "Error printing" msgid "No birthdays defined" msgstr "No birthdays defined" msgid "Birthdays list" msgstr "Birthdays list" msgid "Days to birthday" msgstr "Days to birthday" msgid "today" msgstr "today" msgid "Select CSV file" msgstr "Select CSV file" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (comma-separated values) files (*.csv)" msgid "Please select file first." msgstr "Please select file first." msgid "Import contacts" msgstr "Import contacts" msgid "Import type" msgstr "Import type" msgid "File" msgstr "File" msgid "Input filename" msgstr "Input filename" msgid "Import" msgstr "Import" msgid "Nothing to import." msgstr "Nothing to import." msgid "contact added" msgid_plural "contacts added" msgstr[0] "contact added" msgstr[1] "contacts added" msgid "of" msgstr "of" msgid "Record" msgstr "Record" msgid "Number fields per record" msgstr "Number fields per record" msgid "Use first record as header" msgstr "Use first record as header" msgid "Field type" msgstr "Field type" msgid "Value" msgstr "Value" msgid "No records found in selected file." msgstr "No records found in selected file." msgid "Cannot read file." msgstr "Cannot read file." msgid "Cannot open file." msgstr "Cannot open file." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Show calendar" msgid "Show tasks" msgstr "Show tasks" msgid "Show contacts" msgstr "Show contacts" msgid "Show notes" msgstr "Show notes" msgid "Show options" msgstr "Show options" msgid "Quit" msgstr "Quit" msgid "Show small calendar window" msgstr "Show small calendar window" msgid "Check for events since last run" msgstr "Check for events since last run" msgid "Number of days to check forward for events (default: 0)" msgstr "Number of days to check forward for events (default: 0)" msgid "Set absolute path for settings and data files" msgstr "Set absolute path for settings and data files" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ERROR: Cannot create config files" msgid "Another copy of OSMO is already running." msgstr "Another copy of OSMO is already running." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Simultaneous use two or more copies of OSMO can be a cause of data loss." msgid "Do you really want to continue?" msgstr "Do you really want to continue?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Low" msgid "High" msgstr "High" msgid "Done!" msgstr "Done!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "contact exported" msgstr[1] "contacts exported" msgid "Cannot create file." msgstr "Cannot create file." msgid "Select output file" msgstr "Select output file" msgid "Export contacts" msgstr "Export contacts" msgid "Output format" msgstr "Output format" msgid "Add header" msgstr "Add header" msgid "Fields to export" msgstr "Fields to export" msgid "All" msgstr "All" msgid "Invert" msgstr "Invert" msgid "Select fields" msgstr "Select fields" msgid "Output filename" msgstr "Output filename" msgid "Export" msgstr "Export" msgid "Color of items that are due today" msgstr "Colour of items that are due today" msgid "Color of items that are due in the next 7 days" msgstr "Colour of items that are due in the next 7 days" msgid "Color of items that are past due" msgstr "Colour of items that are past due" msgid "Task info font" msgstr "Task info font" msgid "Show in bold tasks with high priority" msgstr "Show in bold, tasks with high priority" msgid "Hide completed tasks" msgstr "Hide completed tasks" msgid "Delete completed tasks without confirmation" msgstr "Delete completed tasks without confirmation" msgid "Add new task when double clicked on tasks list" msgstr "Add new task when double clicked on tasks list" msgid "Postpone time" msgstr "Postpone time" msgid "minutes" msgstr "minutes" msgid "0 for disable" msgstr "0 for disable" msgid "Repeat sound alarm" msgstr "Repeat sound alarm" msgid "times" msgstr "times" msgid "Global notification command" msgstr "Global notification command" msgid "Tasks options" msgstr "Tasks options" msgid "Reminder options" msgstr "Reminder options" msgid "Insert timeline" msgstr "Insert timeline" msgid "Timeline" msgstr "Time-line" msgid "From (hour)" msgstr "From (hour)" msgid "Step (minutes)" msgstr "Step (minutes)" msgid "To (hour)" msgstr "To (hour)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Please select at least one day when recurrency is enabled." msgid "Set time" msgstr "Set time" msgid "Hour" msgstr "Hour" msgid "Minute" msgstr "Minute" msgid "Today" msgstr "Today" msgid "Tomorrow" msgstr "Tomorrow" msgid "Selected task will be removed." msgstr "Selected task will be removed." msgid "Select date and time" msgstr "Select date and time" msgid "Enable sound notification" msgstr "Enable sound notification" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Alarm warning" msgid "Days" msgstr "Days" msgid "Hours" msgstr "Hours" msgid "Minutes" msgstr "Minutes" msgid "Alarm command" msgstr "Alarm command" msgid "Date period" msgstr "Date period" msgid "Months" msgstr "Months" msgid "Repeat" msgstr "Repeat" msgid "Repeat in the following days" msgstr "Repeat in the following days" msgid "Time period" msgstr "Time period" msgid "Start" msgstr "Start" msgid "End" msgstr "End" msgid "Interval" msgstr "Interval" msgid "Ignore alarm when task expired offline" msgstr "Ignore alarm when task expired offline" msgid "Recurrent task" msgstr "Recurrent task" msgid "Enable" msgstr "Enable" msgid "Edit task" msgstr "Edit task" msgid "Add task" msgstr "Add task" msgid "Basic" msgstr "Basic" msgid "Advanced" msgstr "Advanced" msgid "New Moon" msgstr "New Moon" msgid "Waxing Crescent Moon" msgstr "Waxing Crescent Moon" msgid "Quarter Moon" msgstr "Quarter Moon" msgid "Waxing Gibbous Moon" msgstr "Waxing Gibbous Moon" msgid "Full Moon" msgstr "Full Moon" msgid "Waning Gibbous Moon" msgstr "Waning Gibbous Moon" msgid "Last Quarter Moon" msgstr "Last Quarter Moon" msgid "Waning Crescent Moon" msgstr "Waning Crescent Moon" msgid "Cannot create backup!" msgstr "Cannot create backup!" msgid "Save backup" msgstr "Save backup" msgid "Password protection" msgstr "Password protection" msgid "Enter password" msgstr "Enter password" msgid "Re-enter password" msgstr "Re-enter password" msgid "Please enter the password" msgstr "Please enter the password" msgid "Passwords do not match!" msgstr "Passwords do not match!" msgid "Backup file saved successfully!" msgstr "Backup file saved successfully!" msgid "Open backup file" msgstr "Open backup file" msgid "Osmo backup files (*.bck)" msgstr "Osmo backup files (*.bck)" msgid "This is not Osmo backup file" msgstr "This is not Osmo backup file" msgid "Incorrect password!" msgstr "Incorrect password!" msgid "All your data will be replaced with backup file content." msgstr "All your data will be replaced with backup file content." msgid "Osmo has to be restarted now..." msgstr "Osmo has to be restarted now..." msgid "Please select address" msgstr "Please select address" msgid "First name" msgstr "First name" msgid "Last name" msgstr "Last name" msgid "Second name" msgstr "Second name" msgid "Nickname" msgstr "Nickname" msgid "Tags" msgstr "Tags" msgid "Name day date" msgstr "Name day date" msgid "Home address" msgstr "Home address" msgid "Home postcode" msgstr "Home postcode" msgid "Home city" msgstr "Home city" msgid "Home state" msgstr "Home county" msgid "Home country" msgstr "Home country" msgid "Organization" msgstr "Organisation" msgid "Department" msgstr "Department" msgid "Work address" msgstr "Work address" msgid "Work postcode" msgstr "Work postcode" msgid "Work city" msgstr "Work city" msgid "Work state" msgstr "Work county" msgid "Work country" msgstr "Work country" msgid "Fax" msgstr "Fax" msgid "Home phone" msgstr "Home phone" msgid "Home phone 2" msgstr "Home phone 2" msgid "Home phone 3" msgstr "Home phone 3" msgid "Home phone 4" msgstr "Home phone 4" msgid "Work phone" msgstr "Work phone" msgid "Work phone 2" msgstr "Work phone 2" msgid "Work phone 3" msgstr "Work phone 3" msgid "Work phone 4" msgstr "Work phone 4" msgid "Cell phone" msgstr "Mobile phone" msgid "Cell phone 2" msgstr "Mobile phone 2" msgid "Cell phone 3" msgstr "Mobile phone 3" msgid "Cell phone 4" msgstr "Mobile phone 4" msgid "E-Mail" msgstr "E-Mail" msgid "E-Mail 2" msgstr "E-Mail 2" msgid "E-Mail 3" msgstr "E-Mail 3" msgid "E-Mail 4" msgstr "E-Mail 4" msgid "WWW" msgstr "WWW" msgid "WWW 2" msgstr "WWW 2" msgid "WWW 3" msgstr "WWW 3" msgid "WWW 4" msgstr "WWW 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Blog" msgid "Photo" msgstr "Photo" msgid "New contact" msgstr "New contact" msgid "Remove contact" msgstr "Remove contact" msgid "Show birthdays" msgstr "Show birthdays" msgid "Show contact location on the map" msgstr "Show contact location on the map" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "About" msgid "Clear" msgstr "Clear" msgid "First Name" msgstr "First Name" msgid "Last Name" msgstr "Last Name" msgid "All fields" msgstr "All fields" msgid "Contact details" msgstr "Contact details" msgid "Close contact panel" msgstr "Close contact panel" msgid "The note has changed." msgstr "The note has changed." msgid "Do you want to save it?" msgstr "Do you want to save it?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Words" msgid "Lines" msgstr "Lines" msgid "Characters" msgstr "Characters" msgid "White characters" msgstr "White characters" msgid "Bytes" msgstr "Bytes" msgid "Document" msgstr "Document" msgid "Selection" msgstr "Selection" msgid "Modified" msgstr "Modified" msgid "New note" msgstr "New note" msgid "Edit note" msgstr "Edit note" msgid "Delete note" msgstr "Delete note" msgid "Save note" msgstr "Save note" msgid "Find" msgstr "Find" msgid "Toggle spell checker" msgstr "Toggle spell checker" msgid "Bold" msgstr "Bold" msgid "Italic" msgstr "Italic" msgid "Underline" msgstr "Underline" msgid "Strikethrough" msgstr "Strike-through" msgid "Highlight" msgstr "Highlight" msgid "Clear attributes" msgstr "Clear attributes" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Insert current date and time" msgid "Insert separator" msgstr "Insert separator" msgid "Statistics" msgstr "Statistics" msgid "Close editor" msgstr "Close editor" msgid "Note name" msgstr "Note name" msgid "Read-only" msgstr "Read-only" msgid "Line" msgstr "Line" msgid "Column" msgstr "Column" msgid "case sensitive" msgstr "case sensitive" msgid "Close find entry" msgstr "Close find entry" msgid "Edit entry" msgstr "Edit entry" msgid "Remember cursor position" msgstr "Remember cursor position" msgid "Selected note will be removed." msgstr "Selected note will be removed." msgid "No further data recovery will be possible." msgstr "No further data recovery will be possible." msgid "Add note" msgstr "Add note" msgid "Plain" msgstr "Plain" msgid "Encrypted" msgstr "Encrypted" msgid "Note type" msgstr "Note type" msgid "Cannot open the note." msgstr "Cannot open the note." msgid "encryption support is disabled" msgstr "encryption support is disabled" msgid "Authorization" msgstr "Authorisation" msgid "year" msgid_plural "years" msgstr[0] "year" msgstr[1] "years" msgid "day" msgid_plural "days" msgstr[0] "day" msgstr[1] "days" msgid "hour" msgid_plural "hours" msgstr[0] "hour" msgstr[1] "hours" msgid "minute" msgid_plural "minutes" msgstr[0] "minute" msgstr[1] "minutes" msgid "second" msgid_plural "seconds" msgstr[0] "second" msgstr[1] "seconds" msgid "or" msgstr "or" msgid "rounded down" msgstr "rounded down" msgid "week" msgid_plural "weeks" msgstr[0] "week" msgstr[1] "weeks" msgid "working day" msgid_plural "working days" msgstr[0] "working day" msgstr[1] "working days" msgid "time is ignored" msgstr "time is ignored" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "weekend day" msgstr[1] "weekend days" msgid "This calculator only supports dates after year 1." msgstr "This calculator only supports dates after year 1." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "weekend day ignored" msgstr[1] "weekend days ignored" msgid "Date calculator" msgstr "Date calculator" msgid "Current date" msgstr "Current date" msgid "Set current date" msgstr "Set current date" msgid "Second" msgstr "Second" msgid "Set current time" msgstr "Set current time" msgid "Reset time" msgstr "Reset time" msgid "First date and time" msgstr "First date and time" msgid "Second date and time" msgstr "Second date and time" msgid "Alternative time units" msgstr "Alternative time units" msgid "Result" msgstr "Result" msgid "Duration between two dates" msgstr "Duration between two dates" msgid "Operation" msgstr "Operation" msgid "add" msgstr "add" msgid "subtract" msgstr "subtract" msgid "Date and time to add or subtract from" msgstr "Date and time to add or subtract from" msgid "Years" msgstr "Years" msgid "Weeks" msgstr "Weeks" msgid "Seconds" msgstr "Seconds" msgid "Ignore weekend days" msgstr "Ignore weekend days" msgid "Reset fields" msgstr "Reset fields" msgid "Time to add or subtract" msgstr "Time to add or subtract" msgid "Add to or subtract from a date" msgstr "Add to or subtract from a date" msgid "Cannot perform selected operation." msgstr "Cannot perform selected operation." msgid "Task has been modified or removed." msgstr "Task has been modified or removed." msgid "Remind me later" msgstr "Remind me later" msgid "Done" msgstr "Done" msgid "Show task" msgstr "Show task" msgid "Alarm warning!" msgstr "Alarm warning!" msgid "postponed" msgstr "postponed" msgid "Day note" msgstr "Day note" msgid "Events" msgstr "Events" msgid "Event" msgstr "Event" msgid "Task" msgstr "Task" msgid "Birthday" msgstr "Birthday" msgid "Show Osmo" msgstr "Show Osmo" msgid "event" msgid_plural "events" msgstr[0] "event" msgstr[1] "events" msgid "No valid calendars defined" msgstr "No valid calendars defined" msgid "iCalendar events" msgstr "iCalendar events" msgid "Time" msgstr "Time" msgid "The list will be cleared and all entries will be lost." msgstr "The list will be cleared and all entries will be lost." msgid "event exported" msgid_plural "events exported" msgstr[0] "event exported" msgstr[1] "events exported" msgid "iCalendar export" msgstr "iCalendar export" msgid "Day Selector" msgstr "Day Selector" msgid "Use date period" msgstr "Use date period" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "No tasks with defined date found." msgid "Save tasks" msgstr "Save tasks" msgid "tasks exported" msgstr "tasks exported" msgid "was born" msgstr "was born" msgid "year old" msgid_plural "years old" msgstr[0] "year old" msgstr[1] "years old" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "day till end of year" msgstr[1] "days until end of year" msgid "the last day of the year" msgstr "the last day of the year" msgid "Day tasks" msgstr "Day tasks" msgid "Selected day note will be removed." msgstr "Selected day note will be removed." msgid "Continue?" msgstr "Continue?" msgid "Previous year" msgstr "Previous year" msgid "Previous month" msgstr "Previous month" msgid "Previous day" msgstr "Previous day" msgid "Next day" msgstr "Next day" msgid "Next month" msgstr "Next month" msgid "Next year" msgstr "Next year" msgid "Full-year calendar" msgstr "Full-year calendar" msgid "Print calendar" msgstr "Print calendar" msgid "Toggle day note panel" msgstr "Toggle day note panel" msgid "Select day color" msgstr "Select day colour" msgid "Browse notes" msgstr "Browse notes" msgid "Browse iCal events" msgstr "Browse iCal events" msgid "Export to iCal file" msgstr "Export to iCal file" msgid "Previous and next month" msgstr "Previous and next month" msgid "Close note panel" msgstr "Close note panel" msgid "Clear text" msgstr "Clear text" msgid "Info" msgstr "Info" msgid "Select color" msgstr "Select colour" msgid "Name day" msgstr "Name day" msgid "Printing properties" msgstr "Printing properties" msgid "Month name" msgstr "Month name" msgid "Day name" msgstr "Day name" msgid "Fonts" msgstr "Fonts" msgid "Birthdays" msgstr "Birthdays" msgid "Namedays" msgstr "Name-days" msgid "Visible events" msgstr "Visible events" msgid "Padding" msgstr "Padding" msgid "Event maximum length" msgstr "Event maximum length" msgid "Page orientation:" msgstr "Page orientation:" msgid "Portrait" msgstr "Portrait" msgid "Landscape" msgstr "Landscape" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Leap year" msgid "Yes" msgstr "Yes" msgid "No" msgstr "No" msgid "Chinese year animal" msgstr "Chinese year animal" msgid "Number of days" msgstr "Number of days" msgid "Number of weeks" msgstr "Number of weeks" msgid "Number of weekend days" msgstr "Number of weekend days" msgid "Year info" msgstr "Year info" msgid "Alternative view" msgstr "Alternative view" msgid "Started" msgstr "Started" msgid "Finished" msgstr "Finished" msgid "New task" msgstr "New task" msgid "Remove task" msgstr "Remove task" msgid "Change due date to previous date" msgstr "Change due date to previous date" msgid "Change due date to next date" msgstr "Change due date to next date" msgid "Export tasks" msgstr "Export tasks" msgid "Print visible tasks list" msgstr "Print visible tasks list" msgid "Task details" msgstr "Task details" msgid "Close description panel" msgstr "Close description panel" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "switch to previous tab" msgid "Ctrl+PageDn" msgstr "Ctrl+PageDown" msgid "switch to next tab" msgstr "switch to next tab" msgid "switch to selected page" msgstr "switch to selected page" msgid "show options window" msgstr "show options window" msgid "show about window" msgstr "show about window" msgid "toggle fullscreen mode" msgstr "toggle fullscreen mode" msgid "PageUp/PageDn" msgstr "PageUp/PageDown" msgid "switch page in options and about tab" msgstr "switch page in options and about tab" msgid "exit" msgstr "exit" msgid "Space" msgstr "Space" msgid "select current date" msgstr "select current date" msgid "Ctrl+Space" msgstr "Ctrl+Space" msgid "toggle personal data visibility" msgstr "toggle personal data visibility" msgid "Arrows" msgstr "Arrows" msgid "change day" msgstr "change day" msgid "Ctrl+Up/Down" msgstr "Ctrl+Up/Down" msgid "scroll the contents in the day info panel" msgstr "scroll the contents in the day info panel" msgid "change month" msgstr "change month" msgid "Home/End" msgstr "Home/End" msgid "change year" msgstr "change year" msgid "toggle calendars for the previous and next month" msgstr "toggle calendars for the previous and next month" msgid "day notes browser" msgstr "day notes browser" msgid "assign background color to day note" msgstr "assign background colour to day note" msgid "date calculator" msgstr "date calculator" msgid "show full-year calendar" msgstr "show full-year calendar" msgid "jump to date" msgstr "jump to date" msgid "Delete" msgstr "Delete" msgid "remove day note" msgstr "remove day note" msgid "Alt+Arrows" msgstr "Alt+Arrows" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "close editor" msgid "toggle bold" msgstr "toggle bold" msgid "toggle italic" msgstr "toggle italic" msgid "toggle underline" msgstr "toggle underline" msgid "toggle strikethrough" msgstr "toggle strike-through" msgid "toggle highlight" msgstr "toggle highlight" msgid "Arrows Up/Down" msgstr "Arrows Up/Down" msgid "toggle alternative view" msgstr "toggle alternative view" msgid "year info" msgstr "year info" msgid "set current year" msgstr "set current year" msgid "close full-year calendar" msgstr "close full-year calendar" msgid "Alt+a, Insert" msgstr "Alt+a, Insert" msgid "add task" msgstr "add task" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Enter" msgid "edit task" msgstr "edit task" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "remove task" msgid "toggle hidden tasks" msgstr "toggle hidden tasks" msgid "activate search field" msgstr "activate search field" msgid "Left, Right" msgstr "Left, Right" msgid "change category filter" msgstr "change category filter" msgid "close task info panel" msgstr "close task info panel" msgid "Insert" msgstr "Insert" msgid "add contact" msgstr "add contact" msgid "Ctrl+Enter" msgstr "Ctrl+Enter" msgid "edit contact" msgstr "edit contact" msgid "remove contact" msgstr "remove contact" msgid "change search mode" msgstr "change search mode" msgid "close contact details panel" msgstr "close contact details panel" msgid "Enter" msgstr "Enter" msgid "open note" msgstr "open note" msgid "add note" msgstr "add note" msgid "remove note" msgstr "remove note" msgid "edit note name and category" msgstr "edit note name and category" msgid "close note editor" msgstr "close note editor" msgid "save note" msgstr "save note" msgid "find text" msgstr "find text" msgid "clear selection attributes" msgstr "clear selection attributes" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgid "Note editor" msgstr "Note editor" msgid "Selector" msgstr "Selector" msgid "Editor" msgstr "Editor" msgid "A handy personal organizer" msgstr "A handy personal organiser" msgid "compiled on" msgstr "compiled on" msgid "Programming" msgstr "Programming" msgid "Graphics" msgstr "Graphics" msgid "Contributors" msgstr "Contributors" msgid "Translators" msgstr "Translators" msgid "Mailing lists" msgstr "Mailing lists" msgid "Bug tracker" msgstr "Bug tracker" msgid "Feature requests" msgstr "Feature requests" msgid "Available modules" msgstr "Available modules" msgid "Compiled-in features" msgstr "Compiled-in features" msgid "iCalendar support" msgstr "iCalendar support" msgid "Encrypted notes support" msgstr "Encrypted notes support" msgid "Backup support" msgstr "Backup support" msgid "Printing support" msgstr "Printing support" msgid "Spell checker support" msgstr "Spell checker support" msgid "version" msgstr "version" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Key shortcuts" msgid "License" msgstr "Licence" #~ msgid "handy personal organizer" #~ msgstr "handy personal organiser" osmo-0.4.2/po/fi.mo0000664000175000017500000006775213204320601010776 00000000000000 ! , !,/,J, P, \,.g,,,,,,, , ,, -- - &- 1- ;-E-\-(m- -- ---&-$- ..#. ,.:.I.N.S.Z. m.z.*... ..../"/8/ J/T/ c/n/ w/ / / / /////// 00*0 B0O0`0q0w0.0!0 0011 *161F1 O1 Y1f1n1 v111 1 1 1 11 12%2+2 ;2 E2 Q2]2 a2n2 }222 2 2 222+2 3 3 3'3B3b3z3~333333333 3!3 4 4 4 (42494A4H4b4v44 444444 444455$5)5 -585I5N5W5^5c5 l5w5 555 5 5555566666 6(60656J6\6 a6k6 p6 }6 6 6 6 6 6 6 66666 67 777%7-7&67]7d7 t777 77777778 88 8 &848 :8D8 V8 c8 m8w8|88888 8 8888 888889 99 9%949 =9I9R9[9 d9 o9y9999*99"9:: : : :": (:6:I:b:7q::: :: :: : ;;(;1;8; >;I;M;:T;;; ; ;; ;; <<<6< ?< K<X<a<f<j<p<<<<#<<<< === 8= E=P=W= ]="i= ===== ===== >> $>2> E>!R>"t>>>>>> ?*?-3?a?r??? ?? ? ??%?? @ @+@ F@ P@[@!m@J@@@@@@A AA $A2AOA WA cAqA vA"AAA AA6ABB#B1(BZB `B lBxBB BBBBBB BB BBBC#)CMCSCYC_CoCsCyCCCCCCCC C CC DD1D7DHDND SD `D jD wD D D D D D D DD DDD DDE E#E,E#5EYEhE E EE EEEEE F!F">FaFqFzF*F FF F F FG$G )G 3G>GDGUGfGvG GGG G GG GG GGG G H H "H),HVHeHyHH$HHHHII0 IQIeIII I IIyI9K)IKsKKKAKKK. L [O[^[m[~[[ [[$[ [,[ \*#\N\ R\ ^\h\z\ \\\\\)\ ]*]3]<] E]R]f]u]}]] ]] ]]]<] ^ %^1^ A^K^j^|^^^%^ ^ ^^^____ 2_<_O_!l________`/`5` >`)H`r` ```` ````` aa*a:a Pa]a&}a-aaaab 9bGb9Pbb b bb bbbbc;cWcvcccccc0cS%dydddd dddd d#de e(e jfj|jjjj jj*jk3k Ok*Yk$k kkk/kl'%lMlalsl ll l lllll mm-m @mJm ]mkmom~mmmmmmmm,n2nCn^n |n0nnnn o %o3/oco.oooo oo]F{T rAK++G   \vN0m3Yjo/[ 6fpz2)IXth{~I beAt_dKE.O_s2Xl `BJ%=@q 'F(pS3wyD`n;<=&a %gc}Lx9Nk,$qfR:QS<$^bRDP0*"?>.1d1"Te,Ga|n;5u9UL : }czy7JW#(YQWl 5Z4|CM M]vi?j [rsB!gom\k@V*->O4HZ xCu!#)U~wP/76iHE8 &' 8^hV-0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowAscending sorting in day notes browserAt least one module must be visible.AuthorizationBestBirthdayBirthday dateBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create file.Cannot open file.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4CharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate periodDayDay SelectorDay categoriesDay categoryDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable underline in linksDo you really want to continue?Do you want to save it?DogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable system trayEnable tooltipsEncryptionEndEnter passwordErrorError printingEventEvent markerEvent marker colorEventsExportExport contactsExport to iCal fileFastFaxField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFowlFree-hand circleFrom (hour)Full MoonFull-year calendarGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicJump to dateKey shortcutsLargeLast NameLast Quarter MoonLast changesLast nameLeap yearLeftLeoLibraLicenseLinesLowMM-DD-YYYYMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonthsMoon phaseNameName day dateName font sizeNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No.NoneNoteNote fontNote nameNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOperationOptionsOrganizationOutput filenameOutput formatOxPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlease select at least one day when recurrency is enabled.Please select file first.PostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRecordRecurrent taskRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysReset fieldsReset timeResultRightSagittariusSave data after every modificationSave noteScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectorSet absolute path for settings and data filesSet current dateSet current timeSet timeSheepShow OsmoShow birthdaysShow calendarShow contactsShow day namesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySystem trayTabs positionTaskTask detailsTask has been modified or removed.Task info fontTasksTasks optionsTaurusThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.TigerTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelTomorrowTopTranslatorsTypeUnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVirgoVisible columnsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac signactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday till end of yeardays till end of yearedit contactedit note name and categoryedit taskentryentrieseventeventsevent exportedevents exportedexitfind texthourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to dateminuteminutesminutesmonthmonthsno entriesofopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateshow full-year calendarsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagethe last day of the yeartodaytoggle calendars for the previous and next monthtoggle hidden taskstoggle personal data visibilityversionwas bornweekweeksyearyearsyear oldyears oldProject-Id-Version: Osmo 0.2.4 Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2009-01-04 16:32+0200 Last-Translator: Toivo Miettinen Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); 0 älä käytäKätevä henkilökohtainen järjestelijäTietoja OSMOstaLisää yhteystietoLisää otsikkoLisää uusi tehtävä kaksoisnapsauttamalla tehtäväluettelossaLisää merkintäLisää tehtäväLisää tai vähennä ajankohtaan/ajankohdastaLisätietojaOsoiteIkäHerätyskomentoHerätysvaroitusHälytys varoitus!AlgoritmiKaikkiKaikki tiedostotKaikki kentätKaikki aiheetKaikki merkinnätVaihtoehtoiset aikayksikötVaihtoehtoinen näkymäToinenkin Osmo on jo käynnissä.UlkoasuVesimiesOletko varma?OinasNuoliNouseva järjestys päivämerkintäselaimessaAinakin yhden moduulin tulee olla näkyvä.KäyttövaltuudetParasSyntymäpäiväSyntymäpäivän ajankohtaSyntymäpäiväluetteloBlogLihavoituAlareunassaSelaa iCal tapahtumiaSelaa merkintöjäBytesCSV (comma-separated values) tiedostot (*.csv)KalenteriKalenteri tiedostot (*.ics)Kalenterin fonttiKalenteri merkinnätRapuEn voi luoda tiedostoa.En voi avaa tiedosto.En voi suorittaa valittua tehtävää.En voi lukea tiedosto.KaurisSama kirjainkokoKategoriatKategoriaMatkapuhelinMatkapuhelin 2Matkapuhelin 3Matkapuhelin 4MerkitTarkista edellisen käytön jälk. tapahtumatKiinalaisen vuoden eläinPallukkaPostitoimipaikkaTyhjennäTyhjennä määritteetTyhjennä tekstiSulje yhteystietopaneeliSulje kuvauspaneeliSulje muokkainSulje hakusyöteSulje merkintä-paneeliVäriYhteystietotagien väriSeuraavien 7 päivän aiheiden väriTämän päivän aiheiden väriMenneiden aiheiden väriLinkkien väriVäritSisällytetyt ominaisuudetTiivistäminenYhteystietojen yksityiskohdatYhteystiedotJatketaanko?AvustajatCountryLuotuNykyinen päiväysTämän päivän tunnusTämän päivän tunnusväriNykyinen kuukausiKellonaika nytKuluva vuosiKohdistimen väriKohdistimen paksuusDD-MM-YYYYAjankohtaAjankohta ja aika johon lisätään tai josta vähennetäänAikalaskinAjankohdan fonttiAjan muotoAjankohtaperiodiPäiväPäivä ValitsinPäiväkategoriatPäivä kategoriaPäivämerkintäPäivämerkinnän tunnusPäivämerkinnätPäivä numeroPäivätehtävätPäivääPäivää syntymäpäiväänPoista valmiit tehtävät kysymättäPoista merkintäOsastoKuvausÄlä alleviivaa linkkejäHaluatko varmasti jatkaa?Haluatko tallentaa sen?KoiraValmisValmis!LohikäärmeEräpäiväAika kahden ajankohdan välilläS-postiS-posti 2S-posti 3S-posti 4SähköpostiohjelmaVIRHE: En voi luoda configurointitiedostostojaMuokkaa yhteystietoMuokkaa kirjausMuokkaa merkintääMuokkaa tehtävääMuokkainSoikioOta käyttöönOta käyttöön apukalenteritOta käyttöön lohkokohdistinOta käyttöön ilmaisinalueOta työkaluvihjeet käyttöönSalausLopetaAnna salasanaVirheVirhe tulostettaessaTapahtumaTapahtumatunnusTapahtumatunnuksen väriTapahtumatVieVie yhteystiedotVie iCal tiedostoonNopeaFaxKentän tyyppiVietävät kentätTiedostoTiedostonimiSuodatinEtsiValmisEtunimiEnsimmäinen päiväys ja aikaEtunimiKukkoKaunokirjoituspallukkaAlkaen (tunti)Täysi kuu Koko-vuoden kalenteriKaksosetYleisetGlobaali ilmoituskäskyHyväGrafiikkaRyhmäRyhmätJänisHajauttaminenApuritPiilotaPiilota suoritetut tehtävätPiilota ryhmäsarakeKorkeaKorostettuKotiKotiosoitePostitoimipaikkaKotimaaKotipuhelinKoti puhelin 2Koti puhelin 3Koti puhelin 4Postinumero Lääni t. osavaltioHevonenTuntiTuntiaIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooHylkää herätys kun tehtävä vanhentunut yhteydettömänäNoudaImptait yhteystiedotNouda tyyppiVirheellinen salasana!InfoTiedotAnna tiedostonimiLisääLisää nykyinen päiväys ja aikaLisää erotinLisää aikajanaInternetVäliKäänteinenKursivoituHyppää päiväänNäppäinoikotietIsoSukunimiViimeinen neljännesUusimmat muutoksetSukunimiKarkausvuosiVasemmallaLeijonaVaakaLisenssiViivatMatalaMM-DD-YYYYMerkityt päivätKeskikokoinenMinuuttiMinuuttiaSekalaistaMuutettuMääritä ICAL parametritApinaKuukausiKuukauttaKuun vaiheNimiNimipäiväNimifontin kokoUusi kuu Uusi yhteystietoUusi merkintäUusi tehtäväSeuraava päiväSeuraava kuukausiSeuraava vuosiLempinimiEiEi määritettyjä syntymäpäiviä Ei ajankohtaaTämän jälkeen tietoja ei voida palauttaa.Älä vaihda kuukauttaValitussa tiedostossa ei ole merkintöjä.N:oEi mikäänMerkintäMerkinnän fonttiMerkinnän nimiMerkinnätMerkintöjen valinnatEi noudettavaa.Numerokenttää per merkintäPäiviäEtsi tapahtumia eteenpäin pv (oletus: 0)Viikonlopuksi osuvia päiviäViikkojaToimintoValinnatOrganisaatioKohdetiedoston nimiKohdeformaattiHärkäSalasanat eivät täsmää!HenkilökohtaistaPuhelimetKuvaKuvan kokoSikaKalatValitse ainakin yksi päivä kun toistuminen on käytössä.Valitse tiedosto ensin.PostinumeroLykkäämisaikaAsetuksetEdellinen ja seuraava kuukausiEdellinen päiväEdellinen kuukausiEdellinen vuosiTulosta kalenteriTulosta näkyvien tehtävien luetteloPrioriteettiOhjelmointiKasvava sirppiKysymysLopetaRottaSuhdeAnna salasana uudelleenMerkintäToistuva tehtäväMuista viimeksi valittu sivuMuista viimeksi valittu kategoriaMuistuta myöhemminMuistuttajan valinnatPoista yhteystietoPoista tehtäväToistaToista seuraavina päivinäPalauta oletusarvot kenttiinPalauta oletusaikaTulosOikeallaJousimiesTallenna data jokaisen muutoksen jälkeenTallenna merkintäSkorpioniHakuSekuntiToinen päiväys ja aikaToinen nimiSekuntiaValitse CSV tiedostoValitse ICS tiedostoValitsefontti...Valitse väriValitse päivän väriValitse kentätValitse kohdetiedostoValitse kuvaValittu yhteystieto poistetaan.Valitun päivän merkintä poistetaan.Valittu tiedosto on olemassa! Korvataanko se?Valittu kuukausiValittu kuukausi ja vuosiValittu merkintä poistetaan.Valittu tehtävä poistetaan.Valittu vuosiValitsinAseta absoluuttinen polku asetuksille ja datatiedostoilleAseta päiväysAseta aikaAseta aikaLammasNäytä OsmoNäytä syntymäpäivätNäytä kalenteriNäytä yhteystiedotNäytä päivien nimetNäytä lihavoinnilla tehtävät joilla korkea prioriteettiNäytä päiväinfo-paneelissaNäytä merkinnätNäytä valinnatNäytä pieni kalenteri-ikkunaNäytä tehtäväNäytä tehtävätNäytä viikon numeroYksinkertainen näkymä koko vuoden kalenterissaUseamman kuin yhden OSMOn samanaikainen käyttö voi aiheuttaa tietojen menetyksen.PieniKäärmeAloitaKäynnistä pienennettynäAloitettuLääni t. osavaltioTilastotAskel (minuuttia)YliviivattuYliviivaa menneet päivämerkinnätKoosteIlmaisinalueVälilehtien paikkaTehtäväTehtävän yksityiskohdatTehtävää on muutettu tai se on poistettu.Tehtäväinfon fonttiTehtävätTehtävien valinnatHärkäLuettelo tyhjennetään ja kaikki merkinnät menetetään.Merkintä on muuttunut.PaksuOhutLaskin käsittelee vain vuoden 1 jälkeen olevia ajankohtia.TiikeriAjan muotoAikaperiodiAika joka lisätään tai vähennetäänAikajanaSaakka (tunti)Tämä päiväTämän päivän etäisyysVaihda päivämerkintä-paneeliHuominenYläreunassaKääntäjätTyyppiAlleviivattuTuntematonKäytä aikaperiodiaKäytä ensimmäistä merkintää otsikkonaNäytä päiväys ja aika järjestelmän muodossaKelvollinenArvoNeitsytNäkyvät sarakkeetWWWWWW 2WWW 3WWW 4Vähenevä sirppiVähenevä kupera kuuVaroitusAaltoUusi kuuEnsimmäinen neljännesWeb selainViikon numeroViikon 1. päivä on maanantaiViikonlopun päivätViikonlopun päivien väriViikkoaTyhjät merkitSanatTyöpaikan Työpaikan osoiteTyöpaikan postitoimipaikkaTyöpaikan maaTyöpuhelinTyöpuhelin 2Työpuhelin 3Työpuhelin 4Työpaikan postinumeroTyöpaikan osavaltio t. lääniYYYY-DD-MMYYYY-MM-DDVuosiVuosi-infoVuottaKylläHoroskooppitunnusota käyttöön hakukenttälisäälisää yhteystietolisää merkintälisää tehtävälisää taustaväri päivämerkintäänaakkoskoosta riippuvavaihda kategoriasuodatinvaihda päivävaihda kuukausivaihda hakutapaavaihda vuosityhjennä valinta määritteetsulje yhteystiedon yksityiskohtien paneelisulje merkintäeditorisulje tehtäväinfo-paneeliKoostettuyhteystieto lisättyyhteystietoa lisättyyhteystieto vietyyhteystietoa vietyaikalaskinpäiväpäivääpäivämerkintöjen selainpäivä vuoden loppuunpäivää vuoden loppuunmuokkaa yhteystietomuokkaa merkinnän nimeä ja kategoriaamuokkaa tehtävääkirjauskirjaustatapahtumatapahtumaatapahtuma vietytapahtumaa vietypoistuetsi tekstituntituntiatunnitiCalendar-tapahtumatiCalendar vietyiCalendar tiedostotiCalendar tukihypähdä päiväänminuuttiminuuttiaminuuttiakuukausikuukauttaei kirjauksia / avaa merkintätailykättypoista yhteystietopoista päivämerkintäpoista merkintäpoista tehtäväpyöristetty pienempääntallenna merkintävieritä sisältöä päiväinfo -paneelissasekuntisekuntiavalitse nykyinen päiväysnäytä koko vuoden kalenterivähennävaihda sivua valinnat- ja tietoja välilehdissäsiirry seuraavaan välilehteensiirry edelliseen välilehtisiirry valitulle sivullevuoden viimeinen päivätänäänvaihda kalentereissa edellinen ja seuraava kuukausivaihda piilotetut tehtävätvaihda henkilököhtaisten tietojen näkyminenversiosyntynytviikkoviikkoavuosivuottavuotta vuottaosmo-0.4.2/po/sr.mo0000664000175000017500000013445213204320602011015 00000000000000l+9 99: : ,:.7:f:o:x::::: : :: :: : : ; ;8; W; b;p; ;;;(; ;; ;< <<<&%<$L< q<<< <<<<<< << ==.=3=8=?= R= _=k=*q=== ===== >>"2>U> g>q> >> > > > >> > ??/?C?J?O?U? f?q?? ?????.?!@ 9@Z@i@p@w@ @@@ @ @@@@ @ @ @ A A A(A;A TA bA oA |AA AA%AA A AA B B(B ,B9B HB UB_BhBqB B B BBBB+B B B C C&CACJCjCCCCCCCCCCCCC D!D 0D >D KD VD `DjDqDyDDDDD!DEE (E2E JEUEYE_EnEtEEE EEEEEE EEFF F F&F7FI[IlI|IIIII I I II II I I J JJ J+J/J5J=JBJHJ LJWJ `J nJ|J J JJJJ JJJJJ J K KK!K *K8KGKPK YKeKnKwK K KKK!KKK*K L"L!>L`L{LLL L L L LL LLLL7M:MQMoaMMM MM NN*N(JNsN NNNNN NNNO OO O"O&O-O3OMO:cOOOO O OO O P P&PFPUPnPPP P PPPPPP PPPPQ#4QXQhQyQ QQQQ Q Q QQQ Q R"R 8R BRMRUR\RcR xRRRRR RRR RR S!S"@ScSSSSS S ST TT+T>TGT MTWT fT tT TTTT%TU U (U 5UBU ]U gUrU!UJUUU U VV'V=VCVSV[V aVlV {VVVV V VVV V"V WW W )W7W3>W3rW0W6WXQ$XvX|X1XXXX X XX Y YY$Y3YIY^YgYY YY+Y YYYY#Y"Z(Z.Z7Z=Z#MZqZZZZZZZZZZZ Z [ [ "[/[B[H[Y[_[ d[ q[ {[ [ [ [ [ [ [ [ [[ [[[ \\\\"\)\2\6\<\C\K\Q\h\\\ \\\#\\\ ] ]] .]:]U] q]~]]] ]]"] ^^$^6^&G^*n^ ^^ ^^ ^ ^_%_ *_4_D_ V_a_g_x___ _ ___ _ __ _ ` ` ``'` 7` C` O` \`)f```````aa$$aIa\asaaaaaaa a0a$b;bOb `bnbbbbb bb(bc +c 6c@cSceczcLe!jeeeede;fWf5qff ff ffg$gCgVg]gsgggcg h h,h >h<Lh%hCh hi i2i;iLi]iYliDi j#$jHjbjCj1jjkk%k/=kmkkkkk(k#kl*lQ9ll'll#lm= m(Im(rm0mHm$n :nEncnxnnnnnC oGOoo4ooop pp8p(Pp&yppp*pp+qD-q3rq2qqq q#r+r@r^rorr r rr r r rr rr"s9jw/w2w xx $x 1x ?xKx/ax xxxxxXx!Aycyyyy y yy0y0-z2^z0zWz.{.I{x{7{{{ {{ | |0|4|C|-a|2|| |||}8}?}(H}q}}}} }}}}!} ~~.~ =~H~ b~p~~&~~~ ~4~ "- < GRY(j$ 4$ 0;NWo ΀ "/8KRYb iv }Y?(Bkt$ǂЂ 8Njz -  !.0=!n˄Ԅ   " -8AZ v< څ  $ B OZ n{'Ȇ,F^t2,?2 rHT܈A1syщ0%Lraԋ* (5*N3yd"52Q( ǍՍ. "->'G oz (*d/Gw/ӏ;:[9!$7Jc  &Ց .=JE"Β!/ K-X(Ǔ ,*@W֔#+?Nj'#&D=\NG1+MAy= $(5(^4Ԙݘ!>3r"A.b&3ݚ7Om,F  2Ĝ5-'< d q~; !< ^kz9%О =PDOIb/) m x_2  !,H:h â ͢!آ9.4 c4n]ƣ$7(J<sL 0=FYĥʥХ*֥*, ?&Jq. (D MXu! ֧ 9#U y  ¨Ǩ   , 9 G Uc$s&, -MG9Ϫ*J.f>ԫ5,&"SvWa߬!Ac2|3ƭoj<î9߮08ai˯گ%7PYtڰ$ $,Qej*ر!=R?r**ݲ* 36T5* @-:1h-ȴ'"1 @6K!V430!d9!!$3&CEj;3&oA   \( 7InqHAcOPGT15qt8N[/9o3P K^r'n)r?wHw3F (,d 5Yg{S2fh1: u/Wk9e$cR<v@jCp<`p |Eh?XD~X6! -h}9Ov MWK03r@'{)QpjgD}"&k>PJD 2td+Q a;i_ GV[]X$*bONW&BsF$y1o=T6]U mc)7%~o:!,#s8l.kztxIZ4]bJYxK;"!"U+mCF|R*q~w f`^aizy#%RSmZUTbjfGg?>J7L6C8B2\ v0E(Y[VI{|xeL@a#*-i=A.ABuyNMQ's4\Hu&_eZLS_>:;<0M-n%+Vz E54}/ll.d,=`^0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackground colorBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCounterCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay colorDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable background colorsDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGIT versionGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHeader background colorHeader foreground colorHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrevious/Next month's day colorPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow hidden filesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.The user config path option is deprecated. Use XDG environment variables instead.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowToo many links selected!TopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac sign_Add_Cancel_Clear_Close_Jump to_OK_Open_Paste_Remove_Saveabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to datelinks openedminuteminutesminutesmonthmonthsno entriesofopen URLsopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow document statisticsshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2017-09-21 21:47+0000 Last-Translator: markosm Language-Team: Serbian (http://www.transifex.com/pasp/osmo/language/sr/) Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); 0 за онемогућењеЛични организаторО програмуДодај контактДодај заглављеДодај нови задатак кад дупло кликнеш на листу задатакаДодај напоменуДодај задатакДодај за или одузми од датумаДодатни инфоАдресаНапредноГодинеКоманда алармаАларм упозорењаАларм упозорења!АлгоритамСвиСви фајловиСва пољаСве ставкеСве напоменеСви ваши подаци ће бити замењени са резервном копијом.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteАлтернативна временска јединицаАлтернативни погледЈош једна копија OSMO је већ покренута.ИзгледВодолијаДа ли сте сигурни?ОванСтрелицаСтрелицеArrows Up/DownУзлазно сортирање у прегледачу дневних напоменаНајмање један модул мора бити видљив.АуторизацијаДоступни прикључциБоја позадинеРезервни подациРезервна копија је успешно сачувана!Подршка за резервне копијеОсновноНајбољиРођенданДатум рођењаБоја маркера за рођенданеРођенданиЛиста рођенданаБлогПодебљаноДноПрегледај iCal догађајеПрегледај напоменеПраћење баговаБајтовиCSV (вредности одвојене зарезима) фајлови (*.csv)КалендарКалендар фајлови (*.ics)Фонт календараНапомене календараРакНе могу креирати резервну копију!Не могу креирати фајл.Не могу отворити фајл.Не могу отворити напомену.Не може се извршити одабрана операција.Не могу читати фајл.ЈарацОсетљив предметКатегоријеКатегоријаМобилни телефонМобилни телефон 2Мобилни телефон 3Мобилни телефон 4Промени због датума на следећи датумПромени због датума на претходни датумКарактериПроверите последње догађајеКинеска годинаКругГрадОчистиОчисти атрибутеОчисти текстЗатвори контакт панелЗатвори описни панелЗатвори едиторClose find entryЗатнови панел напоменаБојаБоја за ознаке контактаБоја ставки које су за следећих 7 данаБоја ставки која су за данасБоја ставки које су доспелеБоја линковаБојеКолонаУобличене функцијеКомпресијаДетаљи контактаКонтактиНастави?СараднициБројачЗемљаКреираноCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+РазмакCtrl+Up/DownТренутни датумТекући маркер данаБоја тренутног дневног маркераТекући месецТренутно времеТекућа годинаБоја курсораДебљина курсораDD-MM-YYYYДатумДатум и време за додавање или одузимање одКалкулатор датумаФонт датумаФормат датумаФормат синтаксе датумаФормат заглавља датумаПериод датумаДанСелектор данаКатегорије данаКатегорија данаБоја данаИме данаДневна напоменаМаркер дневне напоменеДневне напоменеБрој данаДневни задациДаниДана до рођенданаУклониУклони комплетиране задатке без потврдеУклони напоменуОдељењеОписИскључи позадинске бојеОнемогући подвучено у линковимаОнемогућеноДа ли стварно желите да наставите?Да ли желите да наставите?Да ли желите да то сачувате?ДокументПасГотовоГотово!AждајаЗбог датумаТрајање измењу два датумаE-поштаE-пошта 2E-пошта 3E-пошта 4Клијент е-поштеГРЕШКА: Не могу креирати конфигурационе фајловеИзмени категоријуИзмени контактИзмени ставкуИзмени напоменуИзмени задатакЕдиторЕлипсаОмогућиОмогући помоћне календареОмогући блокирање курсораОмогући дијалог обавештењаОмогући звучно обавештењеОмогући проверу правописа у дневним напоменамаОмогући системску касетуОмогући искачуће прозореШифрованПодршка за шифроване напоменеШифровањеКрајЕнтерУнеси лозинкуГрешкаГрешка у штампањуEscДогађајМаркер догађајаБоја маркера за догађајеМаксимална дужина догађајаДогађајиИзвезиИзвези контактеИзвези задаткеИзвези у iCal фајлБрзФаксЗахтеви за функцијамаТип пољаПоља за извозФајлИме фајлаФилтерПронађиЗавршеноИмеПрви датум и времеИмеВеличина фонтаФонтовиПетаоСлободан кругОд (сат)Пун месецПун датумКалендар целе годинеГит верзијаБлизанциОпштеГлобална команда обавештењаДобарГрафикаГрупаГрупеЗецХеширањеБоја позадине насловаПредња боја насловаПомагачиСакријСакриј комплетиране задаткеСакриј колону групеВисокИстакнутоКућаКућна адресаМесто становањаЗемљаКућни телефонКућни телефон 2Кућни телефон 4Кућни телефон 4Поштански бројДржаваHome/EndВодоравноКоњСатСатиIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooИгнориши аларм када је задатак истекао ван мрежеИгнориши дневне напомене догађајаИгнориши дане викендаУвозУвези контактеУвези типНеисправна лозинка!ИнфоИнформацијаИме улазног фајлаИнсертУбаците тренутни датум и времеУбаците размакInsert timelineИнтернетИнтервалОбрниИскошеноВеличина фонта за ставкуПребаци на датумПречицеПејзажВеликаПрезимеПоследња четвртина месецаПоследње напоменеПрезимеРаспоредСкок на годинуЛевоЛево, ДесноЛавВагаЛиценцаЛинијаЛинијеНизакMM-DD-YYYYMM/DD/YYЛиста е-поштеПровајдер мапаОзнакаОзначени даниПодудари контакте са датим низомСредњаМинутМинутиОсталоИзмењеноИзмени ICAL параметреМајмунМесецИме месецаМесециМесечеве фазеИмеИме данаДатум именданаВеличина фонта за имеИме данаНови месецНови контактНова напоменаНови задатакНаредни данСледећи месецСледећа годинаНадимакНеВезе се не налазе у избору...Без одређеног рођенданаБез датумаНије могућ даљи опоравак података.Без измене месецаНије пронађен снимак у одабраном фајлу.Без пронађених задатака са одређеним датумом.Без исправно дефинисаног календараНе.НиједанНапоменаЕдитор напоменаФонт напоменаИме напоменеТип напоменеНапоменеОпције напоменаНишта за извоз.Број поља за снимањеБрој данаБрој дана за проверу према догађају (подразумевано: 0)Број викенд данаБрој недељаOSMO је дизајниран да буде практичан за кориснике, тако да има много битних пречица. Овде је пун списак:Отвори везеОтвори резервну копијуОперацијаОпцијеОрганизацијаOsmo резервна копија (*.bck)Osmo ће бити поново покренут...Osmo мора бити поново покренут да промене ступе на снагу.Име излазног фајлаИзлазни форматПрепиши локална подешавањаВоИспуњавањеОрјентација странице:PageUp/PageDnЗаштита лозинкеЛозинке се не подударају!ЛичноТелефониФотоВеличина фотографијеСвињаРибеЧистиМолим унесите лозинкуМолим одаберите адресуИзаберите најмање један дан када је омогућен повратак.Молим прво одаберите фајлПортретПоштански бројОдложено времеПодешавањаПретходни и следећи месецПретходни данПретходни месецПретходна годинаБоја за претходни/следећи месецШтампај календарШтампај видљиву листу задатакаСвојства штампањаПодршка за штампањеПриоритетПрограмирањеЧетвртина месецаПитањеНапустиRatОдносПоново унеси лозинкуСамо за читањеСнимиПовратни задатакЗапамти позицију курсораЗапамти последњу одабрану странуЗапамти последњу одабрану категоријуПодсети ме каснијеОпције потсетникаОбриши контактОбриши задатакПоновиПонови у наредним данимаПонављај звучни алармРесетуј пољаРесетуј времеОпорави податкеРезултатДесноСтрелацСачувај резервну копијуСачувај податке после сваке изменеСачувај напоменуСачувај задаткеШкорпијаПретражиСекундаДруги датум и времеСредње имеСекундеОдабери CSV фајлОдабери ICS фајлОдабери фонт...Одабери бојуОдабери датум и времеОдабери боју за данОдабери пољаОдабери излазни фајлОдабери фотоОдабрани контакт ће бити обрисан.Одабрана дневна напомена ће бити обрисана.Одабрани фајл постоји! Да га пребришем?Одабрани месецОдабрани месец и годинаОдабрана напомена ће бити уклоњена.Одабрани задатак ће бити обрисан.Одабрана годинаОдабирСелекторПодеси тренутни датумПодеси тренутно времеПодеси подразумевани форматПодеси времеОвцаПрикажи OsmoПрикажи рођенданеПрикажи календарПрикажи локацију контакта на мапиПрикажи контактеПрикажи имена данаПрикажи дугме напусти у траци алатаПрикажи скривене фајловеПрикажу у подебљаним задацима са високим приоритетомПрикажи дневном инфо панелуПрикажи напоменеПрикажи опцијеПрикажи секундеПрикажи мали прозор календараПрикажи задатакПрикажи задаткеПрикажи бројеве седмицаЈедноставан преглед у пуном календаруСимултано коришћење две или више копије OSMO могу изазвати губитак података.МалаЗмијаЗвучни плејерРазмакПровера језичког правописаПодршка за проверу правописаПочетакПокрени минимизованоПочетоДржаваСтатистикеКорак (минути)ПрецртаноПрецртај прошле дневне напоменеСажетакСинтаксаСистемска касетаПозиција језичакаОзнакеЗадатакДетаљи задаткаЗадатак је измењен или уклоњен.Фонт за инфо задаткаЗадациЛиста задатакаОпције задатакаБикОбразац %s ће бити замењен са адресом е-поштеОбразац %s ће бити замењен са звучним фајломОбразац %s ће бити замењен са веб адресомЛиста ће бити очишћена и све ставке ће бити изгубљене.Напомена је промењена.Опција путање корисничких подешавања је застарела. Уместо тога користите варијабле XDG окружења.ДебеоТанакОвај калкулатор подржава само датуме после године 1.Ово није Osmo резервна копијаТигарВремеФормат временаВременски периодВреме за додавање или одузимањеВременска линијаTo (hour)ДанасДанашње растојањеПрикажи панел дневних напоменаУкључи проверу правописаСутраПревише линкова је одабрано!ВрхПреводиоциТипВеза ће бити отворена у подразумеваном прегледачу.ПодвученоНепознатоКористи период датумаКористи први снимак као заглављеКористи системски формат за датум и времеИсправноВредностУсправноДевицаВидљиве колонеВидљиве колоне у прегледачу рођенданаВидљиви догађајиWWWWWW 2WWW 3WWW 4Трећа четвртина месецаТрећа четвртина месецаУпозорењеТаласТри четвртине месецаПун месецВеб прегледачБрој недељаСемица почиње понедељкомДани викендаКолор викенд данаНедељеБели карактериРечиПосаоАдреса на послуГрад где је посаоЗемља где је посаоТелефон на послуТелефон на послу 2Телефон на послу 3Телефон на послу 4Поштански бројДржава где је посаоYYYY-DD-MMYYYY-MM-DDГодинаИнфо о годиниГодинаДаЗнаци зодијака_Додај_Откажи_Очисти_Затвори_Скочи на_У реду_Отвори_Налепи_Обриши_Сачувајскраћено име месецаСкраћено име викендаактивирај поље претрагедодајдодај контактдодај напоменудодај задатакдоделите боју позадине за дневне напоменеОсетљиво на велика и мала словапромени филтерпромени датумпромени месецпромени модел претрагепромени годинуочисти одабране атрибутезатвори панел за детаље контакатазатвори едиторзатвори календар целе годинезатвори едитор напоменазатвори инфо панелуобличендодати контактдодати контактидодати контактиизвезен контактизвезени контактиизвезени контактикалкулатор датумаданданаданипрегледач дневних напоменадан у месецудан у месецу без водеће нуледан до краја годинедана до краја годинедана до краја годинеизмени контактизмени име напомене и категоријуизмени задатакподршка шифровања је изсљученауносуносауносидогађајдогађајадогађајиизвезен догађајизвезени догађајиизвезени догађајинапустипронађи текстпуно име месецаПуно име викенд данасатсатисатисатиiCalendar догађајиiCalendar извозiCalendar фајловиiCalendar подршкапребаци на датумотворени линковиминутминутаминутиминутимесецмесецимесецибез ставкиодОтвори линковеотвори напоменуилиодложенообриши контактуклони дневну напоменуобриши напоменуобриши задатакзаокружујесачувај напоменуспусти садржај у дневни инфо панелсекундсекундисекундеодабери тренутни датумподеси тренутну годинуприкажи о прозоруприкажи статистику документаприкажи календар целе годинеприкажи опције прозораодузмипребаци страну у опције и О језичакпређи на следећи језичакпређи на претходни језичакпређи на одабрану странуизвезени задаципоследњи дан у годинивреме и игнорисановременаданасОдабери алтернативни прегледодабери подебљанопостави календаре за претходни и следећи месецпребаци у режим пуног екранапребаци на скривене задаткеодабери истакнутоодабери искошеноПрикажи личне податке видљивимодабери прецртаноодабери подвученуверзијаје рођеннедељанедељанедељедан викендадана викендадани викендаигнорисан дан викендаигнорисани дани викендаигнорисани дани викендарадни данрадних данарадни данигодинагодинагодинеГодишњи инфогодину старгодина старгодина старгодина са векомгодина без векаosmo-0.4.2/po/lt.mo0000664000175000017500000011660113204320601011003 00000000000000l+9 99: : ,:.7:f:o:x::::: : :: :: : : ; ;8; W; b;p; ;;;(; ;; ;< <<<&%<$L< q<<< <<<<<< << ==.=3=8=?= R= _=k=*q=== ===== >>"2>U> g>q> >> > > > >> > ??/?C?J?O?U? f?q?? ?????.?!@ 9@Z@i@p@w@ @@@ @ @@@@ @ @ @ A A A(A;A TA bA oA |AA AA%AA A AA B B(B ,B9B HB UB_BhBqB B B BBBB+B B B C C&CACJCjCCCCCCCCCCCCC D!D 0D >D KD VD `DjDqDyDDDDD!DEE (E2E JEUEYE_EnEtEEE EEEEEE EEFF F F&F7FI[IlI|IIIII I I II II I I J JJ J+J/J5J=JBJHJ LJWJ `J nJ|J J JJJJ JJJJJ J K KK!K *K8KGKPK YKeKnKwK K KKK!KKK*K L"L!>L`L{LLL L L L LL LLLL7M:MQMoaMMM MM NN*N(JNsN NNNNN NNNO OO O"O&O-O3OMO:cOOOO O OO O P P&PFPUPnPPP P PPPPPP PPPPQ#4QXQhQyQ QQQQ Q Q QQQ Q R"R 8R BRMRUR\RcR xRRRRR RRR RR S!S"@ScSSSSS S ST TT+T>TGT MTWT fT tT TTTT%TU U (U 5UBU ]U gUrU!UJUUU U VV'V=VCVSV[V aVlV {VVVV V VVV V"V WW W )W7W3>W3rW0W6WXQ$XvX|X1XXXX X XX Y YY$Y3YIY^YgYY YY+Y YYYY#Y"Z(Z.Z7Z=Z#MZqZZZZZZZZZZZ Z [ [ "[/[B[H[Y[_[ d[ q[ {[ [ [ [ [ [ [ [ [[ [[[ \\\\"\)\2\6\<\C\K\Q\h\\\ \\\#\\\ ] ]] .]:]U] q]~]]] ]]"] ^^$^6^&G^*n^ ^^ ^^ ^ ^_%_ *_4_D_ V_a_g_x___ _ ___ _ __ _ ` ` ``'` 7` C` O` \`)f```````aa$$aIa\asaaaaaaa a0a$b;bOb `bnbbbbb bb(bc +c 6c@cSceczcDe&XeeeeOee f f=fSf [fifqfff ff f fffDf =g KgYg kgyggg ggggg h h9&h'`hhh hh2hi &i 2i =i JiWi tii i i iiiii/i *j6jNjdjzj%jjjj$jk 8k*Ck nk zkkkkk*k+l 2l4x"xx yy/yAy [y gysyy#yyy y y yzz&z8z LzVz^z(gzzz zzzzz z z{{{ {){2{M{ d{o{${ {{{ { {{ {|| |'|6| =| I|U| i|v|| || | | | ||| } *}-6}d}"v}(}'}}}}}~#~8~G~P~c~x~~A~~}"  '+@@ɀЀ׀  * 4 >HYah$oL)'0@ R\ u #ł%܂ . 8(F oy ƒۃ(,L]q%ք%" 3 >IQ,o ŅЅم #8N`|$Ԇ)##GZ#v" ·ۇ9J O[o#,ш-$Ejz#Љ*N'v}Ҋۊ  )#5 Y cm~ "+Ƌ 3I,P1}08h-5)ڍ !0 P] lw'Ҏڎ  * < GR'i) ŏ Ϗڏ," 2 > L Zh% #-#,K^ x ͑*G ] hsy ȒҒے ! '+Snw'ד -JY1w ߔ* &94Bnŕٕ"L&s+#˖ >$c ky!їڗ+=N is ʘߘ#;,O|ҙ #=1Dv!К #B.Věۛ+0EMS7qW%'9K]o  \( 7InqHAcOPGT15qt8N[/9o3P K^r'n)r?wHw3F (,d 5Yg{S2fh1: u/Wk9e$cR<v@jCp<`p |Eh?XD~X6! -h}9Ov MWK03r@'{)QpjgD}"&k>PJD 2td+Q a;i_ GV[]X$*bONW&BsF$y1o=T6]U mc)7%~o:!,#s8l.kztxIZ4]bJYxK;"!"U+mCF|R*q~w f`^aizy#%RSmZUTbjfGg?>J7L6C8B2\ v0E(Y[VI{|xeL@a#*-i=A.ABuyNMQ's4\Hu&_eZLS_>:;<0M-n%+Vz E54}/ll.d,=`^0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackground colorBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCounterCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay colorDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable background colorsDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGIT versionGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHeader background colorHeader foreground colorHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMaps providerMarkMarked daysMatch contacts with given stringMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrevious/Next month's day colorPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow hidden filesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.The user config path option is deprecated. Use XDG environment variables instead.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowToo many links selected!TopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac sign_Add_Cancel_Clear_Close_Jump to_OK_Open_Paste_Remove_Saveabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to datelinks openedminuteminutesminutesmonthmonthsno entriesofopen URLsopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow document statisticsshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2017-09-19 09:44+0000 Last-Translator: pasp Language-Team: Lithuanian (http://www.transifex.com/pasp/osmo/language/lt/) Language: lt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); 0, norint išjungtiPatogi asmeninių duomenų tvarkytuvėApiePridėti adresatąPridėti antraštęPridėti naują užduotį, kai ant užduočių sąrašo du kartus spustelėjamaPridėti pastabąPridėti užduotįPridėti ar atimti iš datosPapildoma informacijaAdresasIšplėstinisAmžiusSignalo komandaSignalinis įspėjimasSignalinis įspėjimas!AlgoritmasViskasVisi failaiVisi laukaiVisi elementaiVisos pastabosVisi jūsų duomenys bus pakeisti atsarginės kopijos failo turiniu.Alt+RodyklėsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternatyvūs laiko vienetaiAlternatyvus rodinysViena OSMO kopija jau vykdoma.IšvaizdaVandenisAr Jūs įsitikinę?AvinasRodyklėRodyklėsRodyklės Aukštyn/ŽemynDienos pastabų naršyklėje rikiuoti didėjančia tvarkaTuri būti matomas bent vienas modulis.Prieigos teisėPrieinami moduliaiFono spalvaAtsarginės kopijos duomenysAtsarginės kopijos failas sėkmingai išsaugotas!Atsarginės kopijos palaikymasPagrindinisGeriausiasGimimo dienaGimimo dienaGimtadienio žymeklio spalvaGimtadieniaiGimtadienių sąrašasTinklaraštisPusjuodisApačiojeNaršyti iCal įvykiusNaršyti pastabasKlaidų sekimasBaitųCSV (kableliu atskirtos vertės) failas (*.csv)KalendoriusCalendar failai (*.ics)Kalendoriaus šriftasKalendoriaus pastabosVėžysNepavyko sukurti atsarginės kopijos!Negalima sukurti failo.Neįmanoma atverti failo.Nepavyko atverti pastabos.Nepavyko atlikti pasirinkto veiksmo.Neįmanoma perskaityti failo.OžiaragisSkiriant didžiąsias ir mažąsias raidesKategorijosKategorijaMobilusis telefonasMobilusis telefonas 2Mobilusis telefonas 3Mobilusis telefonas 4Pakeisti pabaigos datą į vėlesnę datąPakeisti pabaigos datą į ankstesnę datąSimboliaiTikrinti įvykius nuo paskutinio programos paleidimoKinų metų gyvūnasApskritimasMiestasIšvalytiIšvalyti požymiusIšvalyti tekstąUžverti adresatų skydelįUžverti aprašo skydelįUžverti rašyklęUžverti įrašo paieškąUžverti pastabų skydelįSpalvaAdresato gairių spalvaElementų pasibaigsiančių už savaitės spalvaŠiandien pasibaigiančių elementų spalvaPasibaigusių elementų spalvaNuorodų spalvaSpalvosStulpelisĮkompiliuotos funkcijosGlaudinimasAdresato išsami informacijaAdresataiTęsti?TalkininkaiSkaitiklisValstybėSukurtaCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownDabartinė dataEsamos dienos žymeklisEsamos dienos žymeklio spalvaEsamas mėnuoLaikasŠie metaiŽymeklio spalvaŽymeklio storisDD-MM-YYYYDataData ir laikas pridėjimui ir atimčiaiDatos skaičiuoklisDatos šriftasDatos formatasDatos formato sintaksėDatos antraštės formatasDatos periodasDienaDienos SelektoriusDienos kategorijosDienos kategorijaDienos spalvaDienos pavadinimasDienos pastabaDienos pastabų žymeklisDienos pastabosDienaDienos užduotysDienosDienų iki gimtadienioDeletePašalinti įvykdytas užduotis be patvirtinimoPašalinti pastabąSkyriusAprašasIšjungti fono spalvasIšjungti nuorodų pabraukimąIšjungtaAr tikrai norite tęsti?Ar norite tęsti?Norite ją išsaugoti?DokumentasŠuoAtliktaAtlikta!DrakonasPabaigos dataLaikas tarp dviejų datųEl. paštasEl. paštas 2El. paštas 3El. paštas 4El. pašto programaKLAIDA: Nepavyko sukurti konfigūracijos failųRedaguoti kategorijąTaisyti adresato įrašąTaisyti įrašąTaisyti pastabąKeisti užduotįRašyklėElipsėĮjungtiĮjungti pagalbinius kalendoriusĮjungti stačiakampį žymeklįĮjungti pranešimų dialogąĮjungti garso pranešimąĮjungti rašybos tikrinimą dienos pastaboseĮjungti sistemos dėkląĮjungti paaiškinimusŠifruotasUžšifruotų pastabų palaikymasUžšifravimasPabaigaEnterĮveskite slaptažodįKlaidaSpausdinimo klaidaEscĮvykisĮvykių žymeklisĮvykių žymeklio spalvaMaksimalus įvykio ilgisĮvykiaiEksportuotiEksportuoti adresatusEksportuoti užduotisEksportuoti į iCal failąGreitasFaksasFunkcijų prašymaiLauko tipasLaukai eksportavimuiFailasFailo vardasFiltrasRastiUžbaigtasVardasPirma data ir laikasVardasŠrifto dydisŠriftaiGaidysRanka pieštas apskritimasNuo (valandos)Pilnatis (Pilnas mėnulis)Pilna dataVisų metų kalendoriusGIT versijaDvyniaiBendriGlobalaus pranešimo komandaGerasGrafikaGrupėGrupėsZuikisMaišaAntraštės fono spalvaAntraštės priekinio plano spalvaPagalbininkaiSlėptiPaslėpti įvykdytas užduotisSlėpti grupės stulpelįAukštasParyškintiNamųNamų adresasNamų miestasNamų valstybėNamų telefonasNamų telefonas 2Namų telefonas 3Namų telefonas 4Namų pašto indeksasNamų valstijaHome/EndHorizontalusArklysValandaValandosPokalbių tarnyba AOLPokalbių tarnyba Gadu-GaduPokalbių tarnyba ICQPokalbių tarnyba JabberPokalbių tarnyba MSNPokalbių tarnyba SkypePokalbių tarnyba TlenPokalbių tarnyba YahooIgnoruoti signalą, kai užduotis pasibaigė, esant atsijungusIgnoruoti dienos pastabos įvykiusIgnoruoti savaitgalio dienasImportuotiImportuoti adresatusImportavimo tipasNeteisingas slaptažodis!InformacijaInformacijaĮvesties failo pavadinimasĮterptiĮterpti dabartinę datą ir laikąĮterpti skirtukąĮterpti laiko skalęInternetasIntervalasInvertuotiKursyvasElemento šrifto dydisPereiti į dienąSpartieji klavišaiGulsčiaiDidelisPavardėDelčia (Paskutinio ketvirčio mėnulis)Paskutiniai taisiniaiPavardėLygiavimasKeliamieji metaiKairėjeKairėn, DešinėnLiūtasSvarstyklėsLicencijaEilutėEilutėsŽemasMM-DD-YYYYmm/dd/MMElektroninio pašto grupėŽemėlapių tiekėjasPažymėtiPažymėtos dienosSutapdinti kontaktus su duota eiluteVidutinisMinutėMinutėsĮvairūsPertvarkytaModifikuoti ICAL parametrusBeždžionėMėnuoMėnesio pavadinimasMėnesiaiMėnulio fazėVardasVardadienisVardo dienaVardo šrifto dydisVardadieniaiJaunatis (Naujas mėnulis)Naujas adresatasNauja pastabaNauja užduotisKita dienaKitas mėnuoKiti metaiSlapyvardisNeŽymėjime nerasta URL...Nerasta nei vieno gimtadienioNėra datosTolesnis duomenų atkūrimas bus neįmanomas.Nekeisti mėnesioParinktame faile įrašų nerasta.Užduočių su apibrėžta data nerasta.Nėra apibrėžta teisingų kalendoriųNr.NiekoPastabaPastabos redaktoriusPastabos šriftasPastabos pavadinimasPastabos tipasPastabosPastabų parinktysNėra ko importuoti.Laukų skaičius įrašeDienų skaičiusIšankstinio įvykių tikrinimo dienų skaičius (numatytasis: 0)Savaitgalio dienų skaičiusSavaičių skaičiusRuošiant OSMO, buvo galvojama apie vartotojo patogumą, todėl čia yra daug sparčiųjų klavišų. Štai visas sąrašas: Atverti URL nuorodasAtverti atsarginės kopijos failąVeiksmasParinktysOrganizacijaOsmo atsarginės kopijos failai (*.bck)Osmo dabar turi būti paleista iš naujo...Kad įsigaliotų pakeitimai, Osmo turi būti paleista iš naujo.Išvedimo failo vardasIšvedimo formatasNustelbti lokalės nustatymusJautisTarpaiPuslapio padėtis:PageUp/PageDnApsauga slaptažodžiuSlaptažodžiai nesutampa!AsmeninisTelefonaiNuotraukaNuotraukos dydisKiaulėŽuvysGrynasPrašome įvesti naują slaptažodįPrašome pasirinkti adresąPrašome pasirinkti bent vieną dieną, kuomet pasikartojimas yra įjungtas.Prašome iš pradžių pasirinkti failą.StačiaiPašto indeksasAtidėjimo laikasNuostatosPraeitas ir kitas mėnuoPraeita dienaPraeitas mėnuoPraeiti metaiPraeito/kito mėnesio dienų spalvaSpausdinti kalendoriųSpausdinti matomų pastabų sąrašąSpausdinimo savybėsSpausdinimo palaikymasSvarbumasProgramavimasPriešpilnis (Pirmo ketvirčio mėnulis)KlausimasBaigtiŽiurkėSantykisPakartokite slaptažodįTik skaitymuiĮrašasPasikartojanti užduotisĮsiminti žymeklio vietąPrisiminti paskutinį parinktą puslapįĮsiminti paskutinę pasirinktą kategorijąPriminti vėliauPriminimo parinktysPašalinti adresatąPašalinti užduotįKartotiKartoti šiomis dienomisKartoti garsinį signaląAtstatyti laukus į pradinę būsenąAtstatyti laiką į pradinę būsenąAtkurti duomenisRezultatasDešinėjeŠaulysIšsaugoti atsarginę kopijąIšsaugoti duomenis po kiekvieno pertvarkymoIšsaugoti pastabąIšsaugoti užduotisSkorpionasPaieškaSekundėAntra data ir laikasAntras vardasSekundėsParinkti CSV failąParinkite ICS failąParinkite šriftą...Parinkite spalvąPasirinkite datą ir laikąParinkti dienos spalvąParinkti laukusParinkite išvedimo failąParinkite nuotraukąParinktas adresatas bus pašalintas.Pažymėta dienos pastaba bus pašalinta.Parinktas failas jau yra! Pakeisti?Pasirinktas mėnuoPasirinktas mėnuo ir metaiParinktas įrašas bus pašalintas.Parinkta užduotis bus pašalinta.Pasirinkti metaiPasirinkimasAtrankosParinkti dabartinę datąParinkti dabartinį laikąNustatyti numatytąjį formatąNustatyti laikąAvisRodyti OsmoRodyti gimtadieniusRodyti kalendoriųRodyti kontakto vietą žemėlapyjeRodyti adresatusRodyti dienų pavadinimusRodyti išėjimo mygtuką įrankių juostojeRodyti paslėptus failusSvarbias užduotis rodyti pusjuodžiu šriftuRodyti dienos informacijos skydelyjeRodyti pastabasRodyti parinktisRodyti sekundesRodyti mažą kalendoriaus langelįRodyti užduotįRodyti užduotisRodyti savaičių numeriusPaprastas visų metų kalendoriaus rodymasNaudojant dvi ar daugiau OSMO kopijų vienu metu gali būti prarasti duomenys.MažasGyvatėGarso grotuvasTarpasRašybos tikrinimo kalbaRašybos tikrinimo palaikymasPradžiaPradėti suskleistame langePradžiaValstijaStatistikaŽingsnis (minutės)PerbrauktasPerbraukti praeitos dienos pastabasSantraukaSintaksėSistemos dėklasKortelių padėtisGairėsUžduotisIšsami informacija apie užduotįUžduotis buvo pertvarkyta arba pašalinta.Užduoties informacijos šriftasUžduotysUžduočių sąrašasUžduočių parinktysJautis%s šablonas bus pakeistas el. pašto adresuŠablonas %s bus pakeistas garso failo pavadinimu%s šablonas bus pakeistas adresu žiniatinklyjeŠis sąrašas bus išvalytas ir visi įrašai prarasti.Pastaba pasikeitė.Naudotojo konfigūracijos kelio parinktis yra pasenusi. Vietoj jos, naudokite XDG aplinkos kintamuosius.StorasPlonasŠis skaičiuoklis skaičiuoja datas tik nuo 1 metų.Tai nėra Osmo atsarginės kopijos failasTigrasLaikasLaiko formatasLaiko periodasLaikas pridėjimui ar atimčiaiLaiko skalėIki (valandos)ŠiandienaDienų nuo šiandienRodyti/slėpti dienos pastabų skydelįPerjungti rašybos tikrinimąRytojusPažymėta per daug nuorodų!ViršujeVertėjaiTipasURL bus atveriami numatytoje naršyklėje.PabrauktasNežinomasNaudoti datos periodąNaudoti pirmą įrašą kaip antraštęDatai ir laikui naudoti sistemos formatąTeisingasReikšmėVertikalusMergelėMatomi stulpeliaiMatomi stulpeliai gimatadienių naršyklėjeMatomi įvykiaiTinklalapisTinklalapis 2Tinklalapis 3Tinklalapis 4Delčia (Dylantis mėnulis)Pilnatis (Dylantis kuprotas mėnulis)ĮspėjimasBangaJaunatis (Pilnėjantis pusmėnulis)Priešpilnis (Pilnėjantis kuprotas mėnulis)Interneto naršyklėSavaitėSavaitė prasideda pirmadienįSavaitgalio dienosSavaitgalio dienų spalvaSavaitėsBaltų simboliųŽodžiaiDarboDarbovietės adresasDarbovietės miestasDarbovietės valstybėDarbo telefonasDarbo telefonas 2Darbo telefonas 3Darbo telefonas 4Darbovietės pašto indeksasDarbovietės valstijaYYYY-DD-MMMM-DD-YYYYMetaiMetų informacijaMetaiTaipZodiako ženklas_Pridėti_Atsisakyti_Išvalyti_Užverti_Pereiti_Gerai_AtvertiĮ_dėtiŠa_lintiĮ_rašytisutrumpintas mėnesio pavadinimassutrumpintas šiokiadienių pavadinimasaktyvuoti paieškos laukąpridėtipridėti adresatąpridėti pastabąpridėti užduotįpriskirti spalvą dienos pastabos fonuiskirti raidžių lygįpakeisti kategorijos filtrąpakeisti dienąpakeisti mėnesįpakeisti paieškos veiksenąpakeisti metusišvalyti parinkimo požymiusužverti adresato išsamios informacijos skydelįužverti redaktoriųužverti visų metų kalendoriųužverti pastabos rašyklęužverti užduočių informacijos skydelįsukompiliuotaadresatas pridėtasadresatai pridėtiadresatų pridėtaadresatas eksportuotasadresatai eksportuotiadresatų eksportuotadatos skaičiuoklisdienadienosdienųdienos pastabų naršyklėmėnesio dienamėnesio diena be pirmųjų nuliųdiena iki metų pabaigosdienos iki metų pabaigosdienų iki metų pabaigostaisyti adresato įrašątaisyti pastabos pavadinimą ir kategorijątaisyti užduotįužšifravimo palaikymas išjungtasįrašasįrašaiįrašųįvykisįvykiaiįvykiųįvykis eksportuotasįvykiai eksportuotiįvykių eksportuotaišeitirasti tekstąpilnas mėnesio pavadinimaspilnas šiokiadienių pavadinimasvalandavalandosvalandųvalandosiCalendar įvykiaiiCalendar eksportavimasiCalendar failaiiCalendar palaikymaspereiti į dienąatverta nuorodųminutėminutėsminučiųminučiųmėnuomėnesiaimėnesiųnėra įrašųišatverti URLatverti pastabąaratidėtapašalinti adresatąpašalinti dienos pastabąpašalinti pastabąpašalinti užduotįsuapvalinta į apačiąišsaugoti pastabąslinkti dienos informacijos skydelio turinįsekundėsekundėssekundžiųparinkti šiandienos datąnustatyti dabartinius metusrodyti Apie langąrodyti dokumento statistikąparodyti visų metų kalendoriųrodyti parinkčių langąatimtiperjungti puslapį parinkčių ir apie kortelėsepereitį į kitą kortelępereiti į praeitą kortelęperjungti į pasirinktą puslapįužduotys eksportuotospaskutinė metų dienalaikas ignoruojamaskartųšiandienperjungti alternatyvų rodinįperjungti pusjuodįperjungti praeito ir kito mėnesio kalendoriusperjungti viso ekrano veiksenąperjungti paslėptas užduotisperjungti paryškintąperjungti kursyvąperjungti asmeninės informacijos matomumąperjungti perbrauktąperjungti pabrauktąversijagimėsavaitėsavaitėssavaičiųsavaitgalio dienasavaitgalio dienossavaitgalio dienųignoruota savaitgalio dienaignoruotos savaitgalio dienosignoruotų savaitgalio dienųdarbo dienadarbo dienosdarbo dienųmetaimetaimetųmetų informacijametaimetaimetųmetai su amžiumimetai be amžiausosmo-0.4.2/po/fr.mo0000664000175000017500000011427613204320601011001 00000000000000*X9 Y9g99 9 9.99999:: : $: 2:@: O:Y: ]: g: r: |:8: : :: ::;( ; I;T; ];k;q;w;~;&;$; ;;; <<6<E<K<P< Y<g< }<<<<<< < <<*<= = $=2=A=H=^=r=="== == == = > > !>.> K> l>w>>>>>> >>> ??#?4?:?.P?!? ????? ?@@ @ #@0@8@ @@ K@ W@ c@ n@ {@@@ @ @ @ @@ @A% A0A @A JAVAiA |AA AA A AAAA A A ABBB+B IB UB `BlBBBBBBBCC CCC#C>CECNCWC `C!nC C C C C CCCCCCD)D!CDeDxD DD DDDDDDDD DD E"E)E0E @EMEaEfEjE {EEEEEEE EE E EEEE F F F*F =FIFPFXFtFyFFFFFFFFFFF FF F G G G +G 8G EG RG `GkG tGGGGG GG GGGGG&GGH(H/H ?HKH_H dHpHHHHHHHHHH H I II I(I :I GIQI XIbI gIsIwI}IIII II II IIII III JJ J#J *J5J:J CJQJ`JiJ rJ~JJJ J JJJ!JJJ*J$K"4K!WKyKKKK K K K KK KKK L7LSLjLozLLL MM M)MCM(cMM MMMMM MMNN#N*N 0N;N?NFNLNfN:|NNNN N NN O"O 1O?ONOgO{OO O OOOOOO OOOOP#-PQPaPrP PPPP P P PPP P Q"Q 1Q ;QFQNQUQ\Q qQ}QQQQ QQQ QQ R!R"9R\R|RRRR R RRSS$S7S@S FSPS _S mS SSSS%SS T !T .T;T VT `TkT!}TJTTT TU U U6Ut BtLtSt[tcthtttttt tttuuu6uOuhu u u u uuuuu uu uuuuv4 vAv[vyvv vvv vvv$w'w?wSw \wgwpwywwwwwwwww xx-x4xCxHxPxXx^xex kxvxxx xxxxx xxxxxxyyyy%y7y >yLy \yjy zy yyyy*y y y4z~#~~  "0IZk   !' AO^%q,2Ā(= Q^} ȁҁ ف 3$8P Ydlڂ 8'Qy%#)ۃ+6,b ք #0Kb| 1"&=Pe/z"ӆax# ڇ ,'3[dl ))(1'Z#5܉5,9flr Ŋъ!/7>[ `l7q 0ы69A HRY1k Ō Ќی )BQj Íэ/Kg ׎ߎ #' / 9F[p<͏# !.P`p$*Ð)7 a:m# ̑ ! $'DL+ђ)#8\ cn œ֓ , 4 >LOdtwՔ1.?^ { ԕ 67Mg˖ Жܖ8*A `j<s  ɗӗ"9 Abq'w5+st[ W'iY A  }t@(3=p:n`9>7R]Xa?W\YT<h)^v &~mc>P NCH>{R`/ /GVIhy$$y|~-PQ}Vj,+L719) B{6RvqF1NOPQa G)e2!kO_,8:HO@'9= gr6b3; irQ}qgD#f1MeA0$y50ds|e _2v"KZ,%Kmo&uK.cx#4j{4 z;f* bwd^:I-Uo_n%^DMU\U3DH=rp!k<xNaWsJ"%Vl0J2lT*pA-|lSmF*8uoE(&M F5?6hJ(`kzLiBwj n d+!4fYu]@8qxSEI]Z?ZE \/Bb[S7cgt<X;LTCG.#"~zX[C.0 for disableA handy personal organizerAboutAdd contactAdd headerAdd new task when double clicked on tasks listAdd noteAdd taskAdd to or subtract from a dateAdditional infoAddressAdvancedAgeAlarm commandAlarm warningAlarm warning!AlgorithmAllAll FilesAll fieldsAll itemsAll notesAll your data will be replaced with backup file content.Alt+ArrowsAlt+a, InsertAlt+e, Ctrl+EnterAlt+r, DeleteAlternative time unitsAlternative viewAnother copy of OSMO is already running.AppearanceAquariusAre you sure?AriesArrowArrowsArrows Up/DownAscending sorting in day notes browserAt least one module must be visible.AuthorizationAvailable modulesBackground colorBackup dataBackup file saved successfully!Backup supportBasicBestBirthdayBirthday dateBirthday marker colorBirthdaysBirthdays listBlogBoldBottomBrowse iCal eventsBrowse notesBug trackerBytesCSV (comma-separated values) files (*.csv)CalendarCalendar files (*.ics)Calendar fontCalendar notesCancerCannot create backup!Cannot create file.Cannot open file.Cannot open the note.Cannot perform selected operation.Cannot read file.CapricornCase sensitiveCategoriesCategoryCell phoneCell phone 2Cell phone 3Cell phone 4Change due date to next dateChange due date to previous dateCharactersCheck for events since last runChinese year animalCircleCityClearClear attributesClear textClose contact panelClose description panelClose editorClose find entryClose note panelColorColor of contact tagsColor of items that are due in the next 7 daysColor of items that are due todayColor of items that are past dueColor of linksColorsColumnCompiled-in featuresCompressionContact detailsContactsContinue?ContributorsCountryCreatedCtrl+EnterCtrl+PageDnCtrl+PageUpCtrl+SpaceCtrl+Up/DownCurrent dateCurrent day markerCurrent day marker colorCurrent monthCurrent timeCurrent yearCursor colorCursor thicknessDD-MM-YYYYDateDate and time to add or subtract fromDate calculatorDate fontDate formatDate format syntaxDate header formatDate periodDayDay SelectorDay categoriesDay categoryDay colorDay nameDay noteDay note markerDay notesDay numberDay tasksDaysDays to birthdayDeleteDelete completed tasks without confirmationDelete noteDepartmentDescriptionDisable background colorsDisable underline in linksDisabledDo you really want to continue?Do you want to continue?Do you want to save it?DocumentDogDoneDone!DragonDue dateDuration between two datesE-MailE-Mail 2E-Mail 3E-Mail 4E-mail clientERROR: Cannot create config filesEdit categoryEdit contactEdit entryEdit noteEdit taskEditorEllipseEnableEnable auxilary calendarsEnable block cursorEnable notification dialogEnable sound notificationEnable spell checker in day notesEnable system trayEnable tooltipsEncryptedEncrypted notes supportEncryptionEndEnterEnter passwordErrorError printingEscEventEvent markerEvent marker colorEvent maximum lengthEventsExportExport contactsExport tasksExport to iCal fileFastFaxFeature requestsField typeFields to exportFileFilenameFilterFindFinishedFirst NameFirst date and timeFirst nameFont sizeFontsFowlFree-hand circleFrom (hour)Full MoonFull dateFull-year calendarGIT versionGeminiGeneralGlobal notification commandGoodGraphicsGroupGroupsHareHashingHeader background colorHelpersHideHide completed tasksHide group columnHighHighlightHomeHome addressHome cityHome countryHome phoneHome phone 2Home phone 3Home phone 4Home postcodeHome stateHome/EndHorizontalHorseHourHoursIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnore alarm when task expired offlineIgnore day note eventsIgnore weekend daysImportImport contactsImport typeIncorrect password!InfoInformationInput filenameInsertInsert current date and timeInsert separatorInsert timelineInternetIntervalInvertItalicItem font sizeJump to dateKey shortcutsLandscapeLargeLast NameLast Quarter MoonLast changesLast nameLayoutLeap yearLeftLeft, RightLeoLibraLicenseLineLinesLowMM-DD-YYYYMM/DD/YYMailing listsMarkMarked daysMediumMinuteMinutesMiscellaneousModifiedModify ICAL parametersMonkeyMonthMonth nameMonthsMoon phaseNameName dayName day dateName font sizeNamedaysNew MoonNew contactNew noteNew taskNext dayNext monthNext yearNicknameNoNo URLs found in the selection...No birthdays definedNo dateNo further data recovery will be possible.No month changeNo records found in selected file.No tasks with defined date found.No valid calendars definedNo.NoneNoteNote editorNote fontNote nameNote typeNotesNotes optionsNothing to import.Number fields per recordNumber of daysNumber of days to check forward for events (default: 0)Number of weekend daysNumber of weeksOSMO was designed keeping in mind the user convenience, so there are many key shortcuts. Here is the full list:Open URL linksOpen backup fileOperationOptionsOrganizationOsmo backup files (*.bck)Osmo has to be restarted now...Osmo has to be restarted to take effect.Output filenameOutput formatOverride locale settingsOxPaddingPage orientation:PageUp/PageDnPassword protectionPasswords do not match!PersonalPhonesPhotoPhoto sizePigPiscesPlainPlease enter the passwordPlease select addressPlease select at least one day when recurrency is enabled.Please select file first.PortraitPostcodePostpone timePreferencesPrevious and next monthPrevious dayPrevious monthPrevious yearPrint calendarPrint visible tasks listPrinting propertiesPrinting supportPriorityProgrammingQuarter MoonQuestionQuitRatRatioRe-enter passwordRead-onlyRecordRecurrent taskRemember cursor positionRemember last selected pageRemember the last selected categoryRemind me laterReminder optionsRemove contactRemove taskRepeatRepeat in the following daysRepeat sound alarmReset fieldsReset timeRestore dataResultRightSagittariusSave backupSave data after every modificationSave noteSave tasksScorpioSearchSecondSecond date and timeSecond nameSecondsSelect CSV fileSelect ICS fileSelect a font...Select colorSelect date and timeSelect day colorSelect fieldsSelect output fileSelect photoSelected contact will be removed.Selected day note will be removed.Selected file exist! Overwrite?Selected monthSelected month and yearSelected note will be removed.Selected task will be removed.Selected yearSelectionSelectorSet current dateSet current timeSet default formatSet timeSheepShow OsmoShow birthdaysShow calendarShow contact location on the mapShow contactsShow day namesShow exit button in toolbarShow hidden filesShow in bold tasks with high priorityShow in day info panelShow notesShow optionsShow secondsShow small calendar windowShow taskShow tasksShow week numbersSimple view in full-year calendarSimultaneously use two or more copies of OSMO can be a cause of data loss.SmallSnakeSound playerSpaceSpell checker languageSpell checker supportStartStart minimisedStartedStateStatisticsStep (minutes)StrikethroughStrikethrough past day notesSummarySyntaxSystem trayTabs positionTagsTaskTask detailsTask has been modified or removed.Task info fontTasksTasks listTasks optionsTaurusThe %s pattern will be replaced with e-mail addressThe %s pattern will be replaced with sound filenameThe %s pattern will be replaced with web addressThe list will be cleared and all entries will be lost.The note has changed.ThickThinThis calculator only supports dates after year 1.This is not Osmo backup fileTigerTimeTime formatTime periodTime to add or subtractTimelineTo (hour)TodayToday distanceToggle day note panelToggle spell checkerTomorrowToo many links selected!TopTranslatorsTypeURLs will be opened in the default browser.UnderlineUnknownUse date periodUse first record as headerUse system format for date and timeValidValueVerticalVirgoVisible columnsVisible columns in birthday browserVisible eventsWWWWWW 2WWW 3WWW 4Waning Crescent MoonWaning Gibbous MoonWarningWaveWaxing Crescent MoonWaxing Gibbous MoonWeb browserWeek numberWeek start on MondayWeekend daysWeekend days colorWeeksWhite charactersWordsWorkWork addressWork cityWork countryWork phoneWork phone 2Work phone 3Work phone 4Work postcodeWork stateYYYY-DD-MMYYYY-MM-DDYearYear infoYearsYesZodiac sign_Add_Cancel_Clear_Close_Jump to_OK_Open_Remove_Saveabbreviated month nameabbreviated weekday nameactivate search fieldaddadd contactadd noteadd taskassign background color to day notecase sensitivechange category filterchange daychange monthchange search modechange yearclear selection attributesclose contact details panelclose editorclose full-year calendarclose note editorclose task info panelcompiled oncontact addedcontacts addedcontact exportedcontacts exporteddate calculatordaydaysday notes browserday of the monthday of the month without leading zerosday till end of yeardays till end of yearedit contactedit note name and categoryedit taskencryption support is disabledentryentrieseventeventsevent exportedevents exportedexitfind textfull month namefull weekday namehourhourshoursiCalendar eventsiCalendar exportiCalendar filesiCalendar supportjump to datelinks openedminuteminutesminutesmonthmonthsno entriesofopen URLsopen noteorpostponedremove contactremove day noteremove noteremove taskrounded downsave notescroll the contents in the day info panelsecondsecondsselect current dateset current yearshow about windowshow document statisticsshow full-year calendarshow options windowsubtractswitch page in options and about tabswitch to next tabswitch to previous tabswitch to selected pagetasks exportedthe last day of the yeartime is ignoredtimestodaytoggle alternative viewtoggle boldtoggle calendars for the previous and next monthtoggle fullscreen modetoggle hidden taskstoggle highlighttoggle italictoggle personal data visibilitytoggle strikethroughtoggle underlineversionwas bornweekweeksweekend dayweekend daysweekend day ignoredweekend days ignoredworking dayworking daysyearyearsyear infoyear oldyears oldyear with centuryyear without centuryProject-Id-Version: Osmo Report-Msgid-Bugs-To: POT-Creation-Date: 2017-11-19 16:21+0100 PO-Revision-Date: 2017-09-21 20:07+0000 Last-Translator: zoliaaz z Language-Team: French (http://www.transifex.com/pasp/osmo/language/fr/) Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); 0 pour désactiverUn @genda personnel léger et pratiqueÀ proposAjouter un contactAjouter un en-têteAjouter une nouvelle tâche par un double clic sur la listeAjouter une noteAjouter une tâcheAjouter/Soustraire d'une dateInformations complémentairesAdresseAvancéAge au prochainCommande de notification alternativeAlarme de rappelAlarme de rappel !AlgorithmeToutTous les fichiersTous les champsToutToutes les notesToutes vos données seront remplacées par le contenu du fichier de sauvegardeAlt+FlèchesAlt+a, InsérerAlt+e, Ctrl+EntréeAlt+r, SupprAutres Unités temporellesVue alternativeUn autre processus OSMO est déjà en cours.ApparenceVerseauÊtes-vous sûr(e) ?BelierFlècheFlèchesFlèches Haut/BasOrdre croissant dans le panneau de noteAu moins un module doit être visibleAutorisationModules disponiblesCouleur de fondSauvegardeCréation du fichier de sauvegarde terminéeSupport de sauvegardeSimpleMeilleurAnniversaireDate d'anniversaireMarqueur d'anniversaireAnniversairesListe des anniversairesBlogGrasBasExplorer les évènements iCalParcourir les notesRecherche de bugsBytesFichiers CVS (séparés par une virgule) (*.csv) CalendrierFichiers calendrier (*.ics)Police du calendrierNotes du calendrierCancerCréation du fichier impossibleCréation du fichier impossibleImpossible d'ouvrir le fichierImpossible d'ouvrir le fichierImpossible de réaliser l'opération sélectionnéeLecture du fichier impossibleCapricorneDistinguer majuscules et minusculesCatégoriesCatégorieTéléphone mobileTéléphone mobile 2Téléphone mobile 3Téléphone mobile 4Échéance au jour suivantÉchéance au jour précédentCaractèresVérifier les évènements depuis la dernière utilisationSigne chinois de l'annéeCercleVilleViderStyle par défautEffacer le texteCacher les détailsCacher les détailsFermer l'éditeurCacher la barre de rechercheFermer le panneau des notesCouleurTypes d'informationCouleur de ce qui se termine dans les 7 joursCouleur de ce qui se termine aujourd'huiCouleur de ce qui est achevéLiens internet et courrielCouleursColonneOptions de compilationCompressionContact en détailContactsContinuer ?ContributeursPaysCrééeCtrl+EntréeCtrl+Bas de PageCtrl+Haut de PageCtrl+EspaceCtrl+Haut/BasDate actuelleMarqueur du jour actuelMarqueur du jour actuelMois actuelHeure actuelleAnnée actuelleCurseurÉpaisseur du curseurJJ-MM-AAAADateDate et heure initialesCalculateur temporelPolice de la dateFormat de la dateSyntaxe du formatFormat de la dateRappel à date fixeJourSélecteur de jourCatégories journalièresCatégorie du jourAttribuer une couleur au jourJoursNote du jourMarqueur des notesNotes du jourN° annuel du jourTâches du jourJoursNombre de jours restantsSupprEffacer les tâches terminées sans confirmationSupprimer la noteServiceDescriptionDésactive la couleur de fondNe pas souligner les liensInvalideContinuer quand même ?Voulez-vous continuer?Voulez vous enregistrer ?DocumentChienFaitFait!DragonÉchéanceDurée entre deux datesAdresse courrielAdresse courriel 2Adresse courriel 3Adresse courriel 4Client courrielErreur: impossible de créer le fichier de configurationÉditer les catégoriesModifier le contactModifier l'entréeModifier la noteModifier la tâcheÉditeurEllipseActiverActiver les calendriers auxiliairesActiver le curseur pleinActive une fenêtre de notificationActiver la notification sonoreActiver le correcteur d'orthographeAfficher l'îconeActiver les bulles d'aideChiffréeDispositif de chiffrementChiffrementFinEntréeEntrer le mot de passeErreurErreur d'impressionÉchapÉvènementMarqueur des événementsMarqueur des évènementsNb max de caractèresÉvènementsExporterExporter les contactsExporter les tâchesExporter en fichier iCalRapideFaxRequêtes de fonctionalitésCatégorieChamps à exporterFichierNom de fichierFiltreRechercherFiniPrénomPremière date/heurePrénomTaille des policesPolicesCoqCercle à main levéeDe (heure)Pleine LuneDate complèteCalendrier annuelVersion GitGémeauGénéralCommande par défaut (ex: notify-send)BonGraphismeGroupeGroupesLièvreHashCouleur de fond des en-têtesProgrammes externesCacherCacher les tâches terminéesCacher la colonne de groupeHauteSurlignerMaisonAdresse personnelleVille de résidencePaysTéléphone résidenceTéléphone résidence 2Téléphone résidence 3Téléphone résidence 4Code postalDépartementOrigine/FinHorizontaleChevalHeureHeuresIM AOLIM Gadu-GaduIM ICQIM JabberIM MSNIM SkypeIM TlenIM YahooIgnorer l'alarme lorsque la tâche expire hors ligneIgnorer les notes du jourIgnorer les jours de week-endImporterImporter des contactsType d'importMot de passe incorrectPanneau d'informationsInformationEntrer le nom du fichierInsérerInsérer la date et l'heure actuelleInsérer un séparateurInsérer un horaireInternetIntervalleInverserItaliqueDétails sur les contactsAller à la date duRaccourcis clavierPaysageGrandeNom de familleDernier quartierDerniers changementsNom de familleMise en pageAnnée bissextileGaucheGauche, DroiteLionBalanceLicenceLigneLignesBasseMM-JJ-AAAAMM/JJ/AAListes de courrielsMarquerJours cochésMoyenneMinuteMinutesDiversModifiéeModifier les paramètres ICALSingeMoisMoisMoisPhase de la LuneNomFêteFêteNoms des contactsFêtesNouvelle LuneNouveau contactNouvelle noteNouvelle tâcheJour suivantMois suivantAnnée suivanteSurnomNonAucun liens trouvés dans la sélection...Pas d'anniversaires enregistrésPas de dateLa récupération des données ne sera plus possibleNe pas changer le moisAucun enregistrement dans le fichier sélectionnéTâches avec date définie introuvables.Aucun calendriers définisN° NotesÉditeur de notePolice des notesNom de la noteType de noteNotesOptions des notesRien à importerNombre de champs par enregistrementNombre de joursNombre de jours avant vérification des événements (par defaut: 0)Jours de week-end annuelNombre de semainesOSMO a été conçu en gardant à l'esprit le confort de l'utilisateur, d'où les nombreux raccourcis clavier. Voici la liste complète:Ouvrir un lien URLOuvrir le fichier de sauvegardeOpérationOptionsEntreprise ou organisationFichiers de sauvegardes d'Osmo (*.bck)Osmo va redémarrer maintenant ...Les changements prendront effet aprés redémarrageFichier de destination Format de destinationIgnorer les paramètres locauxBœufMarge par caseOrientation de la pageHaut de Page/Bas de PageProtection par mot de passeLe mot de passe ne correspond pasPersonnelTéléphonesPhotoTaille des photosCochonPoissonEn clairConfirmer le mot de passeSélectionner une adresseSélectionner au moins un jour avec le mode récurrent activéSélectionner le fichier en premierPortraitCode postalTemps avant rappelPréférencesMois précédent/suivantJour précédentMois précédentAnnée précédenteImprimer le calendrierImprimer la liste des tâchesPropriétés d'impressionSupport d'impressionPrioritéProgrammationPremier quartierQuestionQuitterRatRatioConfirmer le mot de passeLecture seuleEnregistrementTâche récurrenteSe rappeler de la position du curseurSe rappeler la dernière page sélectionnéeSe rappeler la dernière catégorie sélectionnéeMe le rappeler plus tardOptions de notificationSupprimer le contactSupprimer la tâcheRépétitionRépéter les jours suivants :Répéter l'alarme sonoreRemettre à zéroRemettre à zéroRestaurationRésultatDroiteSagittaireSauvegarderSauvegarder les données après chaque modificationEnregistrer la noteSauvegarder les tâchesScorpionRechercherSecondeDeuxième date/heureSecond nom de familleSecondesSélectionner un fichier CVSSélectionner un fichier ICSSélectionner une police...Sélectionnez la couleurDate/HeureAttribuer une couleur au jourSélectionner les champsSélectionner le fichier de destinationSélectionner une photoLe contact sélectionné sera effacéLes notes du jour seront effacées Le fichier choisi existe ! Le remplacer ?Mois sélectionnéMois et année sélectionnéeLes notes sélectionnées seront effacées Les tâches sélectionnées seront effacéesAnnée sélectionnéeSélectionSélecteurMettre à la date actuelleMettre à l'heure actuelleFormat par défautSélectionner une heureMoutonMontrer OsmoAfficher les anniversairesAfficher le calendrierLocaliser sur Google MapsAfficher les contactsAfficher les jours de la semainemontrer le bouton sortir dans la barre de tâchesAfficher les fichiers cachésTâches à haute priorité en grasPanneau d'informationsAfficher les notesAfficher les optionsmontrer les secondesAfficher le calendrier dans une petite fenêtreMontrer les tâchesAfficher les tâchesAfficher les N° annuel de semaineVue simple du calendrier annuelLe lancement en parallèle de deux instances (ou plus) d'OSMO peut causer des pertes de données.PetiteSerpentServeur de sonEspaceLangage du correcteur d'orthographeCorrecteur d'orthographeDémarrageLancer minimiséLancéDépartementStatistiquesIntervalle (minutes)BarrerBarrer les notes des jours précédentsRésuméSyntaxeZone de notificationPosition des ongletsMots clefTâcheDétails de la tâcheLa tâche a été modifiée ou suppriméePolice des détailsTâchesListe des tâchesOptions des tâchesTaureau%s sera remplacé par l'adresse courriel%s sera remplacé par le fichier sonore%s sera remplacé par l'adresse webLa liste sera effacée et toutes les entrées perduesLa note a été modifiéeÉpaisMinceCe calculateur ne supporte que les dates après un anCe n'est pas un fichier de sauvegarde d'OsmoTigreHeureFormat de l'heureRappel périodiqueTemps à ajouter/soustraireDuréeÀ (heure)Aujourd'huiIntervalle en joursAfficher/Cacher les notes du jourActiver/Désactiver le correcteur d'orthographeDemainTrop de liens sélectionnésHautTraducteursTypeLes URLs seront ouverts dans le navigateur par défaut.SoulignerInconnuDéfinir une périodeUtiliser le premier enregistrement pour en-têteUtiliser le format du système pour la date et l'heureValiderValeurVerticaleViergeColonnes visiblesColonnes visibles dans la liste des anniversairesFaire apparaître :Site WebSite Web 2Site Web 3Site Web 4Dernier croissantLune gibbeuse descendanteAttentionVaguePremier croissantLune gibbeuse ascendanteNavigateur webN° annuel de la semaineLes semaines débutent LundiJours de week-endWeek-endSemainesCaractères blancsMotsProfessionnelAdresse professionnelleVille d'activitéTéléphone professionnelTéléphone professionnelTéléphone professionnel 2Téléphone professionnel 3Téléphone professionnel 4Code postalDépartementAAAA-JJ-MMAAAA-MM-JJAnnéeInformations supplémentairesAnnéesOuiSigne du zodiaqueAjouter_AnnulerEffacer_Fermer_Aller à..._OK_OuvrirSupprimer_Sauvegardernom du mois abrégénom du jour abrégéActiver le champ de rechercheAjouterAjouter un contactAjouter une noteAjouter une tâcheAssigne une couleur d'arrière plan à une note journalièreDistinguer majuscules et minusculesChanger le filtre des catégoriesChanger le jourChanger le moisChanger le mode de rechercheChanger l'annéeStyle par défaut pour la sélectionFermer le panneau de détails des contactsFermer l'éditeurFermer le calendrier annuelFermer l'éditeur de notesFermer le panneau de détails des tâchescompilé enLe contact a été ajoutéLes contacts ont été ajoutéscontact exportécontacts exportésAfficher le calculateur temporeljourjoursParcourir les notes du calendriern° du jour n° du jour sans les zéros initiauxJour jusqu'à la fin de l'annéeJours jusqu'à la fin de l'annéeModifier le contactModifier le nom et la catégorie de la noteModifier la tâcheLe support de chiffrement est désactivéentréeentréesévènementévènementscontact exportécontacts exportésSortirRecherchernom du mois en entiernom du jour en entierheureheuresheuresÉvènements iCalendarExport iCalendarfichiers iCalendarSupport iCalendarAller à la date duLiens ouvertminuteminutesminutesmoismoisPas d'entréedeOuvrir les liens URLOuvrir une noteouReportéSupprimer le contactSupprimer la note du jourSupprimer la noteSupprimer la tâchearrondi inférieurEnregistrer la noteAfficher les notes dans le panneau d'informationssecondesecondesSélectionner la date actuelleRevenir à l'année actuelleAfficher la fenêtre 'À Propos'Afficher les statistiquesAfficher le calendrier annuelAfficher la fenêtre des optionsSoustraireChanger de pages dans les onglets Options et À proposVers l'onglet suivantVers l'onglet précédentAller à l'onglet sélectionnéTâches exportéesle dernier jour de l'annéeL'heure est ignoréefoisAujourd'huiVue alternativeGrasAfficher les calendriers des mois précédent et suivantpasser en plein écranAfficher les tâches cachées SurlignerItaliqueActiver/Désactiver la visibilité des données personnellesBarrerSoulignerversionné(e) lesemainesemainesJour de week-endJours de week-endIgnorer le jour de week-endIgnorer les jours de week-endJour en semaineJours en semaineAnnéeAnnéesInformations supplémentairesanansannée avec siècleannée sans siècleosmo-0.4.2/po/ru.po0000664000175000017500000013240613204320601011016 00000000000000# Russian translation of Osmo # This file is distributed under the same license as the Osmo package. # Vyacheslav A. Trishkin , 2008. # Sergey Panasenko , 2009-2010. # msgid "" msgstr "" "Project-Id-Version: Osmo 0.2.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-19 16:21+0100\n" "PO-Revision-Date: 2015-10-01 11:53+0200\n" "Last-Translator: Sergey Panasenko \n" "Language-Team: Russian\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 1.7.5\n" msgid "Colors" msgstr "Цвета" msgid "Color of contact tags" msgstr "Цвет тегов контакта" msgid "Color of links" msgstr "Цвет ссылки" msgid "Font size" msgstr "Шрифт" msgid "Name font size" msgstr "Гарнитура" msgid "Item font size" msgstr "Размер шрифта" msgid "Photo size" msgstr "Размер фотографии" msgid "Small" msgstr "Маленький" msgid "Medium" msgstr "Средний" msgid "Large" msgstr "Большой" msgid "Hide group column" msgstr "Скрыть столбец группы" msgid "Maps provider" msgstr "" msgid "Age" msgstr "Возраст" msgid "Birthday date" msgstr "День рождения" msgid "Zodiac sign" msgstr "Знак Зодиака" msgid "Contacts" msgstr "Контакты" msgid "Appearance" msgstr "Внешний вид" msgid "Miscellaneous" msgstr "Разное" msgid "Groups" msgstr "Группы" msgid "Visible columns in birthday browser" msgstr "Показать столбики в навигаторе дней рождения" msgid "Algorithm" msgstr "Алгоритм" msgid "Hashing" msgstr "Хэширование" msgid "Compression" msgstr "Сжатие" msgid "Ratio" msgstr "Степень сжатия" msgid "Fast" msgstr "Быстрая" msgid "Good" msgstr "Хорошая" msgid "Best" msgstr "Лучшая" msgid "Type" msgstr "Тип" msgid "Category" msgstr "Категория" msgid "Last changes" msgstr "Последние изменения" msgid "Created" msgstr "Создано" msgid "Remember the last selected category" msgstr "Помнить последнюю выбранную категорию" msgid "Use system format for date and time" msgstr "Использовать системный формат времени и даты" msgid "Notes" msgstr "Заметки" msgid "Encryption" msgstr "Шифрование" msgid "Visible columns" msgstr "Видимые столбцы" msgid "Categories" msgstr "Категории" msgid "Notes options" msgstr "Настройки заметок" msgid "Jump to date" msgstr "Перейти к дате" msgid "Day" msgstr "День" msgid "Month" msgstr "Месяц" msgid "Year" msgstr "Год" msgid "_Cancel" msgstr "" msgid "_Jump to" msgstr "" msgid "Select a font..." msgstr "Выбрать шрифт..." msgid "None" msgstr "Нет" msgid "All items" msgstr "Все" msgid "Question" msgstr "Подтверждение" msgid "Information" msgstr "Информация" msgid "Error" msgstr "Ошибка" msgid "Warning" msgstr "Предупреждение" msgid "Show hidden files" msgstr "" msgid "_Save" msgstr "" msgid "_Open" msgstr "" msgid "Selected file exist! Overwrite?" msgstr "Указанный файл существует! Перезаписать?" msgid "Selected contact will be removed." msgstr "Выбранный контакт будет удален." msgid "Are you sure?" msgstr "Вы уверены?" msgid "No date" msgstr "Нет даты" msgid "Select photo" msgstr "Выбрать фотографию" msgid "Address" msgstr "Адрес" msgid "Postcode" msgstr "Индекс" msgid "City" msgstr "Город" msgid "State" msgstr "Регион" msgid "Country" msgstr "Страна" msgid "Edit contact" msgstr "Редактирование контакта" msgid "Add contact" msgstr "Добавить контакт" msgid "Personal" msgstr "Личные" msgid "Group" msgstr "Группа" msgid "Home" msgstr "Дом" msgid "Work" msgstr "Работа" msgid "Phones" msgstr "Телефоны" msgid "Internet" msgstr "Интернет" msgid "Additional info" msgstr "Дополнительная информация" msgid "_OK" msgstr "" msgid "no entries" msgstr "нет записей" msgid "entry" msgid_plural "entries" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "Calendar notes" msgstr "Заметки календаря" msgid "Search" msgstr "Поиск" msgid "Filter" msgstr "Фильтр" msgid "Current month" msgstr "Текущий месяц" msgid "Selected month" msgstr "Выбранный месяц" msgid "Current year" msgstr "Текущий год" msgid "Selected year" msgstr "Выбранный год" msgid "Selected month and year" msgstr "Выбранный месяц и год" msgid "All notes" msgstr "Все заметки" msgid "Case sensitive" msgstr "С учетом регистра" msgid "Strikethrough past day notes" msgstr "Зачеркивать заметки прошедших дней" msgid "Date" msgstr "Дата" msgid "Note" msgstr "Заметка" msgid "_Close" msgstr "" msgid "Rat" msgstr "Крыса" msgid "Ox" msgstr "Бык" msgid "Tiger" msgstr "Тигр" msgid "Hare" msgstr "Заяц" msgid "Dragon" msgstr "Дракон" msgid "Snake" msgstr "Змея" msgid "Horse" msgstr "Лошадь" msgid "Sheep" msgstr "Овца" msgid "Monkey" msgstr "Обезьяна" msgid "Fowl" msgstr "Петух" msgid "Dog" msgstr "Собака" msgid "Pig" msgstr "Свинья" msgid "Unknown" msgstr "Неизвестно" msgid "Aquarius" msgstr "Водолей" msgid "Pisces" msgstr "Рыбы" msgid "Aries" msgstr "Овен" msgid "Taurus" msgstr "Телец" msgid "Gemini" msgstr "Близнецы" msgid "Cancer" msgstr "Рак" msgid "Leo" msgstr "Лев" msgid "Virgo" msgstr "Дева" msgid "Libra" msgstr "Весы" msgid "Scorpio" msgstr "Скорпион" msgid "Sagittarius" msgstr "Стрелец" msgid "Capricorn" msgstr "Козерог" msgid "Osmo has to be restarted to take effect." msgstr "" "Osmo должен быть перезагружен для того, чтобы изменения вступили в силу." msgid "Layout" msgstr "Слой" msgid "Vertical" msgstr "Вертикальный" msgid "Horizontal" msgstr "Горизонтальный" msgid "Tabs position" msgstr "Положение вкладок" msgid "Left" msgstr "Слева" msgid "Right" msgstr "Справа" msgid "Top" msgstr "Вверху" msgid "Bottom" msgstr "Внизу" msgid "Disable underline in links" msgstr "Отключить подчеркивание в ссылках" msgid "Show exit button in toolbar" msgstr "" msgid "At least one module must be visible." msgstr "По крайней мере один модуль должен быть видимым." msgid "Calendar" msgstr "Календарь" msgid "Tasks" msgstr "Задачи" msgid "Override locale settings" msgstr "Перекрыть локальные настройки" msgid "Date format" msgstr "Формат даты" msgid "DD-MM-YYYY" msgstr "ДД-ММ-ГГГГ" msgid "MM-DD-YYYY" msgstr "ММ-ДД-ГГГГ" msgid "YYYY-MM-DD" msgstr "ГГГГ-ММ-ДД" msgid "YYYY-DD-MM" msgstr "ГГГГ-ДД-ММ" msgid "Time format" msgstr "Формат времени" msgid "hours" msgstr "часовой" msgid "Spell checker language" msgstr "Язык словаря" msgid "Enable tooltips" msgstr "Включить подсказки" msgid "Remember last selected page" msgstr "Помнить последнюю открытую страницу" msgid "Save data after every modification" msgstr "Сохранять данные после каждого изменения" msgid "Web browser" msgstr "Веб-браузер" msgid "E-mail client" msgstr "Почтовый клиент" msgid "Sound player" msgstr "Проигрыватель" #, c-format msgid "The %s pattern will be replaced with web address" msgstr "Образец %s - будет заменен на гиперссылку" #, c-format msgid "The %s pattern will be replaced with e-mail address" msgstr "Образец %s - будет заменен на адрес электронной почты" #, c-format msgid "The %s pattern will be replaced with sound filename" msgstr "Образец %s - будет заменен на имя звукового файла" msgid "Enable system tray" msgstr "Поместить иконку в системный трей" msgid "Start minimised" msgstr "Запускать свернутым" msgid "Ignore day note events" msgstr "Игнорировать события заметок дня" msgid "General" msgstr "Основные" msgid "Hide" msgstr "Скрыть" msgid "Helpers" msgstr "Помощники" msgid "System tray" msgstr "Системный трей" msgid "Preferences" msgstr "Параметры" msgid "Syntax" msgstr "Синтаксис" msgid "abbreviated weekday name" msgstr "сокращенное название дня недели" msgid "full weekday name" msgstr "полное название дня недели" msgid "abbreviated month name" msgstr "сокращенное название месяца" msgid "full month name" msgstr "Полное название месяца" msgid "day of the month" msgstr "день месяца" msgid "MM/DD/YY" msgstr "ММ/ДД/ГГГГ" msgid "day of the month without leading zeros" msgstr "день месяца без нулей впереди" msgid "month" msgid_plural "months" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "year without century" msgstr "год без столетий" msgid "year with century" msgstr "год со столетиями" msgid "Date header format" msgstr "Формат заголовка даты" msgid "Set default format" msgstr "Установить формат по умолчанию" msgid "Date format syntax" msgstr "Синтаксис формата даты" msgid "Day note marker" msgstr "Указатель заметок на день" msgid "Event marker" msgstr "Указатель события" msgid "Circle" msgstr "Круг" msgid "Ellipse" msgstr "Эллипс" msgid "Wave" msgstr "Волна" msgid "Current day marker" msgstr "Указатель на текущий день" msgid "Arrow" msgstr "Стрелка" msgid "Free-hand circle" msgstr "Круг (от руки)" msgid "Background color" msgstr "" msgid "Header background color" msgstr "" msgid "Header foreground color" msgstr "" msgid "Weekend days color" msgstr "Цвет выходных дней" msgid "Day color" msgstr "" msgid "Previous/Next month's day color" msgstr "" msgid "Cursor color" msgstr "Цвет курсора" msgid "Event marker color" msgstr "Цвет дней с событиями" msgid "Current day marker color" msgstr "Цвет указателя текущего дня" msgid "Birthday marker color" msgstr "Цвет указателя дней рожденья" msgid "Date font" msgstr "Шрифт даты" msgid "Calendar font" msgstr "Шрифт календаря" msgid "Note font" msgstr "Шрифт заметок" msgid "Enable block cursor" msgstr "Курсор в виде прямоугольника" msgid "Cursor thickness" msgstr "Толщина курсора" msgid "Thin" msgstr "Тонкий" msgid "Thick" msgstr "Толстый" msgid "Edit category" msgstr "Редактировать категории" msgid "Color" msgstr "Цвет" msgid "Name" msgstr "Имя" msgid "Select ICS file" msgstr "Выбрать ICS файл" msgid "All Files" msgstr "Все файлы" msgid "Calendar files (*.ics)" msgstr "Файлы календаря (*.ics)" msgid "Modify ICAL parameters" msgstr "Изменить ICAL параметры" msgid "Filename" msgstr "Имя файла" msgid "Options" msgstr "Настройки" msgid "Disabled" msgstr "Отключено" msgid "Valid" msgstr "Задействован" msgid "Description" msgstr "Описание" msgid "Full date" msgstr "Срок" msgid "Mark" msgstr "Пометка" msgid "Week start on Monday" msgstr "Неделя начинается с понедельника" msgid "Show day names" msgstr "Показывать названия дней недели" msgid "No month change" msgstr "Нет изменений месяца" msgid "Show week numbers" msgstr "Показывать номера недель" msgid "Simple view in full-year calendar" msgstr "Простой вид годичного календаря" msgid "Enable auxilary calendars" msgstr "Отображать календари других месяцев" msgid "Ascending sorting in day notes browser" msgstr "Сортировать по уменьшению в навигаторе заметок на день" msgid "Enable spell checker in day notes" msgstr "Включить проверку орфографии в заметках" msgid "Current time" msgstr "Текущее время" msgid "Show seconds" msgstr "" msgid "Day number" msgstr "Номер дня" msgid "Today distance" msgstr "Дистанция до сегодня" msgid "Marked days" msgstr "Дни с примечаниями" msgid "Week number" msgstr "Номер недели" msgid "Weekend days" msgstr "Выходные" msgid "Day category" msgstr "Категории дня" msgid "Moon phase" msgstr "Фаза Луны" msgid "Day notes" msgstr "Заметки на день" msgid "Day categories" msgstr "Категории дня" msgid "iCalendar files" msgstr "Файлы iCalendar" msgid "Show in day info panel" msgstr "В инфо панели дня показывать" msgid "Tasks list" msgstr "Список задач" #. TRANSLATORS: "No." is an abbreviation of word "number" msgid "No." msgstr "№" msgid "Summary" msgstr "Кратко" msgid "Due date" msgstr "Срок" msgid "Priority" msgstr "Приоритет" msgid "Error printing" msgstr "Ошибка печати" msgid "No birthdays defined" msgstr "Ни одного дня рождения" msgid "Birthdays list" msgstr "Список дней рождения" msgid "Days to birthday" msgstr "Дней до дня рождения" msgid "today" msgstr "сегодня" msgid "Select CSV file" msgstr "Выбрать CSV файл" msgid "CSV (comma-separated values) files (*.csv)" msgstr "CSV (значения через запятую) файлы (*.csv)" msgid "Please select file first." msgstr "Пожалуйста, выберите сначала файл." msgid "Import contacts" msgstr "Импорт контактов" msgid "Import type" msgstr "Тип импорта" msgid "File" msgstr "Файл" msgid "Input filename" msgstr "Введите имя файла" msgid "Import" msgstr "Импорт" msgid "Nothing to import." msgstr "Нечего импортировать." msgid "contact added" msgid_plural "contacts added" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "of" msgstr "из" msgid "Record" msgstr "Запись" msgid "Number fields per record" msgstr "Число полей в записи" msgid "Use first record as header" msgstr "Использовать первую запись как заголовок" msgid "Field type" msgstr "Тип поля" msgid "Value" msgstr "Значение" msgid "No records found in selected file." msgstr "Нет записей в выбранном файле." msgid "Cannot read file." msgstr "Невозможно прочесть файл." msgid "Cannot open file." msgstr "Невозможно открыть файл." msgid "Counter" msgstr "" msgid "Show calendar" msgstr "Календарь" msgid "Show tasks" msgstr "Задачи" msgid "Show contacts" msgstr "Контакты" msgid "Show notes" msgstr "Заметки" msgid "Show options" msgstr "Настройки" msgid "Quit" msgstr "Выход" msgid "Show small calendar window" msgstr "показывать маленькое окно календаря" msgid "Check for events since last run" msgstr "Проверка событий, которые произошли с момента последнего запуска." msgid "Number of days to check forward for events (default: 0)" msgstr "Проверять события на такое число дней вперед (по умолчанию 0)" msgid "Set absolute path for settings and data files" msgstr "Установить абсолютный путь до файлов настроек и данных" msgid "Match contacts with given string" msgstr "" msgid "HTML renderer stylesheet file" msgstr "" msgid "" "The user config path option is deprecated. Use XDG environment variables " "instead." msgstr "" msgid "ERROR: Cannot create config files" msgstr "ОШИБКА: Невозможно создать файл конфигурации." msgid "Another copy of OSMO is already running." msgstr "Другая копия OSMO уже запущена." msgid "" "Simultaneously use two or more copies of OSMO can be a cause of data loss." msgstr "" "Одновременно используются две или больше копии OSMO, это может привести к " "потере данных." msgid "Do you really want to continue?" msgstr "Вы действительно хотите продолжить?" #, c-format msgid "" "The old Osmo config directory %s is found. The config files and data will be " "copied to XDG compatible directories. Delete the old config directory after " "a successful migration.\n" msgstr "" #, c-format msgid "" "OSMO v%s (handy personal organizer)\n" "Copyright (c) 2007-2017 Tomasz Maka \n" "\n" "Configuration directory = %s\n" "Data directory = %s" msgstr "" #, c-format msgid "Failed to parse the command line arguments %s.\n" msgstr "" #, c-format msgid "Stylesheet file is too large. Max size is %d.\n" msgstr "" msgid "Low" msgstr "Низкий" msgid "High" msgstr "Высокий" msgid "Done!" msgstr "Готово!" msgid "contact exported" msgid_plural "contacts exported" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "Cannot create file." msgstr "Невозможно создать файл." msgid "Select output file" msgstr "Создать файл" msgid "Export contacts" msgstr "Экспорт контактов" msgid "Output format" msgstr "Вывести в формате" msgid "Add header" msgstr "Добавить заголовок" msgid "Fields to export" msgstr "Экспортируемые поля" msgid "All" msgstr "Все" msgid "Invert" msgstr "Обратить" msgid "Select fields" msgstr "Выбранные поля" msgid "Output filename" msgstr "Имя файла для вывода" msgid "Export" msgstr "Экспорт" msgid "Color of items that are due today" msgstr "Цвет пунктов, срок которых наступает сегодня" msgid "Color of items that are due in the next 7 days" msgstr "Цвет пунктов, срок которых наступает в следующие 7 дней" msgid "Color of items that are past due" msgstr "Цвет пунктов, которые просрочены" msgid "Task info font" msgstr "Шрифт задачи" msgid "Show in bold tasks with high priority" msgstr "Жирный шрифт для задач с высшим приоритетом" msgid "Hide completed tasks" msgstr "Скрывать завершенные задачи" msgid "Delete completed tasks without confirmation" msgstr "Удалять завершенные задачи без подтверждения" msgid "Add new task when double clicked on tasks list" msgstr "Добавлять новую задачу при двойном клике на список задач" msgid "Postpone time" msgstr "Время отсрочки" msgid "minutes" msgstr "минуты" msgid "0 for disable" msgstr "0 чтобы отключить" msgid "Repeat sound alarm" msgstr "Повторить звуковое предупреждение." msgid "times" msgstr "Установить время" msgid "Global notification command" msgstr "Глобальная команда оповещения" msgid "Tasks options" msgstr "Параметры задач" msgid "Reminder options" msgstr "Настройки напоминания" msgid "Insert timeline" msgstr "Вставить график" msgid "Timeline" msgstr "График" msgid "From (hour)" msgstr "С (часа)" msgid "Step (minutes)" msgstr "Шаг (минут)" msgid "To (hour)" msgstr "До (часа)" msgid "_Paste" msgstr "" msgid "Please select at least one day when recurrency is enabled." msgstr "Пожалуйста, выберите хотя бы один день, когда периодичность включена." msgid "Set time" msgstr "Установить время" msgid "Hour" msgstr "Час" msgid "Minute" msgstr "Минута" msgid "Today" msgstr "Сегодня" msgid "Tomorrow" msgstr "Завтра" msgid "Selected task will be removed." msgstr "Выбранная задача будет удалена." msgid "Select date and time" msgstr "Выберите дату и время" msgid "Enable sound notification" msgstr "Включить звуковое уведомление" msgid "Enable notification dialog" msgstr "" msgid "Alarm warning" msgstr "Напомнить" msgid "Days" msgstr "Дни" msgid "Hours" msgstr "Часы" msgid "Minutes" msgstr "Минуты" msgid "Alarm command" msgstr "Команда для напоминания" msgid "Date period" msgstr "Период даты" msgid "Months" msgstr "Месяцы" msgid "Repeat" msgstr "Повтор" msgid "Repeat in the following days" msgstr "Повторять в течении следующих дней" msgid "Time period" msgstr "Период времени" msgid "Start" msgstr "Начало" msgid "End" msgstr "Конец" msgid "Interval" msgstr "Интервал" msgid "Ignore alarm when task expired offline" msgstr "Игнорировать напоминания задач, которые просрочены" msgid "Recurrent task" msgstr "Повторяющаяся задача" msgid "Enable" msgstr "Включить" msgid "Edit task" msgstr "Редактирование задачи" msgid "Add task" msgstr "Добавление задачи" msgid "Basic" msgstr "Основное" msgid "Advanced" msgstr "Дополнительно" msgid "New Moon" msgstr "Новолунье" msgid "Waxing Crescent Moon" msgstr "Прибывает в полумесяце" msgid "Quarter Moon" msgstr "Первая четверть" msgid "Waxing Gibbous Moon" msgstr "Между первой четвертью и полнолунием" msgid "Full Moon" msgstr "Полнолуние" msgid "Waning Gibbous Moon" msgstr "Между полнолунием и последней четвертью" msgid "Last Quarter Moon" msgstr "Последняя четверть" msgid "Waning Crescent Moon" msgstr "Убывает в полумесяце" msgid "Cannot create backup!" msgstr "Невозможно создать файл резервной копии!" msgid "Save backup" msgstr "Сохранить резервную копию" msgid "Password protection" msgstr "Защита паролем" msgid "Enter password" msgstr "Введите пароль" msgid "Re-enter password" msgstr "Повторите пароль" msgid "Please enter the password" msgstr "Повторите пароль" msgid "Passwords do not match!" msgstr "Пароли не совпадают!" msgid "Backup file saved successfully!" msgstr "Файл резервной копии успешно сохранен!" msgid "Open backup file" msgstr "Открыть файл резервной копии" msgid "Osmo backup files (*.bck)" msgstr "Файлы резервных копий Osmo(*.bck)" msgid "This is not Osmo backup file" msgstr "Это не файл резервной копии Osmo" msgid "Incorrect password!" msgstr "Неверный пароль!" msgid "All your data will be replaced with backup file content." msgstr "Все ваши данные будут заменены содержимым файла резервной копии." msgid "Osmo has to be restarted now..." msgstr "Osmo будет перезагружен сейчас..." msgid "Please select address" msgstr "Пожалуйста, выберите адрес" msgid "First name" msgstr "Имя" msgid "Last name" msgstr "Фамилия" msgid "Second name" msgstr "Отчество" msgid "Nickname" msgstr "Прозвище" msgid "Tags" msgstr "Теги" msgid "Name day date" msgstr "Именины" msgid "Home address" msgstr "Домашний адрес" msgid "Home postcode" msgstr "Дом. Индекс" msgid "Home city" msgstr "Дом. Город" msgid "Home state" msgstr "Дом. Регион" msgid "Home country" msgstr "Дом. Страна" msgid "Organization" msgstr "Организация" msgid "Department" msgstr "Подразделение" msgid "Work address" msgstr "Рабочий адрес" msgid "Work postcode" msgstr "Раб. Индекс" msgid "Work city" msgstr "Раб. Город" msgid "Work state" msgstr "Раб. Регион" msgid "Work country" msgstr "Раб. Страна" msgid "Fax" msgstr "Факс" msgid "Home phone" msgstr "Домашний телефон" msgid "Home phone 2" msgstr "Домашний телефон 2" msgid "Home phone 3" msgstr "Домашний телефон 3" msgid "Home phone 4" msgstr "Домашний телефон 4" msgid "Work phone" msgstr "Рабочий телефон" msgid "Work phone 2" msgstr "Рабочий телефон 2" msgid "Work phone 3" msgstr "Рабочий телефон 3" msgid "Work phone 4" msgstr "Рабочий телефон 4" msgid "Cell phone" msgstr "Сотовый телефон" msgid "Cell phone 2" msgstr "Сотовый телефон 2" msgid "Cell phone 3" msgstr "Сотовый телефон 3" msgid "Cell phone 4" msgstr "Сотовый телефон 4" msgid "E-Mail" msgstr "Электронная почта" msgid "E-Mail 2" msgstr "Электронная почта 2" msgid "E-Mail 3" msgstr "Электронная почта 3" msgid "E-Mail 4" msgstr "Электронная почта 4" msgid "WWW" msgstr "Веб-страница" msgid "WWW 2" msgstr "Веб-страница 2" msgid "WWW 3" msgstr "Веб-страница 3" msgid "WWW 4" msgstr "Веб-страница 4" msgid "IM Gadu-Gadu" msgstr "IM Gadu-Gadu" msgid "IM Yahoo" msgstr "IM Yahoo" msgid "IM MSN" msgstr "IM MSN" msgid "IM ICQ" msgstr "IM ICQ" msgid "IM AOL" msgstr "IM AOL" msgid "IM Jabber" msgstr "IM Jabber" msgid "IM Skype" msgstr "IM Skype" msgid "IM Tlen" msgstr "IM Tlen" msgid "Blog" msgstr "Блог" msgid "Photo" msgstr "Фотография" msgid "New contact" msgstr "Новый контакт" msgid "Remove contact" msgstr "Удалить контакт" msgid "Show birthdays" msgstr "Показать дни рождения" msgid "Show contact location on the map" msgstr "Показать расположение контакта на карте" msgid "Backup data" msgstr "" msgid "Restore data" msgstr "" msgid "About" msgstr "О программе" msgid "Clear" msgstr "Очистить" msgid "First Name" msgstr "Имя" msgid "Last Name" msgstr "Фамилия" msgid "All fields" msgstr "Все поля" msgid "Contact details" msgstr "Подробности контакта" msgid "Close contact panel" msgstr "Закрыть панель контактов" msgid "The note has changed." msgstr "Заметка изменилась." msgid "Do you want to save it?" msgstr "Вы хотите сохранить?" msgid "No URLs found in the selection..." msgstr "" msgid "URLs will be opened in the default browser." msgstr "" msgid "Do you want to continue?" msgstr "" msgid "Too many links selected!" msgstr "" msgid "links opened" msgstr "" msgid "Words" msgstr "Слова" msgid "Lines" msgstr "Строки" msgid "Characters" msgstr "Символы" msgid "White characters" msgstr "Пробелы" msgid "Bytes" msgstr "Байты" msgid "Document" msgstr "Документ" msgid "Selection" msgstr "Выбор" msgid "Modified" msgstr "Изменено" msgid "New note" msgstr "Новая заметка" msgid "Edit note" msgstr "Редактирование заметки" msgid "Delete note" msgstr "Стереть заметку" msgid "Save note" msgstr "Сохранить заметку" msgid "Find" msgstr "Найти" msgid "Toggle spell checker" msgstr "Проверить орфографию" msgid "Bold" msgstr "Жирный" msgid "Italic" msgstr "Курсив" msgid "Underline" msgstr "Подчеркнутый" msgid "Strikethrough" msgstr "Зачеркнутый" msgid "Highlight" msgstr "Выделение цветом" msgid "Clear attributes" msgstr "Убрать атрибуты" msgid "Open URL links" msgstr "" msgid "Insert current date and time" msgstr "Вставить текущие дату и время" msgid "Insert separator" msgstr "Вставить разделитель" msgid "Statistics" msgstr "Статистика" msgid "Close editor" msgstr "Закрыть редактор" msgid "Note name" msgstr "Имя заметки" msgid "Read-only" msgstr "Только для чтения" msgid "Line" msgstr "Строки" msgid "Column" msgstr "Столбец" msgid "case sensitive" msgstr "с учетом регистра" msgid "Close find entry" msgstr "Закрыть поиск записи" msgid "Edit entry" msgstr "Редактирование записи" msgid "Remember cursor position" msgstr "Запомнить позицию курсора" msgid "Selected note will be removed." msgstr "Выбранная заметка будет удалена." msgid "No further data recovery will be possible." msgstr "Восстановить данные будет невозможно." msgid "Add note" msgstr "Добавление заметки" msgid "Plain" msgstr "Без шифрования" msgid "Encrypted" msgstr "Зашифровано" msgid "Note type" msgstr "Тип заметки" msgid "Cannot open the note." msgstr "Невозможно открыть заметку." msgid "encryption support is disabled" msgstr "поддержка шифрования отключена" msgid "Authorization" msgstr "Авторизация" msgid "year" msgid_plural "years" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "day" msgid_plural "days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "hour" msgid_plural "hours" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "minute" msgid_plural "minutes" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "second" msgid_plural "seconds" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "or" msgstr "или" msgid "rounded down" msgstr "округлено в меньшую сторону" msgid "week" msgid_plural "weeks" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "working day" msgid_plural "working days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "time is ignored" msgstr "время игнорируется" msgid "weekend day" msgid_plural "weekend days" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "This calculator only supports dates after year 1." msgstr "Этот калькулятор поддерживает только даты позже 1 года." msgid "weekend day ignored" msgid_plural "weekend days ignored" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "Date calculator" msgstr "Калькулятор даты" msgid "Current date" msgstr "Текущая дата" msgid "Set current date" msgstr "Установить текущую дату" msgid "Second" msgstr "Секунда" msgid "Set current time" msgstr "Установить текущее время" msgid "Reset time" msgstr "Сбросить время" msgid "First date and time" msgstr "Первая дата и время" msgid "Second date and time" msgstr "Вторая дата и время" msgid "Alternative time units" msgstr "В других единицах времени" msgid "Result" msgstr "Результат" msgid "Duration between two dates" msgstr "Срок между двумя датами" msgid "Operation" msgstr "Действие" msgid "add" msgstr "добавить" msgid "subtract" msgstr "вычесть" msgid "Date and time to add or subtract from" msgstr "Исходная дата и время" msgid "Years" msgstr "Годы" msgid "Weeks" msgstr "Недели" msgid "Seconds" msgstr "Секунды" msgid "Ignore weekend days" msgstr "Пропустить выходные" msgid "Reset fields" msgstr "Очистить поля" msgid "Time to add or subtract" msgstr "Время для добавления или вычитания" msgid "Add to or subtract from a date" msgstr "Добавление/вычитание даты и времени" msgid "Cannot perform selected operation." msgstr "Не удается выполнить выбранную операцию." msgid "Task has been modified or removed." msgstr "Задача была изменена или удалена." msgid "Remind me later" msgstr "Напомнить позже" msgid "Done" msgstr "Завершенность" msgid "Show task" msgstr "Показать задачи" msgid "Alarm warning!" msgstr "Напоминание!" msgid "postponed" msgstr "отложено" msgid "Day note" msgstr "Заметки на день" msgid "Events" msgstr "События" msgid "Event" msgstr "Событие" msgid "Task" msgstr "Задача" msgid "Birthday" msgstr "День рождения" msgid "Show Osmo" msgstr "Показать Osmo" msgid "event" msgid_plural "events" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "No valid calendars defined" msgstr "Нет календарей" msgid "iCalendar events" msgstr "iCalendar события" msgid "Time" msgstr "Время" msgid "The list will be cleared and all entries will be lost." msgstr "Список будет очищен и все записи будут утрачены." msgid "event exported" msgid_plural "events exported" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "iCalendar export" msgstr "Экспорт в iCalendar" msgid "Day Selector" msgstr "Указатель дня" msgid "Use date period" msgstr "Использовать период дат" msgid "_Add" msgstr "" msgid "_Clear" msgstr "" msgid "_Remove" msgstr "" msgid "No tasks with defined date found." msgstr "Не найдено задач для такой даты." msgid "Save tasks" msgstr "Сохранить задачи" msgid "tasks exported" msgstr "задачи экспортировано" msgid "was born" msgstr "родился" msgid "year old" msgid_plural "years old" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "day till end of year" msgid_plural "days till end of year" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" msgid "the last day of the year" msgstr "последний день года" msgid "Day tasks" msgstr "Задачи на день" msgid "Selected day note will be removed." msgstr "Выбранная заметка будет удалена." msgid "Continue?" msgstr "Продолжить?" msgid "Previous year" msgstr "Предыдущий год" msgid "Previous month" msgstr "Предыдущий месяц" msgid "Previous day" msgstr "Предыдущий день" msgid "Next day" msgstr "Следующий день" msgid "Next month" msgstr "Следующий месяц" msgid "Next year" msgstr "Следующий год" msgid "Full-year calendar" msgstr "Годичный календарь" msgid "Print calendar" msgstr "Напечатать календарь" msgid "Toggle day note panel" msgstr "Панель заметок на день" msgid "Select day color" msgstr "Выбрать цвет дня" msgid "Browse notes" msgstr "Показать заметки" msgid "Browse iCal events" msgstr "Показать события iCal" msgid "Export to iCal file" msgstr "Экспорт в файл iCal" msgid "Previous and next month" msgstr "Предыдущий и следующий месяц" msgid "Close note panel" msgstr "Закрыть панель заметок" msgid "Clear text" msgstr "Очистить текст" msgid "Info" msgstr "Информация" msgid "Select color" msgstr "Выбрать цвет" msgid "Name day" msgstr "Именины" msgid "Printing properties" msgstr "Настройка печати" msgid "Month name" msgstr "Название месяца" msgid "Day name" msgstr "Название дня" msgid "Fonts" msgstr "Шрифты" msgid "Birthdays" msgstr "День рождения" msgid "Namedays" msgstr "Именины" msgid "Visible events" msgstr "Видимые события" msgid "Padding" msgstr "Заполнить" msgid "Event maximum length" msgstr "Максимальная длинна события" msgid "Page orientation:" msgstr "Ориентация страницы" msgid "Portrait" msgstr "Портрет" msgid "Landscape" msgstr "Ланшафт" msgid "Disable background colors" msgstr "" msgid "Leap year" msgstr "Високосный год" msgid "Yes" msgstr "Да" msgid "No" msgstr "Нет" msgid "Chinese year animal" msgstr "По китайскому календарю" msgid "Number of days" msgstr "Количество дней" msgid "Number of weeks" msgstr "Количество недель" msgid "Number of weekend days" msgstr "Количество выходных дней" msgid "Year info" msgstr "Информация о годе" msgid "Alternative view" msgstr "Альтернативный вид" msgid "Started" msgstr "Началось" msgid "Finished" msgstr "Закончилось" msgid "New task" msgstr "Новая задача" msgid "Remove task" msgstr "Удалить задачу" msgid "Change due date to previous date" msgstr "Установить граничный срок на предыдущий день" msgid "Change due date to next date" msgstr "Установить граничный срок на следующий день" msgid "Export tasks" msgstr "Экспорт задач" msgid "Print visible tasks list" msgstr "Напечатать видимый список задач" msgid "Task details" msgstr "Детали задачи" msgid "Close description panel" msgstr "Закрыть панель описания" msgid "Ctrl+PageUp" msgstr "Ctrl+PageUp" msgid "switch to previous tab" msgstr "перейти на предыдущую вкладку" msgid "Ctrl+PageDn" msgstr "Ctrl+СтрВниз" msgid "switch to next tab" msgstr "перейти на следующую вкладку" msgid "switch to selected page" msgstr "перейти на выбранную страницу" msgid "show options window" msgstr "показать окно настроек" msgid "show about window" msgstr "показать окно \"О программе\"" msgid "toggle fullscreen mode" msgstr "" msgid "PageUp/PageDn" msgstr "СтрВверх/СтрВниз" msgid "switch page in options and about tab" msgstr "перейти на страницу настроек и описания" msgid "exit" msgstr "выход" msgid "Space" msgstr "Пробел" msgid "select current date" msgstr "выбрать текущую дату" msgid "Ctrl+Space" msgstr "Ctrl+Пробел" msgid "toggle personal data visibility" msgstr "сделать личные данные видимыми" msgid "Arrows" msgstr "Стрелки" msgid "change day" msgstr "изменить день" msgid "Ctrl+Up/Down" msgstr "Ctrl+Вверх/Вниз" msgid "scroll the contents in the day info panel" msgstr "прокрутить содержимое в панели информации дня" msgid "change month" msgstr "изменить месяц" msgid "Home/End" msgstr "Начало/конец строки" msgid "change year" msgstr "изменить год" msgid "toggle calendars for the previous and next month" msgstr "показать календари предыдущего и следующего месяца" msgid "day notes browser" msgstr "навигатор заметок дня" msgid "assign background color to day note" msgstr "назначить цвет фона для заметки на день" msgid "date calculator" msgstr "калькулятор даты" msgid "show full-year calendar" msgstr "показать календать всего года" msgid "jump to date" msgstr "перейти к дате" msgid "Delete" msgstr "Стереть" msgid "remove day note" msgstr "удалить заметки на день" msgid "Alt+Arrows" msgstr "Alt+Стрелка" msgid "Esc" msgstr "Esc" msgid "close editor" msgstr "закрыть редактор" msgid "toggle bold" msgstr "Вкл/выкл жирный" msgid "toggle italic" msgstr "вкл/выкл наклон" msgid "toggle underline" msgstr "вкл/выкл подчеркнутый" msgid "toggle strikethrough" msgstr "зачеркнутый" msgid "toggle highlight" msgstr "выделение цветом" msgid "Arrows Up/Down" msgstr "Стрелки вверх/вниз" msgid "toggle alternative view" msgstr "альтернативный вид" msgid "year info" msgstr "информация о годе" msgid "set current year" msgstr "текущий год" msgid "close full-year calendar" msgstr "закрыть календать всего года" msgid "Alt+a, Insert" msgstr "Alt+a, Вставка" msgid "add task" msgstr "добавить задачу" msgid "Alt+e, Ctrl+Enter" msgstr "Alt+e, Ctrl+Ввод" msgid "edit task" msgstr "редактирование задачи" msgid "Alt+r, Delete" msgstr "Alt+r, Delete" msgid "remove task" msgstr "удалить задачу" msgid "toggle hidden tasks" msgstr "показать скрытые задачи" msgid "activate search field" msgstr "активизировать поле поиска" msgid "Left, Right" msgstr "Влево, Вправо" msgid "change category filter" msgstr "изменить фильтр категории" msgid "close task info panel" msgstr "закрыть панель информации о задаче" msgid "Insert" msgstr "Вставка" msgid "add contact" msgstr "добавить контакт" msgid "Ctrl+Enter" msgstr "Ctrl+Ввод" msgid "edit contact" msgstr "редактировать контакт" msgid "remove contact" msgstr "удалить контакт" msgid "change search mode" msgstr "изменить способ поиска" msgid "close contact details panel" msgstr "закрыть панель деталей контакта" msgid "Enter" msgstr "Ввод" msgid "open note" msgstr "открыть заметку" msgid "add note" msgstr "добавить заметку" msgid "remove note" msgstr "удалить заметку" msgid "edit note name and category" msgstr "редактировать имя заметки и категорию" msgid "close note editor" msgstr "закрыть редактор заметки" msgid "save note" msgstr "сохранить заметку" msgid "find text" msgstr "найти текст" msgid "clear selection attributes" msgstr "убрать все атрибуты" msgid "open URLs" msgstr "" msgid "show document statistics" msgstr "" msgid "" "OSMO was designed keeping in mind the user convenience, so there are many " "key shortcuts. Here is the full list:" msgstr "" "OSMO был разработан, для удобства пользователей, поэтому имеет много " "комбинаций клавиш. Вот полный список:" msgid "Note editor" msgstr "Редактор заметок" msgid "Selector" msgstr "Выбор" msgid "Editor" msgstr "Редактор" msgid "A handy personal organizer" msgstr "Лёгкий персональный органайзер" msgid "compiled on" msgstr "собрано" msgid "Programming" msgstr "Программирование" msgid "Graphics" msgstr "Графика" msgid "Contributors" msgstr "Вклад" msgid "Translators" msgstr "Переводчики" msgid "Mailing lists" msgstr "Списки рассылки" msgid "Bug tracker" msgstr "Трекер Ошибок" msgid "Feature requests" msgstr "Просьбы о новых возможностях" msgid "Available modules" msgstr "Доступные модули" msgid "Compiled-in features" msgstr "Новые возможности" msgid "iCalendar support" msgstr "Поддержка iCalendar" msgid "Encrypted notes support" msgstr "Шифрование заметок" msgid "Backup support" msgstr "Поддержка резервного копирования" msgid "Printing support" msgstr "Поддержка печати" msgid "Spell checker support" msgstr "Поддержка словарей" msgid "version" msgstr "версия" msgid "GIT version" msgstr "" msgid "Key shortcuts" msgstr "Комбинации клавиш" msgid "License" msgstr "Лицензия" #~ msgid "handy personal organizer" #~ msgstr "Лёгкий персональный органайзер" osmo-0.4.2/missing0000755000175000017500000001533013075245513011021 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 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, see . # 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 case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: osmo-0.4.2/configure0000775000175000017500000072440413204317526011342 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Osmo 0.4.2. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and pasp@users.sf.net $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Osmo' PACKAGE_TARNAME='osmo' PACKAGE_VERSION='0.4.2' PACKAGE_STRING='Osmo 0.4.2' PACKAGE_BUGREPORT='pasp@users.sf.net' PACKAGE_URL='' ac_unique_file="src/contacts.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='WIN32_FALSE WIN32_TRUE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS CONFIGDIR_FALSE CONFIGDIR_TRUE configdir CONFIGPATH_FALSE CONFIGPATH_TRUE configpath PANGO_1_20_LIBS PANGO_1_20_CFLAGS HAVE_LIBWEBKIT_FALSE HAVE_LIBWEBKIT_TRUE LIBWEBKIT_LIBS LIBWEBKIT_CFLAGS HAVE_LIBNOTIFY_FALSE HAVE_LIBNOTIFY_TRUE TASKS_ENABLED_FALSE TASKS_ENABLED_TRUE LIBNOTIFY_LIBS LIBNOTIFY_CFLAGS HAVE_GSPELL_FALSE HAVE_GSPELL_TRUE GSPELL_LIBS GSPELL_CFLAGS HAVE_LIBICAL_FALSE HAVE_LIBICAL_TRUE LIBICAL_LIBS LIBICAL_CFLAGS HAVE_LIBARCHIVE_FALSE HAVE_LIBARCHIVE_TRUE LIBARCHIVE_LIBS LIBARCHIVE_CFLAGS GTHREAD_LIBS GTHREAD_CFLAGS XML_LIBS XML_CPPFLAGS XML2_CONFIG GTK_LIBS GTK_CFLAGS MSGFMT LIBOBJS EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC PKG_CONFIG AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules with_contacts with_tasks with_notes enable_dependency_tracking enable_largefile enable_gtktest with_xml_prefix with_xml_exec_prefix enable_xmltest enable_reproducible enable_debug enable_printing enable_backup with_config_path with_config_dir ' ac_precious_vars='build_alias host_alias target_alias PKG_CONFIG CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP GTHREAD_CFLAGS GTHREAD_LIBS LIBARCHIVE_CFLAGS LIBARCHIVE_LIBS LIBICAL_CFLAGS LIBICAL_LIBS GSPELL_CFLAGS GSPELL_LIBS LIBNOTIFY_CFLAGS LIBNOTIFY_LIBS LIBWEBKIT_CFLAGS LIBWEBKIT_LIBS PANGO_1_20_CFLAGS PANGO_1_20_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Osmo 0.4.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/osmo] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Osmo 0.4.2:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --disable-gtktest do not try to compile and run a test GTK+ program --disable-xmltest Do not try to compile and run a test LIBXML program --enable-reproducible=yes,no make the build reproducible (default: no) --enable-debug=yes,no compile with debugging support (default: no) --enable-printing=yes,no compile with printing support (default: yes) --enable-backup=yes,no compile with backup support (default: yes) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-contacts disable Contacts module --without-tasks disable Tasks module --without-notes disable Notes module --with-xml-prefix=PFX Prefix where libxml is installed (optional) --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional) --with-config-path=PATH use a non-default config path. Deprecated, used for the configuration migration only --with-config-dir=DIR use a non-default config directory. Deprecated, used for the configuration migration only Some influential environment variables: PKG_CONFIG path to pkg-config utility CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor GTHREAD_CFLAGS C compiler flags for GTHREAD, overriding pkg-config GTHREAD_LIBS linker flags for GTHREAD, overriding pkg-config LIBARCHIVE_CFLAGS C compiler flags for LIBARCHIVE, overriding pkg-config LIBARCHIVE_LIBS linker flags for LIBARCHIVE, overriding pkg-config LIBICAL_CFLAGS C compiler flags for LIBICAL, overriding pkg-config LIBICAL_LIBS linker flags for LIBICAL, overriding pkg-config GSPELL_CFLAGS C compiler flags for GSPELL, overriding pkg-config GSPELL_LIBS linker flags for GSPELL, overriding pkg-config LIBNOTIFY_CFLAGS C compiler flags for LIBNOTIFY, overriding pkg-config LIBNOTIFY_LIBS linker flags for LIBNOTIFY, overriding pkg-config LIBWEBKIT_CFLAGS C compiler flags for LIBWEBKIT, overriding pkg-config LIBWEBKIT_LIBS linker flags for LIBWEBKIT, overriding pkg-config PANGO_1_20_CFLAGS C compiler flags for PANGO_1_20, overriding pkg-config PANGO_1_20_LIBS linker flags for PANGO_1_20, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Osmo configure 0.4.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## -------------------------------- ## ## Report this to pasp@users.sf.net ## ## -------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Osmo $as_me 0.4.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # 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. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi 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 # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi 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 # Define the identity of the package. PACKAGE='osmo' VERSION='0.4.2' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi ac_config_headers="$ac_config_headers config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of build" >&5 $as_echo_n "checking for type of build... " >&6; } if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi # Checks for enabled modules # Check whether --with-contacts was given. if test "${with_contacts+set}" = set; then : withval=$with_contacts; if test "x$withval" = "xyes" ; then contacts="yes" ; else contacts="no"; fi else contacts="yes" fi # Check whether --with-tasks was given. if test "${with_tasks+set}" = set; then : withval=$with_tasks; if test "x$withval" = "xyes" ; then tasks="yes" ; else tasks="no"; fi else tasks="yes" fi # Check whether --with-notes was given. if test "${with_notes+set}" = set; then : withval=$with_notes; if test "x$withval" = "xyes" ; then notes="yes" ; else notes="no"; fi else notes="yes" fi if test "x$notes" = "xyes"; then $as_echo "#define NOTES_ENABLED 1" >>confdefs.h fi # Checks for programs. SAVEDFLAGS=${CFLAGS} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else 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". rm -rf conftest.dir 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_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac 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 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # 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. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; 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 ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj 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_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi CFLAGS=${SAVEDFLAGS} # Checks for header files. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in libintl.h locale.h fcntl.h stdlib.h string.h sys/time.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if ${ac_cv_func_stat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_stat_empty_string_bug=no else ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in floor memset setlocale strncasecmp strstr strtol do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Checks for msgfmt # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt" ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Checks for libraries. # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi min_gtk_version=3.10.0 pkg_config_args="gtk+-3.0 >= $min_gtk_version" for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { unsigned int major, minor, micro; fclose (fopen ("conf.gtktest", "w")); if (sscanf("$min_gtk_version", "%u.%u.%u", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%u.%u.%u) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %u.%u.%u. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" as_fn_error $? "GTK+ not found or too old (version < 3.10)" "$LINENO" 5 fi rm -f conf.gtktest # Check whether --with-xml-prefix was given. if test "${with_xml_prefix+set}" = set; then : withval=$with_xml_prefix; xml_config_prefix="$withval" else xml_config_prefix="" fi # Check whether --with-xml-exec-prefix was given. if test "${with_xml_exec_prefix+set}" = set; then : withval=$with_xml_exec_prefix; xml_config_exec_prefix="$withval" else xml_config_exec_prefix="" fi # Check whether --enable-xmltest was given. if test "${enable_xmltest+set}" = set; then : enableval=$enable_xmltest; else enable_xmltest=yes fi if test x$xml_config_exec_prefix != x ; then xml_config_args="$xml_config_args" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config fi fi if test x$xml_config_prefix != x ; then xml_config_args="$xml_config_args --prefix=$xml_config_prefix" if test x${XML2_CONFIG+set} != xset ; then XML2_CONFIG=$xml_config_prefix/bin/xml2-config fi fi # Extract the first word of "xml2-config", so it can be a program name with args. set dummy xml2-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XML2_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $XML2_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_XML2_CONFIG="$XML2_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_XML2_CONFIG" && ac_cv_path_XML2_CONFIG="no" ;; esac fi XML2_CONFIG=$ac_cv_path_XML2_CONFIG if test -n "$XML2_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XML2_CONFIG" >&5 $as_echo "$XML2_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_xml_version=2.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml - version >= $min_xml_version" >&5 $as_echo_n "checking for libxml - version >= $min_xml_version... " >&6; } no_xml="" if test "$XML2_CONFIG" = "no" ; then no_xml=yes else XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags` XML_LIBS=`$XML2_CONFIG $xml_config_args --libs` xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_xmltest" = "xyes" ; then ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS" LIBS="$XML_LIBS $LIBS" rm -f conf.xmltest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main() { int xml_major_version, xml_minor_version, xml_micro_version; int major, minor, micro; char *tmp_version; system("touch conf.xmltest"); /* Capture xml2-config output via autoconf/configure variables */ /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = (char *)strdup("$min_xml_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string from xml2-config\n", "$min_xml_version"); exit(1); } free(tmp_version); /* Capture the version information from the header files */ tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION); if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) { printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION"); exit(1); } free(tmp_version); /* Compare xml2-config output to the libxml headers */ if ((xml_major_version != $xml_config_major_version) || (xml_minor_version != $xml_config_minor_version) || (xml_micro_version != $xml_config_micro_version)) { printf("*** libxml header files (version %d.%d.%d) do not match\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** xml2-config (version %d.%d.%d)\n", $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version); return 1; } /* Compare the headers to the library to make sure we match */ /* Less than ideal -- doesn't provide us with return value feedback, * only exits if there's a serious mismatch between header and library. */ LIBXML_TEST_VERSION; /* Test that the library is greater than our minimum version */ if ((xml_major_version > major) || ((xml_major_version == major) && (xml_minor_version > minor)) || ((xml_major_version == major) && (xml_minor_version == minor) && (xml_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of libxml (%d.%d.%d) was found.\n", xml_major_version, xml_minor_version, xml_micro_version); printf("*** You need a version of libxml newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** libxml is always available from ftp://ftp.xmlsoft.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the xml2-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n"); printf("*** correct copy of xml2-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_xml=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_xml" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)" >&5 $as_echo "yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version)" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$XML2_CONFIG" = "no" ; then echo "*** The xml2-config script installed by LIBXML could not be found" echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the XML2_CONFIG environment variable to the" echo "*** full path to xml2-config." else if test -f conf.xmltest ; then : else echo "*** Could not run libxml test program, checking why..." CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS" LIBS="$LIBS $XML_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { LIBXML_TEST_VERSION; return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBXML or finding the wrong" echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBXML was incorrectly installed" echo "*** or that you have moved LIBXML since it was installed. In the latter case, you" echo "*** may want to edit the xml2-config script: $XML2_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" fi fi XML_CPPFLAGS="" XML_LIBS="" as_fn_error $? "You do not appear to have libxml2 installed." "$LINENO" 5 fi rm -f conf.xmltest pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5 $as_echo_n "checking for GTHREAD... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GTHREAD_CFLAGS"; then pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GTHREAD_LIBS"; then pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.6.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.6.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gthread-2.0 >= 2.6.0"` else GTHREAD_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 >= 2.6.0"` fi # Put the nasty error message in config.log where it belongs echo "$GTHREAD_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gthread-2.0 >= 2.6.0) were not met: $GTHREAD_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTHREAD_CFLAGS and GTHREAD_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " "$LINENO" 5 elif test $pkg_failed = untried; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTHREAD_CFLAGS and GTHREAD_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi # Checks for libgringotts { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grg_context_initialize_defaults in -lgringotts" >&5 $as_echo_n "checking for grg_context_initialize_defaults in -lgringotts... " >&6; } if ${ac_cv_lib_gringotts_grg_context_initialize_defaults+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgringotts $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char grg_context_initialize_defaults (); int main () { return grg_context_initialize_defaults (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gringotts_grg_context_initialize_defaults=yes else ac_cv_lib_gringotts_grg_context_initialize_defaults=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gringotts_grg_context_initialize_defaults" >&5 $as_echo "$ac_cv_lib_gringotts_grg_context_initialize_defaults" >&6; } if test "x$ac_cv_lib_gringotts_grg_context_initialize_defaults" = xyes; then : lib=yes else lib=no fi libgringotts="no" if test "$lib" = "yes"; then libgringotts="yes" fi if test "x$lib" = "xyes"; then gringotts_LIBS="-lgringotts" $as_echo "#define HAVE_LIBGRINGOTTS 1" >>confdefs.h fi # Checks for libarchive pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBARCHIVE" >&5 $as_echo_n "checking for LIBARCHIVE... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBARCHIVE_CFLAGS"; then pkg_cv_LIBARCHIVE_CFLAGS="$LIBARCHIVE_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libarchive >= 3.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libarchive >= 3.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBARCHIVE_CFLAGS=`$PKG_CONFIG --cflags "libarchive >= 3.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBARCHIVE_LIBS"; then pkg_cv_LIBARCHIVE_LIBS="$LIBARCHIVE_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libarchive >= 3.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libarchive >= 3.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBARCHIVE_LIBS=`$PKG_CONFIG --libs "libarchive >= 3.0.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBARCHIVE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libarchive >= 3.0.0"` else LIBARCHIVE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libarchive >= 3.0.0"` fi # Put the nasty error message in config.log where it belongs echo "$LIBARCHIVE_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_libarchive=false elif test $pkg_failed = untried; then have_libarchive=false else LIBARCHIVE_CFLAGS=$pkg_cv_LIBARCHIVE_CFLAGS LIBARCHIVE_LIBS=$pkg_cv_LIBARCHIVE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_libarchive=true fi if test "x$have_libarchive" = "xtrue"; then libarchive="yes" libarchive_LIBS="-larchive" $as_echo "#define HAVE_LIBARCHIVE 1" >>confdefs.h else libarchive="no" fi if test "x$have_libarchive" = "xtrue"; then HAVE_LIBARCHIVE_TRUE= HAVE_LIBARCHIVE_FALSE='#' else HAVE_LIBARCHIVE_TRUE='#' HAVE_LIBARCHIVE_FALSE= fi # Checks for libsqlite3 #PKG_CHECK_MODULES(LIBSQLITE3, sqlite3 >= 3.7.0, have_libsqlite3=true, # have_libsqlite3=false) #if test "x$have_libsqlite3" = "xtrue"; then # AC_DEFINE([HAVE_LIBSQLITE3], [1], [Definded to 1 if compile with libsqlite3 support]) # libsqlite3="yes" #else # libsqlite3="no" #fi #AM_CONDITIONAL([HAVE_LIBSQLITE3], test "x$have_libsqlite3" = "xtrue") # Checks for libical pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBICAL" >&5 $as_echo_n "checking for LIBICAL... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBICAL_CFLAGS"; then pkg_cv_LIBICAL_CFLAGS="$LIBICAL_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libical >= 1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libical >= 1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBICAL_CFLAGS=`$PKG_CONFIG --cflags "libical >= 1.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBICAL_LIBS"; then pkg_cv_LIBICAL_LIBS="$LIBICAL_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libical >= 1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libical >= 1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBICAL_LIBS=`$PKG_CONFIG --libs "libical >= 1.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBICAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libical >= 1.0"` else LIBICAL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libical >= 1.0"` fi # Put the nasty error message in config.log where it belongs echo "$LIBICAL_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_libical=false elif test $pkg_failed = untried; then have_libical=false else LIBICAL_CFLAGS=$pkg_cv_LIBICAL_CFLAGS LIBICAL_LIBS=$pkg_cv_LIBICAL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_libical=true fi if test "x$have_libical" = "xtrue"; then $as_echo "#define HAVE_LIBICAL 1" >>confdefs.h libical="yes" else libical="no" fi if test "x$have_libical" = "xtrue"; then HAVE_LIBICAL_TRUE= HAVE_LIBICAL_FALSE='#' else HAVE_LIBICAL_TRUE='#' HAVE_LIBICAL_FALSE= fi # Checks for gspell pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSPELL" >&5 $as_echo_n "checking for GSPELL... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSPELL_CFLAGS"; then pkg_cv_GSPELL_CFLAGS="$GSPELL_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gspell-1 >= 1.2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gspell-1 >= 1.2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSPELL_CFLAGS=`$PKG_CONFIG --cflags "gspell-1 >= 1.2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSPELL_LIBS"; then pkg_cv_GSPELL_LIBS="$GSPELL_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gspell-1 >= 1.2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gspell-1 >= 1.2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSPELL_LIBS=`$PKG_CONFIG --libs "gspell-1 >= 1.2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSPELL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gspell-1 >= 1.2.0"` else GSPELL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gspell-1 >= 1.2.0"` fi # Put the nasty error message in config.log where it belongs echo "$GSPELL_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_gspell=false elif test $pkg_failed = untried; then have_gspell=false else GSPELL_CFLAGS=$pkg_cv_GSPELL_CFLAGS GSPELL_LIBS=$pkg_cv_GSPELL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gspell=true fi if test "x$have_gspell" = "xtrue"; then $as_echo "#define HAVE_GSPELL 1" >>confdefs.h gspell="yes" else gspell="no" fi if test "x$have_gspell" = "xtrue"; then HAVE_GSPELL_TRUE= HAVE_GSPELL_FALSE='#' else HAVE_GSPELL_TRUE='#' HAVE_GSPELL_FALSE= fi # Checks for libnotify pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNOTIFY" >&5 $as_echo_n "checking for LIBNOTIFY... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBNOTIFY_CFLAGS"; then pkg_cv_LIBNOTIFY_CFLAGS="$LIBNOTIFY_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.7.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libnotify >= 0.7.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBNOTIFY_CFLAGS=`$PKG_CONFIG --cflags "libnotify >= 0.7.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBNOTIFY_LIBS"; then pkg_cv_LIBNOTIFY_LIBS="$LIBNOTIFY_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.7.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libnotify >= 0.7.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBNOTIFY_LIBS=`$PKG_CONFIG --libs "libnotify >= 0.7.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libnotify >= 0.7.0"` else LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libnotify >= 0.7.0"` fi # Put the nasty error message in config.log where it belongs echo "$LIBNOTIFY_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_libnotify7=false elif test $pkg_failed = untried; then have_libnotify7=false else LIBNOTIFY_CFLAGS=$pkg_cv_LIBNOTIFY_CFLAGS LIBNOTIFY_LIBS=$pkg_cv_LIBNOTIFY_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_libnotify7=true fi if test "x$have_libnotify7" = "xtrue"; then $as_echo "#define HAVE_LIBNOTIFY 1" >>confdefs.h $as_echo "#define HAVE_LIBNOTIFY7 1" >>confdefs.h libnotify="yes" else pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNOTIFY" >&5 $as_echo_n "checking for LIBNOTIFY... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBNOTIFY_CFLAGS"; then pkg_cv_LIBNOTIFY_CFLAGS="$LIBNOTIFY_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.4.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "libnotify >= 0.4.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBNOTIFY_CFLAGS=`$PKG_CONFIG --cflags "libnotify >= 0.4.4" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBNOTIFY_LIBS"; then pkg_cv_LIBNOTIFY_LIBS="$LIBNOTIFY_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnotify >= 0.4.4\""; } >&5 ($PKG_CONFIG --exists --print-errors "libnotify >= 0.4.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBNOTIFY_LIBS=`$PKG_CONFIG --libs "libnotify >= 0.4.4" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libnotify >= 0.4.4"` else LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libnotify >= 0.4.4"` fi # Put the nasty error message in config.log where it belongs echo "$LIBNOTIFY_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_libnotify=false elif test $pkg_failed = untried; then have_libnotify=false else LIBNOTIFY_CFLAGS=$pkg_cv_LIBNOTIFY_CFLAGS LIBNOTIFY_LIBS=$pkg_cv_LIBNOTIFY_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_libnotify=true fi if test "x$have_libnotify" = "xtrue"; then $as_echo "#define HAVE_LIBNOTIFY 1" >>confdefs.h libnotify="yes" else libnotify="no" fi fi if test "x$tasks" = "xyes"; then TASKS_ENABLED_TRUE= TASKS_ENABLED_FALSE='#' else TASKS_ENABLED_TRUE='#' TASKS_ENABLED_FALSE= fi if test "x$have_libnotify" = "xtrue"; then HAVE_LIBNOTIFY_TRUE= HAVE_LIBNOTIFY_FALSE='#' else HAVE_LIBNOTIFY_TRUE='#' HAVE_LIBNOTIFY_FALSE= fi if test "x$tasks" = "xyes"; then $as_echo "#define TASKS_ENABLED 1" >>confdefs.h fi # Checks for libwebkit pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBWEBKIT" >&5 $as_echo_n "checking for LIBWEBKIT... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBWEBKIT_CFLAGS"; then pkg_cv_LIBWEBKIT_CFLAGS="$LIBWEBKIT_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBWEBKIT_CFLAGS=`$PKG_CONFIG --cflags "webkit2gtk-4.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$LIBWEBKIT_LIBS"; then pkg_cv_LIBWEBKIT_LIBS="$LIBWEBKIT_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"webkit2gtk-4.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "webkit2gtk-4.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBWEBKIT_LIBS=`$PKG_CONFIG --libs "webkit2gtk-4.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBWEBKIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "webkit2gtk-4.0 >= 2.4.0"` else LIBWEBKIT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "webkit2gtk-4.0 >= 2.4.0"` fi # Put the nasty error message in config.log where it belongs echo "$LIBWEBKIT_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_libwebkit=false elif test $pkg_failed = untried; then have_libwebkit=false else LIBWEBKIT_CFLAGS=$pkg_cv_LIBWEBKIT_CFLAGS LIBWEBKIT_LIBS=$pkg_cv_LIBWEBKIT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_libwebkit=true fi if test "x$have_libwebkit" = "xtrue"; then libwebkit="yes" else libwebkit="no" fi contacts="yes"; htmlrender="no"; if test "x$have_libwebkit" = "xfalse"; then contacts="no"; else htmlrender="webkit"; contacts="yes"; $as_echo "#define HAVE_LIBWEBKIT 1" >>confdefs.h $as_echo "#define HTMLRENDER \"webkit\"" >>confdefs.h fi if test "x$libwebkit" = "xyes"; then HAVE_LIBWEBKIT_TRUE= HAVE_LIBWEBKIT_FALSE='#' else HAVE_LIBWEBKIT_TRUE='#' HAVE_LIBWEBKIT_FALSE= fi if test "x$contacts" = "xyes"; then $as_echo "#define CONTACTS_ENABLED 1" >>confdefs.h fi # Checks for Pango 1.20 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO_1_20" >&5 $as_echo_n "checking for PANGO_1_20... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PANGO_1_20_CFLAGS"; then pkg_cv_PANGO_1_20_CFLAGS="$PANGO_1_20_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5 ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PANGO_1_20_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.20" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$PANGO_1_20_LIBS"; then pkg_cv_PANGO_1_20_LIBS="$PANGO_1_20_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5 ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PANGO_1_20_LIBS=`$PKG_CONFIG --libs "pango >= 1.20" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PANGO_1_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "pango >= 1.20"` else PANGO_1_20_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pango >= 1.20"` fi # Put the nasty error message in config.log where it belongs echo "$PANGO_1_20_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } HAVE_PANGO_1_20=no elif test $pkg_failed = untried; then HAVE_PANGO_1_20=no else PANGO_1_20_CFLAGS=$pkg_cv_PANGO_1_20_CFLAGS PANGO_1_20_LIBS=$pkg_cv_PANGO_1_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } HAVE_PANGO_1_20=yes fi if test "x$HAVE_PANGO_1_20" = xyes; then $as_echo "#define HAVE_PANGO_1_20 1" >>confdefs.h fi # Checks for additional options # Check whether --enable-reproducible was given. if test "${enable_reproducible+set}" = set; then : enableval=$enable_reproducible; reproducible="$enableval" else reproducible="no" fi if test "x$reproducible" = "xyes"; then $as_echo "#define REPRODUCIBLE_BUILD 1" >>confdefs.h fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; debug="$enableval" else debug="no" fi if test "x$debug" = "xyes"; then BUILD_CFLAGS="-rdynamic -ggdb -g -O0" $as_echo "#define DEBUG_BUILD 1" >>confdefs.h fi # Check whether --enable-printing was given. if test "${enable_printing+set}" = set; then : enableval=$enable_printing; printing="$enableval" else printing="yes" fi if test "x$printing" = "xyes"; then $as_echo "#define PRINTING_SUPPORT 1" >>confdefs.h fi # Check whether --enable-backup was given. if test "${enable_backup+set}" = set; then : enableval=$enable_backup; backup="$enableval" else backup="yes" fi if test "x$backup" = "xyes"; then if test "x$libarchive" = "xyes"; then if test "x$libgringotts" = "xyes"; then $as_echo "#define BACKUP_SUPPORT 1" >>confdefs.h else backup="no" fi else backup="no" fi fi # Check whether --with-config-path was given. if test "${with_config_path+set}" = set; then : withval=$with_config_path; configpath=$withval fi if test x$configpath != x; then CONFIGPATH_TRUE= CONFIGPATH_FALSE='#' else CONFIGPATH_TRUE='#' CONFIGPATH_FALSE= fi # Check whether --with-config-dir was given. if test "${with_config_dir+set}" = set; then : withval=$with_config_dir; configdir=$withval fi if test x$configdir != x; then CONFIGDIR_TRUE= CONFIGDIR_FALSE='#' else CONFIGDIR_TRUE='#' CONFIGDIR_FALSE= fi CFLAGS=${CFLAGS:="$BUILD_CFLAGS -Wall $PLATFORM_CFLAGS -D_GNU_SOURCE"} CXXFLAGS=${CXXFLAGS:="$CFLAGS"} CPPFLAGS="" LIBS="$gringotts_LIBS $libarchive_LIBS" ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile data/Makefile data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/icons/scalable/Makefile data/pixmaps/Makefile data/sounds/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBARCHIVE_TRUE}" && test -z "${HAVE_LIBARCHIVE_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBARCHIVE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBICAL_TRUE}" && test -z "${HAVE_LIBICAL_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBICAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GSPELL_TRUE}" && test -z "${HAVE_GSPELL_FALSE}"; then as_fn_error $? "conditional \"HAVE_GSPELL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${TASKS_ENABLED_TRUE}" && test -z "${TASKS_ENABLED_FALSE}"; then as_fn_error $? "conditional \"TASKS_ENABLED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBNOTIFY_TRUE}" && test -z "${HAVE_LIBNOTIFY_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBNOTIFY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBWEBKIT_TRUE}" && test -z "${HAVE_LIBWEBKIT_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBWEBKIT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CONFIGPATH_TRUE}" && test -z "${CONFIGPATH_FALSE}"; then as_fn_error $? "conditional \"CONFIGPATH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CONFIGDIR_TRUE}" && test -z "${CONFIGDIR_FALSE}"; then as_fn_error $? "conditional \"CONFIGDIR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Osmo $as_me 0.4.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Osmo config.status 0.4.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/icons/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/16x16/Makefile" ;; "data/icons/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/22x22/Makefile" ;; "data/icons/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/24x24/Makefile" ;; "data/icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/32x32/Makefile" ;; "data/icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/48x48/Makefile" ;; "data/icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/scalable/Makefile" ;; "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;; "data/sounds/Makefile") CONFIG_FILES="$CONFIG_FILES data/sounds/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` 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"` # 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'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # WIN32 build if test "$WIN32" = "yes"; then WIN32_TRUE= WIN32_FALSE='#' else WIN32_TRUE='#' WIN32_FALSE= fi # libsqlite3: $libsqlite3 echo " Configuration: Prefix: $prefix Debug enabled: $debug Reproducible build: $reproducible Backup support: $backup (libgringotts and libarchive are required) Printing support: $printing HTML renderer: $htmlrender Enabled modules: Calendar: yes (always) Tasks: $tasks Contacts: $contacts (HTML renderer is required) Notes: $notes Optional features: gspell: $gspell libical: $libical libnotify: $libnotify libarchive: $libarchive libgringotts: $libgringotts "