added check for GTK 1.2

added symbol __WXGTK12__  (do not use GTK_MINOR_VERSION in your code
    as this is undefined anywhere outside wxGTK itself)
  updated wxGTK.spec for local builds
  fixed clipboard clear/setdata race
  test for wxConvLocal in dialogs sample


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1999-04-26 20:48:39 +00:00
parent 5f709e6725
commit e5ea3f7a96
10 changed files with 833 additions and 495 deletions

1198
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1111,6 +1111,8 @@ WX_LINK=
MAKEINCLUDE=
WXGTK12=
if test "$wxUSE_GTK" = 1; then
AM_PATH_GTK(1.0.0, [
GUI_TK_INCLUDE="$GTK_CFLAGS"
@@ -1120,6 +1122,9 @@ if test "$wxUSE_GTK" = 1; then
TOOLKIT_DEF=__WXGTK__
WX_LINK=-lwx_gtk2
MAKEINCLUDE=../gtk.inc
AM_PATH_GTK(1.2.0, [
WXGTK12=1
], AC_MSG_RESULT(no))
fi
if test "$wxUSE_QT" = 1; then
@@ -1224,6 +1229,10 @@ dnl ----------------------------------------------------------------
dnl Register compile options for makefiles and setup.h
dnl ----------------------------------------------------------------
if test "$WXGTK12" = 1 ; then
AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
fi
EXTRA_LINK=
WXDEBUG=
@@ -1488,7 +1497,12 @@ if test "$wxUSE_TOOLTIPS" = 1 ; then
fi
if test "$wxUSE_DRAG_AND_DROP" = 1 ; then
if test "$WXGTK12" = 1 ; then
AC_DEFINE_UNQUOTED(wxUSE_DRAG_AND_DROP,$wxUSE_DRAG_AND_DROP)
else
AC_MSG_WARN(drag and drop is only supported under GTK 1.2, sorry)
wxUSE_DRAG_AND_DROP=0
fi
fi
dnl ----------------------------------------------------------------

View File

@@ -7,6 +7,7 @@ __X__ any X, but not GTK
__WXMOTIF__ Motif
__WXXT__ Xt; mutually exclusive with WX_MOTIF (?)
__WXGTK__ GTK
__WXGTK12__ GTK 1.2 or higher
__WXMSW__ Any Windows
__WXMAC__ MacOS
__UNIX__ any Unix

View File

@@ -221,7 +221,7 @@ WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvFile)) wxConvFile;
WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF7)) wxConvUTF7;
WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF8)) wxConvUTF8;
#define wxConv_UTF8 wxConvUTF8
#if defined(__WXGTK__) && (GTK_MINOR_VERSION > 0)
#if defined(__WXGTK12__)
WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvGdk)) wxConvGdk;
#define wxConv_gdk wxConvGdk
#endif // GTK > 1.0

View File

@@ -47,6 +47,10 @@ MyCanvas *myCanvas = (MyCanvas *) NULL;
// `Main program' equivalent, creating windows and returning main app frame
bool MyApp::OnInit(void)
{
#if defined(__WXGTK__) && defined(wxUSE_UNICODE)
wxConvCurrent = &wxConvLocal;
#endif
m_canvasTextColour = wxColour("BLACK");
m_canvasFont = *wxNORMAL_FONT;

View File

@@ -16,7 +16,16 @@
#pragma interface
#endif
/* ------------------------------------------------------------------------ */
/* define if support for GTK 1.2 features */
/* ------------------------------------------------------------------------ */
#undef __WXGTK12__
/* ------------------------------------------------------------------------ */
/* define the system to compile */
/* ------------------------------------------------------------------------ */
#undef __UNIX__
#undef __LINUX__
#undef __SGI__

View File

@@ -1841,7 +1841,7 @@ size_t wxMBConvFile::WC2MB(char *buf, const wchar_t *psz, size_t n) const
// standard gdk conversion
// ----------------------------------------------------------------------------
#if defined(__WXGTK__) && (GTK_MINOR_VERSION > 0)
#ifdef __WXGTK12__
WXDLLEXPORT_DATA(wxMBConvGdk) wxConvGdk;
#include <gdk/gdk.h>

View File

@@ -224,6 +224,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
}
else
{
wxTheClipboard->m_waiting = FALSE;
return FALSE;
}
@@ -239,6 +240,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
}
}
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
@@ -388,12 +390,20 @@ void wxClipboard::Clear()
if (gdk_selection_owner_get( g_clipboardAtom ) == m_clipboardWidget->window)
{
m_waiting = TRUE;
gtk_selection_owner_set( (GtkWidget*) NULL, g_clipboardAtom, GDK_CURRENT_TIME );
while (m_waiting) gtk_main_iteration();
}
if (gdk_selection_owner_get( GDK_SELECTION_PRIMARY ) == m_clipboardWidget->window)
{
m_waiting = TRUE;
gtk_selection_owner_set( (GtkWidget*) NULL, GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME );
while (m_waiting) gtk_main_iteration();
}
if (m_dataBroker)

