From: John Levon Date: Sun, 2 Jun 2002 18:58:19 +0000 (+0000) Subject: xforms 1.0 fixes X-Git-Tag: 1.6.10~19146 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=9ed3420ea10e9e4e82b137d66dc4755be17619a9;p=lyx.git xforms 1.0 fixes git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4317 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/ChangeLog b/ChangeLog index e77cbb9180..d3756b9ce4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2002-06-02 John Levon + + * acconfig.h: add FORMS_IMAGE_H_LOCATION + + * autogen.sh: add xforms.m4 + + * configure.in: use XFORMS_IMAGE_LIB + 2002-05-30 Jean-Marc Lasgouttes * lyx.man: lyx honors variable LYX_DIR_13x diff --git a/acconfig.h b/acconfig.h index 5ab17a84f4..7afd814347 100644 --- a/acconfig.h +++ b/acconfig.h @@ -22,6 +22,10 @@ e.g. */ #undef FORMS_H_LOCATION +/* define this to the location of flimage.h to be used with #include, + e.g. */ +#undef FORMS_IMAGE_H_LOCATION + /* define this to the location of xpm.h to be used with #include, e.g. */ #undef XPM_H_LOCATION diff --git a/autogen.sh b/autogen.sh index 33211b9843..9405b589f3 100755 --- a/autogen.sh +++ b/autogen.sh @@ -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... " diff --git a/config/ChangeLog b/config/ChangeLog index a4a7cb21bc..0fddd42d2a 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2002-06-02 John Levon + + * xforms.m4: moved out of lyxinclude.m4, some + fixes for 1.0 + 2002-05-27 Lars Gullik Bjønnes * pkg.m4: new file diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index edb7a52140..d99f2aaebb 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -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="" -AC_CHECK_HEADER(X11/forms.h,[ - ac_cv_header_forms_h=yes - lyx_cv_forms_h_location=""],[ -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 <&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 ], - [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. diff --git a/config/xforms.m4 b/config/xforms.m4 new file mode 100644 index 0000000000..7e903aecf7 --- /dev/null +++ b/config/xforms.m4 @@ -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="" +AC_CHECK_HEADER(X11/forms.h,[ + ac_cv_header_forms_h=yes + lyx_cv_forms_h_location=""],[ +AC_CHECK_HEADER(forms.h,[],[ +LYX_LIB_ERROR(forms.h,forms)])]) + +lyx_cv_flimage_h_location="" +AC_CHECK_HEADER(X11/flimage.h,[ + ac_cv_header_flimage_h=yes + lyx_cv_flimage_h_location=""],[ +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 <&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 +]) diff --git a/configure.in b/configure.in index 2e803ace40..e2206cfc07 100644 --- a/configure.in +++ b/configure.in @@ -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 < + + * lyx_gui.C: check xforms version correctly + 2002-04-30 Herbert Voss * buffer.C (parseSingleLyXformat2Token): fix bug with ignored diff --git a/src/frontends/qt2/GUIRunTime.C b/src/frontends/qt2/GUIRunTime.C index c09c81d06f..51a72f482d 100644 --- a/src/frontends/qt2/GUIRunTime.C +++ b/src/frontends/qt2/GUIRunTime.C @@ -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[]) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 8932431901..0e498ac681 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,12 @@ +2002-06-02 John Levon + + * GUIRunTime.C: + * XFormsView.C: + * XWorkArea.C: + * xforms_resize.C: + * xformsGImage.h: fixes for xforms 1.0 version + checking + 2002-05-10 Herbert Voss * FormInclude.C (input, update): disable load-button when diff --git a/src/frontends/xforms/GUIRunTime.C b/src/frontends/xforms/GUIRunTime.C index 66a0212e4b..668fd830a5 100644 --- a/src/frontends/xforms/GUIRunTime.C +++ b/src/frontends/xforms/GUIRunTime.C @@ -26,15 +26,6 @@ #include -// 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; diff --git a/src/frontends/xforms/Menubar_pimpl.C b/src/frontends/xforms/Menubar_pimpl.C index 2316af0b48..b05b93690d 100644 --- a/src/frontends/xforms/Menubar_pimpl.C +++ b/src/frontends/xforms/Menubar_pimpl.C @@ -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, "%", "%%"); diff --git a/src/frontends/xforms/Tooltips.C b/src/frontends/xforms/Tooltips.C index 30368ecb29..0d8e3b87b3 100644 --- a/src/frontends/xforms/Tooltips.C +++ b/src/frontends/xforms/Tooltips.C @@ -32,7 +32,7 @@ bool Tooltips::enabled_ = true; boost::signal0 Tooltips::toggled; -#if FL_REVISION >= 89 +#if FL_VERSION > 0 || FL_REVISION >= 89 Tooltips::Tooltips() { diff --git a/src/frontends/xforms/Tooltips.h b/src/frontends/xforms/Tooltips.h index f92bb2f6ed..8f4958e4b8 100644 --- a/src/frontends/xforms/Tooltips.h +++ b/src/frontends/xforms/Tooltips.h @@ -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. diff --git a/src/frontends/xforms/XFormsView.C b/src/frontends/xforms/XFormsView.C index 72d572a9d0..58a236fece 100644 --- a/src/frontends/xforms/XFormsView.C +++ b/src/frontends/xforms/XFormsView.C @@ -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 } diff --git a/src/frontends/xforms/XWorkArea.C b/src/frontends/xforms/XWorkArea.C index 4fba3e8f41..87a6a3576a 100644 --- a/src/frontends/xforms/XWorkArea.C +++ b/src/frontends/xforms/XWorkArea.C @@ -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(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; diff --git a/src/frontends/xforms/xformsGImage.h b/src/frontends/xforms/xformsGImage.h index 6135505507..6505e6af89 100644 --- a/src/frontends/xforms/xformsGImage.h +++ b/src/frontends/xforms/xformsGImage.h @@ -20,6 +20,7 @@ #include "graphics/GraphicsImage.h" #include FORMS_H_LOCATION +#include namespace grfx { diff --git a/src/frontends/xforms/xforms_resize.C b/src/frontends/xforms/xforms_resize.C index 4f8b3efe0a..96ddf58157 100644 --- a/src/frontends/xforms/xforms_resize.C +++ b/src/frontends/xforms/xforms_resize.C @@ -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) diff --git a/src/lyx_gui.C b/src/lyx_gui.C index e15c83fcb4..66bb8fbb25 100644 --- a/src/lyx_gui.C +++ b/src/lyx_gui.C @@ -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);