xforms 1.0 fixes

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4317 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
John Levon 2002-06-02 18:58:19 +00:00
parent f24ed7d6ca
commit 9ed3420ea1
19 changed files with 155 additions and 128 deletions

View File

@ -1,3 +1,11 @@
2002-06-02 John Levon <moz@compsoc.man.ac.uk>
* acconfig.h: add FORMS_IMAGE_H_LOCATION
* autogen.sh: add xforms.m4
* configure.in: use XFORMS_IMAGE_LIB
2002-05-30 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
* lyx.man: lyx honors variable LYX_DIR_13x

View File

@ -22,6 +22,10 @@
e.g. <forms.h> */
#undef FORMS_H_LOCATION
/* define this to the location of flimage.h to be used with #include,
e.g. <flimage.h> */
#undef FORMS_IMAGE_H_LOCATION
/* define this to the location of xpm.h to be used with #include,
e.g. <xpm.h> */
#undef XPM_H_LOCATION

View File

@ -6,7 +6,7 @@ AUTOMAKE="automake -a -c --foreign"
AUTOCONF=autoconf
GNUM4=
ACINCLUDE_FILES="lyxinclude.m4 libtool.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 progtest.m4 qt2.m4 gtk--.m4 gnome--.m4 gnome.m4 pspell.m4 pkg.m4"
ACINCLUDE_FILES="lyxinclude.m4 libtool.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 progtest.m4 xforms.m4 qt2.m4 gtk--.m4 gnome--.m4 gnome.m4 pspell.m4 pkg.m4"
SIGCPP_ACINCLUDE_FILES="libtool.m4"
echo -n "Locating GNU m4... "

View File

@ -1,3 +1,8 @@
2002-06-02 John Levon <moz@compsoc.man.ac.uk>
* xforms.m4: moved out of lyxinclude.m4, some
fixes for 1.0
2002-05-27 Lars Gullik Bjønnes <larsbj@birdstep.com>
* pkg.m4: new file

View File