View File

@@ -224,6 +224,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
}
else
{
wxTheClipboard->m_waiting = FALSE;
return FALSE;
}
@@ -239,6 +240,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
}
}
wxTheClipboard->m_waiting = FALSE;
return TRUE;
}
@@ -388,12 +390,20 @@ void wxClipboard::Clear()
if (gdk_selection_owner_get( g_clipboardAtom ) == m_clipboardWidget->window)
{
m_waiting = TRUE;
gtk_selection_owner_set( (GtkWidget*) NULL, g_clipboardAtom, GDK_CURRENT_TIME );
while (m_waiting) gtk_main_iteration();
}
if (gdk_selection_owner_get( GDK_SELECTION_PRIMARY ) == m_clipboardWidget->window)
{
m_waiting = TRUE;
gtk_selection_owner_set( (GtkWidget*) NULL, GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME );
while (m_waiting) gtk_main_iteration();
}
if (m_dataBroker)

View File

@@ -1,13 +1,19 @@
Summary: The GTK+ 1.2 port of wxWindows library
# Note that this is NOT a relocatable package
%define pref /usr
%define ver 2.1.0
%define rel 3
Summary: The GTK+ 1.2 port of the wxWindows library
Name: wxGTK
Version: 2.1.0
Release: 2
Version: %{ver}
Release: %{rel}
Copyright: wxWindows Licence
Group: X11/Libraries
Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK21b.tgz
URL: http://www.freiburg.linux.de/~wxxt/docs.html
URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html
Packager: Robert Roebling <roebling@ruf.uni-freiburg.de>
Requires: gtk+ >= 1.2.0
Requires: gtk+ >= 1.2.1
BuildRoot: /tmp/wxgtk_root
# all packages providing an implementation of wxWindows library (regardless of
# the toolkit used) should provide the (virtual) wxwin package, this makes it
@@ -18,17 +24,20 @@ Provides: wxwin
wxWindows is a free C++ library for cross-platform GUI development.
With wxWindows, you can create applications for different GUIs (GTK+,
Motif/LessTif, MS Windows, Mac) from the same source code.
This package also contains a dialog editor.
%prep
%setup -n wxGTK
./configure --prefix=/usr --with-threads
./configure --prefix=%{pref} --with-threads --with-unicode
%build
make
%install
make install
rm -rf $RPM_BUILD_ROOT
make prefix=$RPM_BUILD_ROOT%{pref} install
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
@@ -37,11 +46,14 @@ make install
/sbin/ldconfig
%files
%defattr (644, root, root, 755)
%doc COPYING.LIB INSTALL.txt LICENCE.txt README.txt SYMBOLS.txt TODO.txt
/usr/include/wx
/usr/lib/wx
/usr/lib/libwx_gtk2.so
/usr/lib/libwx_gtk2.so.1
/usr/lib/libwx_gtk2.so.1.0
/usr/bin/wx-config
%dir %{pref}/include/wx
%{pref}/include/wx/*
%dir %{pref}/lib/wx
%{pref}/lib/wx/*
%attr(755, -, -) %{pref}/lib/libwx_gtk2.so
%attr(755, -, -) %{pref}/lib/libwx_gtk2.so.1
%attr(755, -, -) %{pref}/lib/libwx_gtk2.so.1.0
%attr(755, -, -) %{pref}/bin/wx-config