+Version 0.4.1 (Sep 15, 2007):
+ - bugfix: compatibility with new versions of pdftoppm (thanks to V. Ciancia)
+ - GTK+ 2.11 event processing bugfix
+ - minor bugfixes: hand tool, handling of filenames containing '&'
+ - desktop and MIME files (thanks to Mathieu Bouchard) + updated installer
+ - config options: left-handed scrollbar (contributed by Uwe Winter),
+ hide some menu items (customizable in config file), auto-save preferences
+
Version 0.4.0.1 (Sep 3, 2007):
- bugfixes for GTK+ 2.11 behavior (thanks to everyone who reported bugs)
./autogen.sh
make
(as root) make install
-
+(as root) make desktop-install
Installation in $HOME:
./configure --prefix=$HOME
make
make install
+make home-desktop-install
EXTRA_DIST = \
autogen.sh \
- xournal.glade \
- xournal.gladep \
- maemo/xournal.desktop \
- maemo/xournal.service
+ xournal.glade xournal.gladep \
+ xournal.xml x-xoj.desktop xournal.desktop \
+ maemo/xournal.desktop maemo/xournal.service
install-data-local:
@$(NORMAL_INSTALL)
if test ! -e $(DESTDIR)$(pkgdatadir)/html-doc/pixmaps; then \
ln -s ../pixmaps $(DESTDIR)$(pkgdatadir)/html-doc/pixmaps; \
fi \
+ fi; \
+ echo "*** Desktop files, icons, MIME types not installed. Run 'make desktop-install'"; \
+ echo "*** (or 'make home-desktop-install' for installation in a home directory)."
+
+desktop-install:
+ if test "$(datadir)" = "/usr/share"; then \
+ desktopdir=/usr/share; \
+ else \
+ desktopdir=/usr/local/share; \
+ fi; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/mime/packages; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/applications; \
+ $(mkinstalldirs) $(DESTDIR)/usr/share/mimelnk/application; \
+ $(INSTALL_DATA) $(srcdir)/pixmaps/xournal.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+ $(INSTALL_DATA) $(srcdir)/pixmaps/xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+ if test ! -e $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then \
+ ln -s xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/xournal.xml $(DESTDIR)$$desktopdir/mime/packages; \
+ $(INSTALL_DATA) $(srcdir)/xournal.desktop $(DESTDIR)$$desktopdir/applications; \
+ $(INSTALL_DATA) $(srcdir)/x-xoj.desktop $(DESTDIR)/usr/share/mimelnk/application; \
+ if test -z "$(DESTDIR)"; then \
+ echo "Updating desktop, mime, and icon databases."; \
+ update-desktop-database; \
+ update-mime-database $$desktopdir/mime; \
+ gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor; \
+ else \
+ echo "*** Not updating desktop, mime, and icon databases. After install, run:"; \
+ echo "*** update-desktop-database"; \
+ echo "*** update-mime-database $$desktopdir/mime"; \
+ echo "*** gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor"; \
+ fi
+
+home-desktop-install:
+ desktopdir=$(HOME)/.local/share; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/mime/packages; \
+ $(mkinstalldirs) $(DESTDIR)$$desktopdir/applications; \
+ $(mkinstalldirs) $(DESTDIR)$(HOME)/.kde/share/mimelnk/application; \
+ $(INSTALL_DATA) $(srcdir)/pixmaps/xournal.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+ $(INSTALL_DATA) $(srcdir)/pixmaps/xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+ if test ! -e $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then \
+ ln -s xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; \
+ fi; \
+ $(INSTALL_DATA) $(srcdir)/xournal.xml $(DESTDIR)$$desktopdir/mime/packages; \
+ $(INSTALL_DATA) $(srcdir)/xournal.desktop $(DESTDIR)$$desktopdir/applications; \
+ $(INSTALL_DATA) $(srcdir)/x-xoj.desktop $(DESTDIR)$(HOME)/.kde/share/mimelnk/application; \
+ if test -z "$(DESTDIR)"; then \
+ echo "Updating desktop, mime, and icon databases."; \
+ XDG_DATA_DIRS=$(HOME)/.local/share update-desktop-database; \
+ update-mime-database $$desktopdir/mime; \
+ gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor; \
+ else \
+ echo "*** Not updating desktop, mime, and icon databases. After install, run:"; \
+ echo "*** update-desktop-database"; \
+ echo "*** update-mime-database $$desktopdir/mime"; \
+ echo "*** gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor"; \
fi
dist-hook:
-Version 0.4.0.1 (September 3, 2007)
+Version 0.4.1 (September 15, 2007)
Installation: see INSTALL
User's manual: see html-doc/manual.html
-Version 0.4.0.1 (September 3, 2007)
+Version 0.4.1 (September 15, 2007)
Installation: see INSTALL
User's manual: see html-doc/manual.html
dnl Process this file with autoconf to produce a configure script.
AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(xournal, 0.4.0.1)
+AM_INIT_AUTOMAKE(xournal, 0.4.1)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
Xournal User's Manual
</h2>
<p style="font-size: 0.95em; text-align: center; color: rgb(0,0,0)">
- Version 0.4.0.1
+ Version 0.4.1
</p>
<hr />
<p>
<a name="changelog"></a>
<h2 class="subtitle">Version history</h2>
<p>
+Version 0.4.1 (Sep 15, 2007):
+<ul>
+ <li> bugfix: compatibility with new versions of pdftoppm (thanks to
+ Vincenzo Ciancia)</li>
+ <li>GTK+ 2.11 event processing bugfix</li>
+ <li>minor bugfixes: hand tool, handling of filenames containing '&'</li>
+ <li>desktop and MIME files (thanks to Mathieu Bouchard) + updated installer</li>
+ <li>config options: left-handed scrollbar (contributed by Uwe Winter),
+ hide some menu items (customizable in config file), auto-save
+ preferences</li>
+</ul>
+</p>
+<p>
Version 0.4.0.1 (September 3, 2007):
<ul>
<li>bugfixes for GTK+ 2.11 behavior (thanks to everyone who reported bugs)</li>
./autogen.sh
make
(as root) make install
+(as root) make desktop-install
</pre>
</p>
<p>
./configure --prefix=$HOME
make
make install
+make home-desktop-install
</pre>
</p>
<p><b>Configure error message:</b> <br />
echo "Press Control-C to abort, or Enter to proceed."
read
+ echo "Installing xournal in /usr/local/bin..."
test -z /usr/local/bin || mkdir -p /usr/local/bin
install -c src/xournal /usr/local/bin/xournal
+ echo "Installing pixmaps in /usr/local/share/xournal/pixmaps..."
install -d /usr/local/share/xournal/pixmaps
for pixmap in pixmaps/*; do
install -c -m 644 $pixmap /usr/local/share/xournal/pixmaps
done
+ echo "Installing html-doc in /usr/local/share/xournal/html-doc..."
install -d /usr/local/share/xournal/html-doc
for docfile in html-doc/*; do
if test -f $docfile; then
if test ! -e /usr/local/share/xournal/html-doc/pixmaps; then
ln -s ../pixmaps /usr/local/share/xournal/html-doc/pixmaps
fi
+
+ echo "Installing desktop files and MIME info in /usr/local/share and /usr/share/mimelnk..."
+ install -d /usr/local/share/icons/hicolor/scalable/apps
+ install -d /usr/local/share/icons/hicolor/scalable/mimetypes
+ install -d /usr/share/mimelnk/application
+ install -d /usr/local/share/mime/packages
+ install -d /usr/local/share/applications
+ install -c -m 644 pixmaps/xournal.svg /usr/local/share/icons/hicolor/scalable/apps
+ install -c -m 644 pixmaps/xoj.svg /usr/local/share/icons/hicolor/scalable/mimetypes
+ if test ! -e /usr/local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then
+ ln -s xoj.svg /usr/local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg
+ fi
+ install -c -m 644 x-xoj.desktop /usr/share/mimelnk/application
+ install -c -m 644 xournal.xml /usr/local/share/mime/packages
+ install -c -m 644 xournal.desktop /usr/local/share/applications
+ update-desktop-database
+ update-mime-database /usr/local/share/mime
+ gtk-update-icon-cache -f -t /usr/local/share/icons/hicolor
else
echo "To install xournal in /usr/local, you must run this installer as root."
echo "This installer will now attempt to install xournal in your home directory."
location=$HOME/bin
fi
+ echo "Installing xournal in $location..."
test -z $location || mkdir -p $location
install -c src/xournal $location/xournal
+ echo "Installing pixmaps in $location/pixmaps..."
install -d $location/pixmaps
for pixmap in pixmaps/*; do
install -c -m 644 $pixmap $location/pixmaps
done
+ echo "Installing html-doc in $location/html-doc..."
install -d $location/html-doc
for docfile in html-doc/*; do
if test -f $docfile; then
if test ! -e $location/html-doc/pixmaps; then
ln -s ../pixmaps $location/html-doc/pixmaps
fi
+
+ echo "Installing desktop files and MIME info in $HOME/.local..."
+ install -d $HOME/.local/share/icons/hicolor/scalable/apps
+ install -d $HOME/.local/share/icons/hicolor/scalable/mimetypes
+ install -d $HOME/.kde/share/mimelnk/application
+ install -d $HOME/.local/share/mime/packages
+ install -d $HOME/.local/share/applications
+ install -c -m 644 pixmaps/xournal.svg $HOME/.local/share/icons/hicolor/scalable/apps
+ install -c -m 644 pixmaps/xoj.svg $HOME/.local/share/icons/hicolor/scalable/mimetypes
+ if test ! -e $HOME/.local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then
+ ln -s xoj.svg $HOME/.local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg
+ fi
+ install -c -m 644 x-xoj.desktop $HOME/.kde/share/mimelnk/application
+ install -c -m 644 xournal.xml $HOME/.local/share/mime/packages
+ install -c -m 644 xournal.desktop $HOME/.local/share/applications
+ XDG_DATA_DIRS=$HOME/.local/share update-desktop-database
+ update-mime-database $HOME/.local/share/mime
+ gtk-update-icon-cache -f -t $HOME/.local/share/icons/hicolor
fi
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 10.0.3, SVG Export Plug-In . SVG Version: 3.0.0 Build 77) -->
+<svg
+ xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="128"
+ height="128"
+ viewBox="0 0 128 128"
+ overflow="visible"
+ enable-background="new 0 0 128 128"
+ xml:space="preserve"
+ id="svg2326"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docname="xoj.svg"
+ sodipodi:docbase="/home/mbouchar/src/debian/xournal/0.4/xournal-0.4/debian"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+ id="metadata2428"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs2426"><linearGradient
+ id="linearGradient9952"
+ inkscape:collect="always"><stop
+ id="stop9954"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" /><stop
+ id="stop9956"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9952"
+ id="linearGradient1544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+ x1="55.876038"
+ y1="62.401989"
+ x2="38.061356"
+ y2="62.827091" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9910"
+ id="linearGradient1542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+ x1="28.244684"
+ y1="60.445503"
+ x2="28.244684"
+ y2="68.224884" /><linearGradient
+ id="linearGradient9920"><stop
+ style="stop-color:#5b90c8;stop-opacity:1;"
+ offset="0"
+ id="stop9922" /><stop
+ id="stop9924"
+ offset="0.31578946"
+ style="stop-color:#8fb0d1;stop-opacity:1;" /><stop
+ style="stop-color:#34679d;stop-opacity:1;"
+ offset="1"
+ id="stop9926" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9920"
+ id="linearGradient1540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+ x1="28.244684"
+ y1="60.445503"
+ x2="28.244684"
+ y2="68.224884" /><linearGradient
+ id="linearGradient9910"><stop
+ id="stop9912"
+ offset="0"
+ style="stop-color:#729fcf;stop-opacity:1;" /><stop
+ style="stop-color:#a5bfda;stop-opacity:1;"
+ offset="0.31578946"
+ id="stop9918" /><stop
+ id="stop9914"
+ offset="1"
+ style="stop-color:#376ca4;stop-opacity:1;" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9910"
+ id="linearGradient1538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+ x1="28.244684"
+ y1="60.445503"
+ x2="28.244684"
+ y2="68.224884" /></defs><sodipodi:namedview
+ inkscape:window-height="877"
+ inkscape:window-width="1052"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="2"
+ inkscape:cx="55.768863"
+ inkscape:cy="113.05075"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="g2329" />
+ <g
+ id="Layer_1">
+ <g
+ id="g2329">
+ <g
+ id="g2331">
+ <path
+ fill="#FFFFFF"
+ d="M121.164,1.052H6.836v125.896h80.701l33.627-33.627V1.052z"
+ id="path2333" />
+ <linearGradient
+ id="XMLID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="63.9204"
+ y1="154.5645"
+ x2="63.9204"
+ y2="-100.9347">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop2336" />
+ <stop
+ offset="0.2457"
+ style="stop-color:#F6F6F6"
+ id="stop2338" />
+ <stop
+ offset="0.6374"
+ style="stop-color:#DFDFDF"
+ id="stop2340" />
+ <stop
+ offset="1"
+ style="stop-color:#C4C4C4"
+ id="stop2342" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.6045"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#C4C4C4" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_1_)"
+ d="M117.734,4.019H10.266l-0.16,122.654h76.457l31.172-31.252V4.019z"
+ id="path2344" />
+ <linearGradient
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="-26.333"
+ y1="-26.333"
+ x2="56.1662"
+ y2="56.1662">
+ <stop
+ offset="0"
+ style="stop-color:#B3B3B3"
+ id="stop2347" />
+ <stop
+ offset="1"
+ style="stop-color:#828282"
+ id="stop2349" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B3B3B3" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B3B3B3" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#828282" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_2_)"
+ d="M121.164,0.552H6.336v126.896h81.408l33.92-33.92V0.552H121.164z M120.664,1.552 c0,0.987,0,91.152,0,91.562c-0.289,0.289-33.045,33.045-33.334,33.334c-0.41,0-79.01,0-79.994,0c0-0.988,0-123.909,0-124.896 C8.322,1.552,119.678,1.552,120.664,1.552z"
+ id="path2351" />
+ <linearGradient
+ id="XMLID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="43.0229"
+ y1="25.4214"
+ x2="204.0073"
+ y2="111.0652">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop2354" />
+ <stop
+ offset="0.8603"
+ style="stop-color:#DADADA"
+ id="stop2356" />
+ <stop
+ offset="1"
+ style="stop-color:#D4D4D4"
+ id="stop2358" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5254"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#D4D4D4" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_3_)"
+ d="M118.006,15.223V3.94H10.199l-0.096,65.34c9.975,4.547,21.151,7.096,32.954,7.096 C80.402,76.376,111.455,48.876,118.006,15.223z"
+ id="path2360" />
+ </g>
+ <linearGradient
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="-3.7275"
+ y1="10.6514"
+ x2="127.5933"
+ y2="10.6514">
+ <stop
+ offset="0"
+ style="stop-color:#B3CAFF"
+ id="stop2363" />
+ <stop
+ offset="1"
+ style="stop-color:#0053BD"
+ id="stop2365" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B3CAFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B3CAFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#0053BD" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_4_)"
+ d="M117.692,17.023H10.308V4.279h107.385V17.023z"
+ id="path2367" />
+
+ <g
+ id="g2384">
+
+ <radialGradient
+ id="XMLID_6_"
+ cx="108.4668"
+ cy="118.249"
+ r="34.7364"
+ fx="108.4668"
+ fy="118.249"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000"
+ id="stop2387" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop2389" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#000000" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#000000" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </radialGradient>
+ <path
+ opacity="0.1"
+ fill="url(#XMLID_6_)"
+ d="M85.191,90.976v35.754h1.793l33.639-33.639v-2.115H85.191z"
+ id="path2391" />
+ <path
+ fill="#FFFFFF"
+ d="M87.537,126.948l33.627-33.627H87.537V126.948z"
+ id="path2393" />
+ <linearGradient
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="104.0166"
+ y1="98.1807"
+ x2="95.0883"
+ y2="135.7938">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop2396" />
+ <stop
+ offset="1"
+ style="stop-color:#CCCCCC"
+ id="stop2398" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_7_)"
+ d="M89.865,125.056l29.594-29.592H89.865V125.056z"
+ id="path2400" />
+ <linearGradient
+ id="XMLID_8_"
+ gradientUnits="userSpaceOnUse"
+ x1="82.3086"
+ y1="88.0928"
+ x2="96.1043"
+ y2="101.8885">
+ <stop
+ offset="0"
+ style="stop-color:#B3B3B3"
+ id="stop2403" />
+ <stop
+ offset="1"
+ style="stop-color:#828282"
+ id="stop2405" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B3B3B3" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B3B3B3" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#828282" />
+ </linearGradient>
+ <path
+ fill="url(#XMLID_8_)"
+ d="M87.537,92.821c-0.277,0-0.5,0.223-0.5,0.5v33.627c0,0.203,0.121,0.385,0.309,0.463 c0.186,0.076,0.402,0.033,0.545-0.109l33.627-33.627c0.143-0.145,0.186-0.359,0.109-0.545c-0.078-0.188-0.26-0.309-0.463-0.309 H87.537z M119.957,93.821c-1.58,1.578-30.342,30.34-31.92,31.92c0-2.209,0-30.986,0-31.92 C88.971,93.821,117.748,93.821,119.957,93.821z"
+ id="path2407" />
+ </g>
+ <g
+ id="g2409">
+
+
+
+
+
+ <path
+ d="M 14.533455,15 L 17.421455,10.5 L 14.799455,6.359 L 16.773455,6.359 L 18.422455,8.939 L 20.078455,6.359 L 22.049455,6.359 L 19.419455,10.498 L 22.299455,15 L 20.270455,15 L 18.417455,12.075 L 16.559455,15 L 14.533455,15 z "
+ id="path2421"
+ style="fill:#ffffff" />
+ <path
+ d="M 35.724995,6.4604787 L 37.458995,6.4604787 L 37.458995,11.906479 C 37.458995,12.618479 37.395995,13.166479 37.270995,13.550479 C 37.102995,14.051479 36.797995,14.452479 36.356995,14.756479 C 35.914995,15.059479 35.332995,15.211479 34.608995,15.211479 C 33.760995,15.211479 33.107995,14.971479 32.650995,14.492479 C 32.192995,14.013479 31.962995,13.310479 31.958995,12.383479 L 33.599995,12.195479 C 33.619995,12.695479 33.690995,13.049479 33.815995,13.256479 C 34.002995,13.570479 34.286995,13.727479 34.667995,13.727479 C 35.052995,13.727479 35.325995,13.617479 35.484995,13.395479 C 35.644995,13.174479 35.724995,12.715479 35.724995,12.019479 L 35.724995,6.4604787 L 35.724995,6.4604787 z "
+ id="path2776"
+ style="fill:#ffffff" /></g>
+ <path
+ d="M 22.502167,10.888479 C 22.502167,10.011479 22.632167,9.2754787 22.894167,8.6794787 C 23.089167,8.2414787 23.356167,7.8474787 23.694167,7.4984787 C 24.032167,7.1494787 24.402167,6.8914787 24.804167,6.7234787 C 25.339167,6.4964787 25.956167,6.3824787 26.655167,6.3824787 C 27.920167,6.3824787 28.932167,6.7764787 29.692167,7.5634787 C 30.451167,8.3504787 30.831167,9.4454787 30.831167,10.847479 C 30.831167,12.238479 30.454167,13.326479 29.701167,14.111479 C 28.947167,14.896479 27.940167,15.289479 26.679167,15.289479 C 25.402167,15.289479 24.387167,14.898479 23.634167,14.117479 C 22.878167,13.335479 22.502167,12.259479 22.502167,10.888479 z M 24.283167,10.829479 C 24.283167,11.805479 24.508167,12.545479 24.959167,13.048479 C 25.410167,13.551479 25.981167,13.803479 26.675167,13.803479 C 27.369167,13.803479 27.937167,13.553479 28.382167,13.053479 C 28.827167,12.553479 29.049167,11.804479 29.049167,10.804479 C 29.049167,9.8174787 28.833167,9.0794787 28.400167,8.5944787 C 27.967167,8.1094787 27.392167,7.8654787 26.675167,7.8654787 C 25.958167,7.8654787 25.380167,8.1114787 24.941167,8.6034787 C 24.502167,9.0964787 24.283167,9.8384787 24.283167,10.829479 z "
+ style="fill:#ffffff"
+ id="path3243" /><path
+ style="font-size:62.90097427px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Andy MT"
+ d="M 56.378404,53.727644 C 56.668877,54.044686 57.440051,54.748517 58.691911,55.839135 C 76.26413,72.746011 84.710366,82.212429 84.030658,84.238414 C 83.542134,85.728697 82.133994,86.992396 79.806235,88.029514 C 77.482319,89.006293 75.388674,89.449224 73.525301,89.358281 C 72.049981,89.286317 65.045123,82.161374 52.510691,67.983438 C 49.981499,65.013564 48.496025,63.336141 48.054267,62.951159 C 46.217767,64.799641 43.472596,68.602352 39.818747,74.359305 C 36.246459,80.059738 33.765764,84.571838 32.376657,87.895625 C 34.806155,86.500085 36.797364,85.840188 38.350293,85.915942 C 39.126687,85.953843 39.642135,86.40294 39.896636,87.263235 C 40.232698,88.066979 40.252215,88.946109 39.95519,89.900625 C 39.678117,90.553327 37.804116,91.794295 34.33318,93.623537 C 31.833974,94.894575 30.255777,95.786591 29.59858,96.2996 C 27.565246,97.59337 26.159852,99.40227 25.382393,101.72633 C 24.299788,105.12565 21.545641,106.71734 17.119954,106.5014 C 14.790614,106.38775 13.35947,105.65172 12.826525,104.29331 C 12.293546,102.93489 12.511493,100.8258 13.480366,97.96599 C 15.340414,92.242619 24.285789,78.355714 40.316531,56.305247 C 40.225329,55.33182 37.928391,51.797888 33.425692,45.703433 C 28.922916,39.60909 25.348113,35.376885 22.701276,33.006805 C 19.833476,30.444392 18.639798,28.478386 19.120241,27.108783 C 20.202794,23.709537 23.616911,22.150045 29.362604,22.43031 C 32.15776,22.566772 37.139648,27.89722 44.308294,38.421666 C 47.370341,42.750047 49.376015,45.391592 50.325311,46.346312 C 51.978351,44.912928 54.33478,42.272245 57.394595,38.424256 C 60.458301,34.516024 62.57704,31.348952 63.750835,28.923025 C 64.912472,26.678352 66.744903,24.890281 69.248153,23.5588 C 71.751253,22.227483 74.128678,21.616715 76.380435,21.726501 C 79.874332,21.897057 81.138905,23.382012 80.174144,26.181363 C 79.091486,29.580762 72.791895,37.055854 61.275357,48.606664 C 58.27165,51.609486 56.63934,53.316475 56.378404,53.727644"
+ id="text1485" /><g
+ id="g1528"
+ transform="matrix(2.8576126,0.4391838,-0.4588303,2.7352402,-115.43399,-24.508237)"><path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ sodipodi:nodetypes="cszsc"
+ id="path9903"
+ d="M 64.323851,23.753654 C 63.706163,23.328472 61.957281,24.862952 60.381466,27.152239 C 58.80565,29.441527 58.478283,31.954496 58.614374,32.048174 C 58.766049,32.152578 60.980944,30.938876 62.55676,28.649588 C 64.132575,26.3603 64.94154,24.178835 64.323851,23.753654 z "
+ style="color:#000000;fill:#e7e7e7;fill-opacity:1;fill-rule:evenodd;stroke:#7d7d7d;stroke-width:0.69999969;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><g
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ transform="matrix(-0.55721,5.78064e-2,5.78064e-2,0.55721,79.96601,2.590748)"
+ id="g9975"><path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1.25350261;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path9905"
+ sodipodi:cx="40.1875"
+ sodipodi:cy="62"
+ sodipodi:rx="13.0625"
+ sodipodi:ry="5.5"
+ d="M 32.085889,57.685642 A 13.0625,5.5 0 0 1 52.946432,60.821161"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ sodipodi:start="4.0433671"
+ sodipodi:end="6.067175"
+ sodipodi:open="true"
+ transform="matrix(-0.56251,-0.817194,0.825069,-0.567931,-15.22056,83.88674)" /><path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1.25350261;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path9907"
+ sodipodi:cx="33.5"
+ sodipodi:cy="54.9375"
+ sodipodi:rx="3"
+ sodipodi:ry="1.5625"
+ d="M 36.364517,54.473244 A 3,1.5625 0 0 1 30.693831,55.490029 L 33.5,54.9375 z"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true"
+ sodipodi:start="5.9815064"
+ sodipodi:end="9.0633414"
+ transform="matrix(-0.56251,-0.817194,0.825069,-0.567931,-14.28556,81.45324)" /></g><path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path9898"
+ d="M 68.220855,22.03384 C 66.161588,24.942137 64.137874,27.460945 62.467865,29.270908 L 59.760605,27.407384 C 60.993535,24.922104 62.913702,21.706016 65.241996,18.323557 C 69.444736,12.21797 73.612295,7.5665296 75.260752,7.0147343 C 75.311342,6.9987019 75.379183,6.9775974 75.424823,6.9695952 C 75.456909,6.9647079 75.504446,6.9663697 75.533931,6.9656604 C 75.580264,6.9658747 75.63967,6.975441 75.679136,6.9865735 C 75.688784,6.989702 75.718329,6.9897217 75.727538,6.9935444 C 75.736526,6.997714 75.755092,7.0135223 75.763635,7.0183914 C 75.767794,7.0210008 75.777636,7.0280287 75.781683,7.0308147 C 75.785731,7.0336007 75.795809,7.0402845 75.799732,7.0432381 C 75.807329,7.0494797 75.828724,7.0611783 75.835828,7.068085 C 75.842686,7.075322 75.853253,7.1029128 75.85962,7.1108081 C 75.884109,7.1436991 75.914254,7.1957743 75.930996,7.2389772 C 75.940861,7.2667725 75.959385,7.3105836 75.966275,7.3423002 C 75.975094,7.3877889 75.979602,7.4586944 75.982687,7.511674 C 76.055791,9.2484938 73.198804,14.802057 68.996063,20.907645 C 68.73456,21.287548 68.481406,21.665863 68.220855,22.03384 z "
+ style="color:#000000;fill:url(#linearGradient1538);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path9893"
+ d="M 71.416857,17.699951 C 70.893924,18.433249 70.352189,19.137828 69.837722,19.800844 L 66.047558,17.19191 C 66.667225,16.171651 67.355385,15.098728 68.098369,14.019347 C 71.644431,8.8677579 75.303395,5.042076 76.878437,4.7032625 C 76.892273,4.7005267 76.925638,4.6945386 76.939144,4.6923573 C 76.952484,4.6904538 76.986846,4.6827969 76.999851,4.6814522 C 77.031942,4.67879 77.079004,4.6766455 77.108959,4.6775174 C 77.120769,4.6781515 77.145901,4.6832822 77.157361,4.6844884 C 77.191215,4.6889688 77.241564,4.701155 77.272212,4.7108538 C 77.282248,4.7143793 77.310943,4.7137117 77.320615,4.7178248 C 77.334846,4.7244363 77.361358,4.74715 77.37476,4.7550951 C 77.379134,4.7578925 77.388527,4.7645722 77.392808,4.7675187 C 77.397089,4.7704652 77.406682,4.776855 77.410856,4.779942 C 77.423062,4.7896242 77.453744,4.8062785 77.465001,4.8172126 C 77.472296,4.8247781 77.481917,4.85182 77.488793,4.8599357 C 77.508796,4.8851017 77.538154,4.9277816 77.554426,4.9578055 C 77.559644,4.9680796 77.573409,4.9897239 77.578218,5.0005286 C 77.589727,5.0281981 77.604526,5.0729245 77.613497,5.1038512 C 77.616883,5.1164787 77.621999,5.1513102 77.624984,5.1644504 C 77.627768,5.1778446 77.634086,5.2111484 77.636471,5.2250495 C 77.882309,6.8172541 75.61508,11.600927 72.069017,16.752517 C 71.848374,17.07306 71.637752,17.390195 71.416857,17.699951 z "
+ style="color:#000000;fill:url(#linearGradient1540);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+ inkscape:r_cy="true"
+ inkscape:r_cx="true"
+ id="path9888"
+ d="M 76.697261,8.7148938 L 74.026098,6.8762164 C 75.443506,5.2908747 76.722887,4.3117038 77.413414,4.3511484 C 77.417819,4.3514872 77.434616,4.3522365 77.438973,4.3526605 C 77.44328,4.3531691 77.460274,4.3535789 77.464532,4.3541722 C 77.46874,4.354851 77.485934,4.3549196 77.490092,4.3556839 C 77.514737,4.3607826 77.554504,4.375343 77.577307,4.3835542 C 77.581056,4.3850098 77.59166,4.3944343 77.595355,4.3959775 C 77.599,4.3976079 77.617324,4.3957711 77.620915,4.3974898 C 77.624452,4.3992965 77.635479,4.4080185 77.638963,4.4099134 C 77.642394,4.4118966 77.653635,4.4202647 77.657011,4.4223368 C 77.660335,4.4244975 77.671791,4.4325104 77.67506,4.4347604 C 77.678329,4.4370105 77.689904,4.4448509 77.693108,4.4471838 C 77.696249,4.4495983 77.708079,4.4571105 77.711157,4.4596074 C 77.714171,4.4621857 77.726255,4.4693715 77.729205,4.4720307 C 77.732093,4.4747711 77.736919,4.4925441 77.739743,4.4953655 C 77.742504,4.4982671 77.755093,4.5048071 77.757791,4.5077888 C 77.773602,4.5261576 77.8014,4.5581054 77.814963,4.5793067 C 77.817161,4.5829179 77.823364,4.5989533 77.8255,4.6026421 C 77.827574,4.6064079 77.834025,4.6221353 77.836038,4.6259773 C 77.837989,4.6298956 77.844685,4.6453173 77.846575,4.6493122 C 78.129953,5.2802475 77.672078,6.8248978 76.697261,8.7148938 z "
+ style="color:#000000;fill:url(#linearGradient1542);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+ sodipodi:nodetypes="cccszsc"
+ id="path9930"
+ d="M 70.245095,17.972588 C 70.112917,18.159708 69.980402,18.334049 69.849098,18.517294 L 67.224383,16.708474 C 67.58359,16.163635 68.090072,15.27492 68.467754,14.708463 C 72.816017,8.1868296 77.077705,4.9281066 77.255374,5.0497893 C 77.450812,5.1836414 75.740229,10.283755 71.307249,16.444573 C 71.046975,16.806293 70.495538,17.618044 70.245095,17.972588 z "
+ style="opacity:0.35714285;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1544);stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" /></g></g>
+ <path
+ fill="none"
+ d="M128,128H0V0h128V128z"
+ id="path2423" />
+ </g>
+</svg>
\ No newline at end of file
List of features to be implemented (not in any particular order)
----------------------------------------------------------------
-- hand tool bug: upon page change, keeps scrolling till end of document
- paste text directly into xournal, from xournal?
(instead of starting a text item and pasting into/from it)
- internationalization / translation of interface
-- fix: & in bgpdf file name must be quoted to & in save_journal()
-- integration into desktop environment (document icons/previews?
- mime type? click on xoj opens it? list app in start menu?)
+- a command + keyboard shortcut to switch between mappings (1<->2, 1<->3)
+ (A. Rechnitzer Sept 11, 2007)
- rewrite printing using GtkPrint + Cairo as GnomePrint replacement
(keep GnomePrint option for compatibility with GTK+ <2.10)
- xournal_page-shadow.diff (Martin Kiefel Feb 5 2007)
pages by parsing pdf info rather than generating bitmaps for all of them.
- win32 port (Matteo Abrate)
- snap-to-grid tool? (Matteo Abrate)
-- option to auto-save preferences on exit (Michele Codutti)
- EPOS 7/24/07: Thumbnails pane
- EPOS: Connect to EPOS api which sends A4 mapped points
- EPOS: Cut and Paste into OpenOffice applications and the GIMP (as bitmap??)
- EPOS: Export pages to pictures in the Jpg and Png formats.
- EPOS: Rotate Ink in custom angle.
+- handwriting recognition???? (cellwriter?) unlikely. we don't have grids
+- handwritten stroke search in document (see cellwriter?)
- option: export to PDF with incremental pages for successive layers
(for presentations) (Daniel Brugarth 8/18/07)
- render page to bitmap: for export, preview, and copy-paste
-- cut-and-paste of selection into other apps (as bitmap)
+ (render using libart, see how gnomecanvas does it?)
+ (copy-paste: config option to render only current layer or all below?)
+- cut-and-paste of selection into other apps (as bitmap; as SVG?)
+- ability to select entire page for copy-paste (as bitmap / reorder xournal)
- Lukasz Kaiser 8/15/07 shapes patch (approximate stroke by geometric shapes)
(make it an optional mode of the pen, like the ruler)
(rewrite without gsl dependency?)
- (config file should be in share/...)
+ (config file should be loaded from share/... and .xournal/...)
(disconnected shapes: add timestamps to strokes?)
- Samuel Hoffstaetter: lasso, gettext localization, sidebar thumbnails, ...
-- left-hand patch: Uwe Winter 8/27/07 (xournal-lefthand.patch)
double DEFAULT_ZOOM;
-void hide_unimplemented(void)
-{
- gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
- gtk_widget_hide(GET_COMPONENT("journalFlatten"));
- gtk_widget_hide(GET_COMPONENT("papercolorOther"));
- gtk_widget_hide(GET_COMPONENT("toolsSelectRegion"));
- gtk_widget_hide(GET_COMPONENT("buttonSelectRegion"));
- gtk_widget_hide(GET_COMPONENT("button2SelectRegion"));
- gtk_widget_hide(GET_COMPONENT("button3SelectRegion"));
- gtk_widget_hide(GET_COMPONENT("colorOther"));
- gtk_widget_hide(GET_COMPONENT("helpIndex"));
-}
-
void init_stuff (int argc, char *argv[])
{
GtkWidget *w;
gtk_widget_set_sensitive(GET_COMPONENT("optionsUseXInput"), FALSE);
ui.use_xinput = ui.allow_xinput && can_xinput;
- gtk_widget_set_extension_events(GTK_WIDGET (canvas),
- ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
- gtk_check_menu_item_set_active(
- GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsUseXInput")), ui.use_xinput);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAntialiasBG")), ui.antialias_bg);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsProgressiveBG")), ui.progressive_bg);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsPrintRuling")), ui.print_ruling);
-
- hide_unimplemented();
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsLeftHanded")), ui.left_handed);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsShortenMenus")), ui.shorten_menus);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAutoSavePrefs")), ui.auto_save_prefs);
- /* config file only works with glib 2.6 */
- if (glib_minor_version<6) {
- gtk_widget_hide(GET_COMPONENT("optionsSavePreferences"));
- }
-
+ hide_unimplemented();
+
update_undo_redo_enabled();
update_copy_paste_enabled();
update_vbox_order(ui.vertical_order[ui.fullscreen?1:0]);
gtk_widget_show (winMain);
update_cursor();
+
+ /* this will cause extension events to get enabled/disabled, but
+ we need the windows to be mapped first */
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsUseXInput")), ui.use_xinput);
// load the MRU
if (bgpdf.status != STATUS_NOT_INIT) end_bgpdf_shutdown();
save_mru_list();
+ if (ui.auto_save_prefs) save_config_to_file();
return 0;
}
}
journal.pages = g_list_remove(journal.pages, redo->page);
journal.npages--;
- if (ui.pageno > undo->val || ui.pageno == journal.npages) ui.pageno--;
+ if (ui.pageno > redo->val || ui.pageno == journal.npages) ui.pageno--;
ui.cur_page = NULL;
// so do_switch_page() won't try to remap the layers of the defunct page
do_switch_page(ui.pageno, TRUE, TRUE);
if (ui.toolno[mapping] == TOOL_HAND) {
ui.cur_item_type = ITEM_HAND;
get_pointer_coords((GdkEvent *)event, ui.hand_refpt);
+ ui.hand_refpt[0] += ui.cur_page->hoffset;
+ ui.hand_refpt[1] += ui.cur_page->voffset;
}
else if (ui.toolno[mapping] == TOOL_PEN || ui.toolno[mapping] == TOOL_HIGHLIGHTER ||
(ui.toolno[mapping] == TOOL_ERASER && ui.cur_brush->tool_options == TOOLOPT_ERASER_WHITEOUT)) {
reset_focus();
ui.allow_xinput = ui.use_xinput =
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
- gtk_widget_set_extension_events(GTK_WIDGET (canvas),
+
+/* Important note: we'd like ONLY the canvas window itself to receive
+ XInput events, while its child window in the GDK hierarchy (also
+ associated to the canvas widget) receives the core events.
+ This way on_canvas_... will get both types of events -- otherwise,
+ the proximity detection code in GDK is broken and we'll lose core
+ events.
+
+ Up to GTK+ 2.10, gtk_widget_set_extension_events() only sets
+ extension events for the widget's main window itself; in GTK+ 2.11
+ also traverses GDK child windows that belong to the widget
+ and sets their extension events too. We want to avoid that.
+ So we use gdk_input_set_extension_events() directly on the canvas.
+*/
+
+/* // this causes GTK+ 2.11 bugs
+ gtk_widget_set_extension_events(GTK_WIDGET (canvas),
ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+*/
+ gdk_input_set_extension_events(GTK_WIDGET(canvas)->window,
+ GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK,
+ ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+
update_mappings_menu();
}
process_font_sel(str);
}
+void
+on_optionsLeftHanded_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ end_text();
+ reset_focus();
+ ui.left_handed = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+ gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(GET_COMPONENT("scrolledwindowMain")),
+ ui.left_handed?GTK_CORNER_TOP_RIGHT:GTK_CORNER_TOP_LEFT);
+}
+
+void
+on_optionsShortenMenus_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ gchar *item, *nextptr;
+ GtkWidget *w;
+
+ end_text();
+ reset_focus();
+ ui.shorten_menus = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+
+ /* go over the item list */
+ item = ui.shorten_menu_items;
+ while (*item==' ') item++;
+ while (*item) {
+ nextptr = strchr(item, ' ');
+ if (nextptr!=NULL) *nextptr = 0;
+ // hide or show the item
+ w = GET_COMPONENT(item);
+ if (w != NULL) {
+ if (ui.shorten_menus) gtk_widget_hide(w);
+ else gtk_widget_show(w);
+ }
+ // next item
+ if (nextptr==NULL) break;
+ *nextptr = ' ';
+ item = nextptr;
+ while (*item==' ') item++;
+ }
+
+ // just in case someone tried to unhide stuff they shouldn't be seeing
+ hide_unimplemented();
+ // maybe we should also make sure the drawing area stays visible ?
+}
+
+void
+on_optionsAutoSavePrefs_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ end_text();
+ reset_focus();
+ ui.auto_save_prefs = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+}
+
gpointer user_data);
void
-on_toggletoolClicked (GtkToolButton *toolbutton,
+on_optionsLeftHanded_activate (GtkMenuItem *menuitem,
gpointer user_data);
+
+void
+on_optionsShortenMenus_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_optionsAutoSavePrefs_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
}
g_free(tmpfn);
}
+ tmpstr = g_markup_escape_text(pg->bg->filename->s, -1);
gzprintf(f, "domain=\"%s\" filename=\"%s\" ",
- file_domain_names[pg->bg->file_domain], pg->bg->filename->s);
+ file_domain_names[pg->bg->file_domain], tmpstr);
+ g_free(tmpstr);
}
}
else if (pg->bg->type == BG_PDF) {
}
g_free(tmpfn);
}
+ tmpstr = g_markup_escape_text(pg->bg->filename->s, -1);
gzprintf(f, "domain=\"%s\" filename=\"%s\" ",
- file_domain_names[pg->bg->file_domain], pg->bg->filename->s);
+ file_domain_names[pg->bg->file_domain], tmpstr);
+ g_free(tmpstr);
}
gzprintf(f, "pageno=\"%d\" ", pg->bg->file_page_seq);
}
gzprintf(f, "\n</stroke>\n");
}
if (item->type == ITEM_TEXT) {
+ tmpstr = g_markup_escape_text(item->font_name, -1);
gzprintf(f, "<text font=\"%s\" size=\"%.2f\" x=\"%.2f\" y=\"%.2f\" color=\"",
- item->font_name, item->font_size, item->bbox.left, item->bbox.top);
+ tmpstr, item->font_size, item->bbox.left, item->bbox.top);
+ g_free(tmpstr);
if (item->brush.color_no >= 0)
gzputs(f, color_names[item->brush.color_no]);
else
tmpstr = g_markup_escape_text(item->text, -1);
gzprintf(f, "\">%s</text>\n", tmpstr);
g_free(tmpstr);
-
}
}
gzprintf(f, "</layer>\n");
ui.view_continuous = TRUE;
ui.allow_xinput = TRUE;
ui.discard_corepointer = FALSE;
+ ui.left_handed = FALSE;
+ ui.shorten_menus = FALSE;
+ ui.shorten_menu_items = g_strdup(DEFAULT_SHORTEN_MENUS);
+ ui.auto_save_prefs = FALSE;
ui.bg_apply_all_pages = FALSE;
ui.use_erasertip = FALSE;
ui.window_default_width = 720;
update_keyval("general", "interface_fullscreen",
" interface components in fullscreen mode, from top to bottom",
verbose_vertical_order(ui.vertical_order[1]));
+ update_keyval("general", "interface_lefthanded",
+ " interface has left-handed scrollbar (true/false)",
+ g_strdup(ui.left_handed?"true":"false"));
+ update_keyval("general", "shorten_menus",
+ " hide some unwanted menu or toolbar items (true/false)",
+ g_strdup(ui.shorten_menus?"true":"false"));
+ update_keyval("general", "shorten_menu_items",
+ " interface items to hide (customize at your own risk!)\n see source file xo-interface.c for a list of item names",
+ g_strdup(ui.shorten_menu_items));
update_keyval("general", "highlighter_opacity",
" highlighter opacity (0 to 1, default 0.5)\n warning: opacity level is not saved in xoj files!",
g_strdup_printf("%.2f", ui.hiliter_opacity));
+ update_keyval("general", "autosave_prefs",
+ " auto-save preferences on exit (true/false)",
+ g_strdup(ui.auto_save_prefs?"true":"false"));
update_keyval("paper", "width",
" the default page width, in points (1/72 in)",
parse_keyval_string("general", "default_path", &ui.default_path);
parse_keyval_vorderlist("general", "interface_order", ui.vertical_order[0]);
parse_keyval_vorderlist("general", "interface_fullscreen", ui.vertical_order[1]);
+ parse_keyval_boolean("general", "interface_lefthanded", &ui.left_handed);
+ parse_keyval_boolean("general", "shorten_menus", &ui.shorten_menus);
+ if (parse_keyval_string("general", "shorten_menu_items", &str))
+ if (str!=NULL) { g_free(ui.shorten_menu_items); ui.shorten_menu_items = str; }
parse_keyval_float("general", "highlighter_opacity", &ui.hiliter_opacity, 0., 1.);
+ parse_keyval_boolean("general", "autosave_prefs", &ui.auto_save_prefs);
parse_keyval_float("paper", "width", &ui.default_page.width, 1., 5000.);
parse_keyval_float("paper", "height", &ui.default_page.height, 1., 5000.);
+#define DEFAULT_SHORTEN_MENUS \
+ "optionsAntialiasBG optionsProgressiveBG optionsLeftHanded"
+
#define GS_CMDLINE \
"gs -sDEVICE=bmp16m -r%f -q -sOutputFile=- " \
"-dNOPAUSE -dBATCH -dEPSCrop -dTextAlphaBits=4 -dGraphicsAlphaBits=4 %s"
GtkWidget *optionsAntialiasBG;
GtkWidget *optionsProgressiveBG;
GtkWidget *optionsPrintRuling;
+ GtkWidget *optionsLeftHanded;
+ GtkWidget *optionsShortenMenus;
GtkWidget *separator21;
+ GtkWidget *optionsAutoSavePrefs;
GtkWidget *optionsSavePreferences;
GtkWidget *menuHelp;
GtkWidget *menuHelp_menu;
gtk_widget_show (optionsPrintRuling);
gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsPrintRuling);
+ optionsLeftHanded = gtk_check_menu_item_new_with_mnemonic ("Left-Handed Scrollbar");
+ gtk_widget_show (optionsLeftHanded);
+ gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsLeftHanded);
+
+ optionsShortenMenus = gtk_check_menu_item_new_with_mnemonic ("Shorten _Menus");
+ gtk_widget_show (optionsShortenMenus);
+ gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsShortenMenus);
+
separator21 = gtk_separator_menu_item_new ();
gtk_widget_show (separator21);
gtk_container_add (GTK_CONTAINER (menuOptions_menu), separator21);
gtk_widget_set_sensitive (separator21, FALSE);
+ optionsAutoSavePrefs = gtk_check_menu_item_new_with_mnemonic ("A_uto-Save Preferences");
+ gtk_widget_show (optionsAutoSavePrefs);
+ gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsAutoSavePrefs);
+
optionsSavePreferences = gtk_menu_item_new_with_mnemonic ("_Save Preferences");
gtk_widget_show (optionsSavePreferences);
gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsSavePreferences);
g_signal_connect ((gpointer) optionsPrintRuling, "activate",
G_CALLBACK (on_optionsPrintRuling_activate),
NULL);
+ g_signal_connect ((gpointer) optionsLeftHanded, "toggled",
+ G_CALLBACK (on_optionsLeftHanded_activate),
+ NULL);
+ g_signal_connect ((gpointer) optionsShortenMenus, "toggled",
+ G_CALLBACK (on_optionsShortenMenus_activate),
+ NULL);
+ g_signal_connect ((gpointer) optionsAutoSavePrefs, "toggled",
+ G_CALLBACK (on_optionsAutoSavePrefs_activate),
+ NULL);
g_signal_connect ((gpointer) optionsSavePreferences, "activate",
G_CALLBACK (on_optionsSavePreferences_activate),
NULL);
GLADE_HOOKUP_OBJECT (winMain, optionsAntialiasBG, "optionsAntialiasBG");
GLADE_HOOKUP_OBJECT (winMain, optionsProgressiveBG, "optionsProgressiveBG");
GLADE_HOOKUP_OBJECT (winMain, optionsPrintRuling, "optionsPrintRuling");
+ GLADE_HOOKUP_OBJECT (winMain, optionsLeftHanded, "optionsLeftHanded");
+ GLADE_HOOKUP_OBJECT (winMain, optionsShortenMenus, "optionsShortenMenus");
GLADE_HOOKUP_OBJECT (winMain, separator21, "separator21");
+ GLADE_HOOKUP_OBJECT (winMain, optionsAutoSavePrefs, "optionsAutoSavePrefs");
GLADE_HOOKUP_OBJECT (winMain, optionsSavePreferences, "optionsSavePreferences");
GLADE_HOOKUP_OBJECT (winMain, menuHelp, "menuHelp");
GLADE_HOOKUP_OBJECT (winMain, menuHelp_menu, "menuHelp_menu");
void update_mappings_menu(void)
{
gtk_widget_set_sensitive(GET_COMPONENT("optionsButtonMappings"), ui.use_xinput);
- gtk_widget_set_sensitive(GET_COMPONENT("optionsDiscardCoreEvents"),
- ui.use_xinput && (gtk_check_version(2, 11, 0)!=NULL));
+ gtk_widget_set_sensitive(GET_COMPONENT("optionsDiscardCoreEvents"), ui.use_xinput);
gtk_check_menu_item_set_active(
GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsButtonMappings")), ui.use_erasertip);
gtk_check_menu_item_set_active(
if (pt[1]<ui.cur_item->bbox.top || pt[1]>ui.cur_item->bbox.bottom) return FALSE;
return TRUE;
}
+
+void hide_unimplemented(void)
+{
+ gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
+ gtk_widget_hide(GET_COMPONENT("journalFlatten"));
+ gtk_widget_hide(GET_COMPONENT("papercolorOther"));
+ gtk_widget_hide(GET_COMPONENT("toolsSelectRegion"));
+ gtk_widget_hide(GET_COMPONENT("buttonSelectRegion"));
+ gtk_widget_hide(GET_COMPONENT("button2SelectRegion"));
+ gtk_widget_hide(GET_COMPONENT("button3SelectRegion"));
+ gtk_widget_hide(GET_COMPONENT("colorOther"));
+ gtk_widget_hide(GET_COMPONENT("helpIndex"));
+
+ /* config file only works with glib 2.6 */
+ if (glib_minor_version<6) {
+ gtk_widget_hide(GET_COMPONENT("optionsAutoSavePrefs"));
+ gtk_widget_hide(GET_COMPONENT("optionsSavePreferences"));
+ }
+}
gboolean is_event_within_textview(GdkEventButton *event);
+void hide_unimplemented(void);
+
// defines for paper rulings
#define RULING_MARGIN_COLOR 0xff0080ff
int cx, cy;
get_pointer_coords(event, pt);
+ pt[0] += ui.cur_page->hoffset;
+ pt[1] += ui.cur_page->voffset;
gnome_canvas_get_scroll_offsets(canvas, &cx, &cy);
ui.hand_scrollto_cx = cx - (pt[0]-ui.hand_refpt[0])*ui.zoom;
ui.hand_scrollto_cy = cy - (pt[1]-ui.hand_refpt[1])*ui.zoom;
gulong resize_signal_handler;
gdouble hiliter_opacity;
guint hiliter_alpha_mask;
+ gboolean left_handed; // left-handed mode?
+ gboolean auto_save_prefs; // auto-save preferences ?
+ gboolean shorten_menus; // shorten menus ?
+ gchar *shorten_menu_items; // which items to hide
} UIData;
#define BRUSH_LINKED 0
--- /dev/null
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-xoj
+Icon=xoj
+Patterns=*.xoj;*.XOJ;*.Xoj;
+
+Comment=Xournal note file
+Comment[fr]=Fichier Xournal
--- /dev/null
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+
+Name=Xournal
+Comment=Take handwritten notes
+Name[fr]=Xournal
+Comment[fr]=Prise de notes manuscrites
+
+Exec=xournal %f
+Terminal=false
+StartupNotify=true
+MimeType=application/x-xoj;application/pdf;
+Icon=xournal
+Categories=GNOME;GTK;Utility;TextEditor;
</widget>
</child>
+ <child>
+ <widget class="GtkCheckMenuItem" id="optionsLeftHanded">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Left-Handed Scrollbar</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="toggled" handler="on_optionsLeftHanded_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkCheckMenuItem" id="optionsShortenMenus">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Shorten _Menus</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="toggled" handler="on_optionsShortenMenus_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+ </widget>
+ </child>
+
<child>
<widget class="GtkSeparatorMenuItem" id="separator21">
<property name="visible">True</property>
</widget>
</child>
+ <child>
+ <widget class="GtkCheckMenuItem" id="optionsAutoSavePrefs">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">A_uto-Save Preferences</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="toggled" handler="on_optionsAutoSavePrefs_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+ </widget>
+ </child>
+
<child>
<widget class="GtkMenuItem" id="optionsSavePreferences">
<property name="visible">True</property>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-xoj">
+ <comment>Xournal note file</comment>
+ <glob pattern="*.xoj"/>
+ </mime-type>
+</mime-info>