@ -558,99 +558,6 @@ changequote([,])
fi])
dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
dnl If it is found, the variable XFORMS_LIB is set to the relevant -l flag.
AC_DEFUN(LYX_PATH_XFORMS,[
### Check for xforms library
AC_CHECK_LIB(forms, fl_initialize, XFORMS_LIB="-lforms",
[AC_CHECK_LIB(xforms, fl_initialize, XFORMS_LIB="-lxforms",
[LYX_LIB_ERROR(libforms or libxforms,xforms)])])
AC_SUBST(XFORMS_LIB)
### Check for xforms headers
lyx_cv_forms_h_location="<forms.h>"
AC_CHECK_HEADER(X11/forms.h,[
ac_cv_header_forms_h=yes
lyx_cv_forms_h_location="<X11/forms.h>"],[
AC_CHECK_HEADER(forms.h,[],[
LYX_LIB_ERROR(forms.h,forms)])])
AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
if test $ac_cv_header_forms_h = yes; then
AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
[ cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
#include "confdefs.h"
#include FORMS_H_LOCATION
#if ! defined(FL_INCLUDE_VERSION)
"%%%"(unknown)"%%%"
#else
"%%%"FL_VERSION.FL_REVISION.FL_FIXLEVEL"%%%"
#endif
EOF
lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
grep '^"%%%"' 2>/dev/null | \
sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
rm -f conftest*])
XFORMS_VERSION=$lyx_cv_xfversion
case "$lyx_cv_xfversion" in
"(unknown)"|0.8[1-7]*)
LYX_ERROR(dnl
Version $lyx_cv_xfversion of xforms is not compatible with LyX.
This version of LyX works best with versions 0.88 (recommended) and later.) ;;
0.88*) ;;
0.89[01234]) LYX_WARNING(dnl
LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
it is an unproven version and might still have some bugs. You should
probably use version 0.89.6 (or 0.88) instead) ;;
0.89*) ;;
*) LYX_WARNING(dnl
Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
since it is newer than 0.89. You might have slight problems with it.);;
esac
fi])
dnl Check whether the xforms library has a viable image loader
AC_DEFUN(LYX_USE_XFORMS_IMAGE_LOADER,
[
save_LIBS=$LIBS
LIBS="$XFORMS_LIB $LIBS"
lyx_use_xforms_image_loader=no
AC_CHECK_FUNCS(flimage_dup,[
AC_CHECK_FUNCS(flimage_to_pixmap,[
lyx_use_xforms_image_loader=yes
AC_CHECK_FUNCS(flimage_enable_ps)])])
LIBS=$save_LIBS
test $lyx_use_xforms_image_loader = yes && lyx_flags="$lyx_flags xforms-image-loader"
### If the gui cannot load images itself, then we default to the
### very simple one in graphics/GraphicsImageXPM.[Ch]
AM_CONDITIONAL(USE_BASIC_IMAGE_LOADER,
test $lyx_use_xforms_image_loader = no)
])
dnl Check if the image loader needs libjpeg
AC_DEFUN(LYX_XFORMS_IMAGE_LOADER_NEEDS_JPEG,
[
if test "$lyx_use_xforms_image_loader" = "yes" ; then
AC_MSG_CHECKING([whether libjpeg is needed])
AC_LANG_SAVE
AC_LANG_C
save_LIBS=$LIBS
LIBS="$XFORMS_LIB $LIBS"
AC_TRY_LINK([#include <forms.h>],
[jpeg_abort(0);],
[lyx_need_jpeg=no],[lyx_need_jpeg=yes])
LIBS=$save_LIBS
AC_LANG_RESTORE
AC_MSG_RESULT($lyx_need_jpeg)
if test "$lyx_need_jpeg" = "yes" ; then
LIBS="-ljpeg $LIBS"
fi
fi
])
dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
AC_DEFUN(LYX_HPUX,
[#It seems that HPUX requires using -fpcc-struct-return with gcc.

106
config/xforms.m4 Normal file
View File

@ -0,0 +1,106 @@
dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
dnl If it is found, the variable XFORMS_LIB is set to the relevant -l flags,
dnl and FORMS_H_LOCATION / FORMS_IMAGE_H_LOCATION is also set
AC_DEFUN(LYX_PATH_XFORMS,[
LIBS="$XPM_LIB $LIBS"
AC_CHECK_LIB(forms, fl_initialize, XFORMS_LIB="-lforms",
[AC_CHECK_LIB(xforms, fl_initialize, XFORMS_LIB="-lxforms",
[LYX_LIB_ERROR(libforms or libxforms,xforms)])])
AC_SUBST(XFORMS_LIB)
### Check for xforms headers
lyx_cv_forms_h_location="<forms.h>"
AC_CHECK_HEADER(X11/forms.h,[
ac_cv_header_forms_h=yes
lyx_cv_forms_h_location="<X11/forms.h>"],[
AC_CHECK_HEADER(forms.h,[],[
LYX_LIB_ERROR(forms.h,forms)])])
lyx_cv_flimage_h_location="<flimage.h>"
AC_CHECK_HEADER(X11/flimage.h,[
ac_cv_header_flimage_h=yes
lyx_cv_flimage_h_location="<X11/flimage.h>"],[
AC_CHECK_HEADER(flimage.h,[],[
LYX_LIB_ERROR(flimage.h,forms)])])
AC_DEFINE_UNQUOTED(FORMS_IMAGE_H_LOCATION,$lyx_cv_flimage_h_location)
AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
if test $ac_cv_header_forms_h = yes; then
AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
[ cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
#include "confdefs.h"
#include FORMS_H_LOCATION
#if ! defined(FL_INCLUDE_VERSION)
"%%%"(unknown)"%%%"
#else
"%%%"FL_VERSION.FL_REVISION.FL_FIXLEVEL"%%%"
#endif
EOF
lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
grep '^"%%%"' 2>/dev/null | \
sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
rm -f conftest*])
XFORMS_VERSION=$lyx_cv_xfversion
case "$lyx_cv_xfversion" in
"(unknown)"|0.8[1-7]*)
LYX_ERROR(dnl
Version $lyx_cv_xfversion of xforms is not compatible with LyX.
This version of LyX works best with versions 0.88 (recommended) and later.) ;;
0.88*) ;;
0.89[01234]) LYX_WARNING(dnl
LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
it is an unproven version and might still have some bugs. You should
probably use version 0.89.6 (or 0.88) instead) ;;
0.89*) ;;
1.0*) ;;
*) LYX_WARNING(dnl
Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
since it is newer than 0.89. You might have slight problems with it.);;
esac
fi])
dnl Check whether the xforms library has a viable image loader
AC_DEFUN(LYX_USE_XFORMS_IMAGE_LOADER,
[
save_LIBS=$LIBS
LIBS="-lflimage $XFORMS_LIB -ljpeg $LIBS"
lyx_use_xforms_image_loader=no
AC_CHECK_FUNCS(flimage_dup,[
AC_CHECK_FUNCS(flimage_to_pixmap,[
lyx_use_xforms_image_loader=yes
AC_CHECK_FUNCS(flimage_enable_ps)])])
LIBS=$save_LIBS
test $lyx_use_xforms_image_loader = yes && lyx_flags="$lyx_flags xforms-image-loader" && XFORMS_IMAGE_LIB=-lflimage
AC_SUBST(XFORMS_IMAGE_LIB)
### If the gui cannot load images itself, then we default to the
### very simple one in graphics/GraphicsImageXPM.[Ch]
AM_CONDITIONAL(USE_BASIC_IMAGE_LOADER,
test $lyx_use_xforms_image_loader = no)
])
dnl Check if the image loader needs libjpeg
AC_DEFUN(LYX_XFORMS_IMAGE_LOADER_NEEDS_JPEG,
[
if test "$lyx_use_xforms_image_loader" = "yes" ; then
AC_MSG_CHECKING([whether libjpeg is needed])
AC_LANG_SAVE
AC_LANG_C
AC_TRY_LINK([#include FORMS_H_LOCATION
#include FORMS_IMAGE_H_LOCATION],
[jpeg_abort(0);],
[lyx_need_jpeg=no],[lyx_need_jpeg=yes])
AC_LANG_RESTORE
AC_MSG_RESULT($lyx_need_jpeg)
if test "$lyx_need_jpeg" = "yes" ; then
LIBS="-ljpeg $LIBS"
fi
fi
])

View File

@ -182,7 +182,7 @@ case "$lyx_use_frontend" in
FRONTEND="xforms"
FRONTEND_GUILIB="xforms/*.lo"
FRONTEND_INCLUDES="-I\$(srcdir)/xforms"
FRONTEND_LIBS="@XFORMS_LIB@ @XPM_LIB@"
FRONTEND_LIBS="@XFORMS_IMAGE_LIB@ @XFORMS_LIB@ @XPM_LIB@"
FRONTEND_INFO=`cat <<EOF
libXpm version: ${XPM_VERSION}\n\
libforms version: ${XFORMS_VERSION}\n

View File

@ -1,3 +1,7 @@
2002-06-02 John Levon <moz@compsoc.man.ac.uk>
* lyx_gui.C: check xforms version correctly
2002-04-30 Herbert Voss <voss@lyx.org>
* buffer.C (parseSingleLyXformat2Token): fix bug with ignored

View File

@ -34,14 +34,6 @@ using std::endl;
// For now we need this here as long as we use xforms components!
// I keep these here so that it will be processed as early in
// the compilation process as possible.
#if !defined(FL_REVISION) || FL_REVISION < 88 || FL_VERSION != 0
#error LyX will not compile with this version of XForms.\
Please get version 0.89.\
If you want to try to compile anyway, delete this test in src/frontends/qt2/GUIRunTime.C.
#endif
extern bool finished;
int GUIRunTime::initApplication(int & argc, char * argv[])

View File

@ -1,3 +1,12 @@
2002-06-02 John Levon <moz@compsoc.man.ac.uk>
* GUIRunTime.C:
* XFormsView.C:
* XWorkArea.C:
* xforms_resize.C:
* xformsGImage.h: fixes for xforms 1.0 version
checking
2002-05-10 Herbert Voss <voss@perce.de>
* FormInclude.C (input, update): disable load-button when

View File

@ -26,15 +26,6 @@
#include <boost/bind.hpp>
// I keep these here so that it will be processed as early in
// the compilation process as possible.
#if !defined(FL_REVISION) || FL_REVISION < 88 || FL_VERSION != 0
#error LyX will not compile with this version of XForms.\
Please get version 0.89.\
If you want to try to compile anyway, delete this test in src/frontends/xforms/GUIRunTime.C.
#endif
using std::endl;
using std::hex;

View File

@ -235,7 +235,7 @@ size_type const max_number_of_items = 25;
inline
string const fixlabel(string const & str)
{
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
return subst(str, '%', '?');
#else
return subst(str, "%", "%%");

View File

@ -32,7 +32,7 @@ bool Tooltips::enabled_ = true;
boost::signal0<void> Tooltips::toggled;
#if FL_REVISION >= 89
#if FL_VERSION > 0 || FL_REVISION >= 89
Tooltips::Tooltips()
{

View File

@ -44,7 +44,7 @@ public:
/// This method is connected to the tooltipsToggled signal.
void set();
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
/** Return the tooltip associated with this object.
* Required by an xforms callback routine.
@ -73,7 +73,7 @@ private:
TooltipsMap tooltipsMap;
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
/** A timer is started once the mouse enters an object, so that the
* tip appears a short delay afterwards.

View File

@ -15,7 +15,7 @@
#endif
#include "XFormsView.h"
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
#include "frontends/xforms/lyxlookup.h"
#endif
#include "minibuffer.h"
@ -103,7 +103,7 @@ void XFormsView::show(int place, int border, string const & title)
fl_set_form_minsize(form_, form_->w, form_->h);
fl_show_form(form_, place, border, title.c_str());
getLyXFunc()->initMiniBuffer();
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
InitLyXLookup(fl_get_display(), form_->window);
#endif
}

View File

@ -20,7 +20,7 @@
#include "lyxrc.h" // lyxrc.show_banner
#include "version.h" // lyx_version
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
#include "frontends/xforms/lyxlookup.h"
#endif
@ -425,7 +425,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
ev->xbutton.y - ob->y,
x_button_state(ev->xbutton.button));
break;
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
case FL_MOUSE:
#else
case FL_DRAG:
@ -441,7 +441,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
x_motion_state(ev->xbutton.state));
}
break;
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
case FL_KEYBOARD:
#else
case FL_KEYPRESS:
@ -452,7 +452,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
KeySym keysym = 0;
char dummy[1];
XKeyEvent * xke = reinterpret_cast<XKeyEvent *>(ev);
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
// XForms < 0.89.5 does not have compose support
// so we are using our own compose support
LyXLookupString(ev, dummy, 1, &keysym);
@ -474,7 +474,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
<< keysym << "]" << endl;
}
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
if (keysym == NoSymbol) {
lyxerr[Debug::KEY]
<< "Empty kdb action (probably composing)"
@ -551,7 +551,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
}
break;
#if FL_REVISION >= 89
#if FL_VERSION > 0 || FL_REVISION >= 89
case FL_KEYRELEASE:
lyxerr[Debug::WORKAREA] << "Workarea event: KEYRELEASE" << endl;
break;

View File

@ -20,6 +20,7 @@
#include "graphics/GraphicsImage.h"
#include FORMS_H_LOCATION
#include <flimage.h>
namespace grfx {

View File

@ -183,7 +183,7 @@ double scale_to_fit_tabs(FL_OBJECT * folder)
// A nasty hack for older xforms versions
int get_tabfolder_numfolders(FL_OBJECT * folder)
{
#if FL_REVISION > 88
#if FL_VERSION > 0 || FL_REVISION > 88
return fl_get_tabfolder_numfolders(folder);
#else
if (folder->objclass != FL_TABFOLDER)

View File

@ -26,7 +26,7 @@
#include "lyxserver.h"
#include "lyxrc.h"
#include "gettext.h"
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
#include "frontends/xforms/lyxlookup.h"
#endif
#include "bufferlist.h"
@ -173,7 +173,7 @@ LyXGUI::~LyXGUI()
delete lyxserver;
lyxserver = 0;
delete lyxViews;
#if FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5)
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
CloseLyXLookup();
#endif
}
@ -240,7 +240,7 @@ void LyXGUI::init()
fl_setpup_fontsize(FL_NORMAL_SIZE);
fl_setpup_color(FL_MCOL, FL_BLACK);
fl_set_goodies_font(FL_NORMAL_STYLE, FL_NORMAL_SIZE);
#if FL_REVISION < 89
#if FL_VERSION < 1 && FL_REVISION < 89
fl_set_oneliner_font(FL_NORMAL_STYLE, FL_NORMAL_SIZE);
#else
fl_set_tooltip_font(FL_NORMAL_STYLE, FL_NORMAL_SIZE);