Augemnted version to 2.1.11.
Applied patch for wxGenericValidator.
Corrected MDI's wxActivateEvent code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4276
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
WX_MAJOR_VERSION_NUMBER=2
WX_MINOR_VERSION_NUMBER=1
WX_MAJOR_VERSION_NUMBER=2
WX_MINOR_VERSION_NUMBER=1
WX_INTERFACE_AGE=0
WX_BINARY_AGE=0
WX_INTERFACE_AGE=0
WX_BINARY_AGE=0
-25th October '99: My birthday, wxWindows 2.1.10 released
+1st November '99: wxWindows 2.1.11 released
There is still a unresolved problem with bitmap to image
conversion on big-endian architectures (such as Solaris),
There is still a unresolved problem with bitmap to image
conversion on big-endian architectures (such as Solaris),
I have reawakened the iODBC code from wxGTK 2.0 so you
can now use wxODBC from wxMSW and wxGTK.
I have reawakened the iODBC code from wxGTK 2.0 so you
can now use wxODBC from wxMSW and wxGTK.
-Several printing things fixed.
+Several printing things fixed. More work needs to be done
+here..
HTML widget and the wxWindows' help system based upon
it have been reorganized and improved for easier use
HTML widget and the wxWindows' help system based upon
it have been reorganized and improved for easier use
A number of problems with compressed and socket streams have
been solved.
A number of problems with compressed and socket streams have
been solved.
+Changed behavour of wxTextStream to make use of deliminators
+and default to space as the standard C++ stream do.
+
+Changes to tab traversal code to better reflect MSW code.
+
+Corrected problems with wxGenericValidator and certain controls.
+
+Made default button action work in more cases.
+
28th August '99: Ninth wxGTK 2.1 snapshot released
As the old makefile system didn't work, I trashed it and wrote
28th August '99: Ninth wxGTK 2.1 snapshot released
As the old makefile system didn't work, I trashed it and wrote
- Welcome to wxWindows/Gtk 2.1 snapshot 9,
+ Welcome to wxWindows/Gtk 2.1.11
you have downloaded version 2.1 of the GTK+ 1.2 port of
you have downloaded version 2.1 of the GTK+ 1.2 port of
-the wxWindows GUI library. This is a developers release
-and is it not suited for production development. Beware
-that major changes can happen before a final release.
+the wxWindows GUI library. Although this is not yet the
+final stable release wxGTK 2.2, the current version has
+been tested carefully on many systems and has been found
+to work better than any other previous version.
+
+Nonetheless, beware that major changes can happen before
+a final release.
+
+wxWindows no longer supports GTK 1.0 (as did some early
+snapshots) so that you will need GTK 1.2 when using it.
Beginning with snapshot 9, wxWindows uses a completely
new make file system on Unix which no longer uses the
Beginning with snapshot 9, wxWindows uses a completely
new make file system on Unix which no longer uses the
http://wesley.informatik.uni-freiburg.de/~wxxt
http://wesley.informatik.uni-freiburg.de/~wxxt
-and about the wxWindows project as a whole (and the
-Windows and Motif ports in particular) can be found
-at Julian Smart's homepage at:
+and about the wxWindows project as a whole (and the MSW
+and Motif ports in particular) can be found at Julian's
+homepage at:
http://web.ukonline.co.uk/julian.smart/wxwin
Information on how to install can be found in the file
INSTALL.txt, but if you cannot wait, this should work on
http://web.ukonline.co.uk/julian.smart/wxwin
Information on how to install can be found in the file
INSTALL.txt, but if you cannot wait, this should work on
-many systems (when using GTK 1.0 or when not using Linux
-read the INSTALL.txt):
make
su <type root password>
make install
make
su <type root password>
make install
-------------------- High priority ---------------------
-------------------- High priority ---------------------
Fix bug that thread sample reports about non-finished threads.
Fix bug that thread sample reports about non-finished threads.
-Added wxExpandedImageList to wxTreeControl.
-
More testing of Unicode support.
More testing of Unicode support.
-Make wxSockets work on all platform.
-
Add ID based i18n system as a replacement for the
unelegant gettext system.
Add ID based i18n system as a replacement for the
unelegant gettext system.
Improve, update translations. Install *.mo files somewehere.
Improve, update translations. Install *.mo files somewehere.
-Sleep, eat, walk, study, shave, read, play piano and wash less.
-
-------------------- Medium priority ---------------------
Show accelerator control labels and actually implement them
-------------------- Medium priority ---------------------
Show accelerator control labels and actually implement them
--without-libjpeg Disables JPEG image format code.
--without-libjpeg Disables JPEG image format code.
-{ --without-odbc Disables ODBC code. Not yet. }
+ --without-odbc Disables ODBC code.
--disable-resources Disables the use of *.wxr type
resources.
--disable-resources Disables the use of *.wxr type
resources.
/* Bump-up with each new version */
#define wxMAJOR_VERSION 2
#define wxMINOR_VERSION 1
/* Bump-up with each new version */
#define wxMAJOR_VERSION 2
#define wxMINOR_VERSION 1
-#define wxRELEASE_NUMBER 10
-#define wxVERSION_STRING "wxWindows 2.1.10"
+#define wxRELEASE_NUMBER 11
+#define wxVERSION_STRING "wxWindows 2.1.11"
#define wxVERSION_NUMBER (wxMAJOR_VERSION * 1000) + (wxMINOR_VERSION * 100) + wxRELEASE_NUMBER
#define wxBETA_NUMBER 0
#define wxVERSION_FLOAT wxMAJOR_VERSION + (wxMINOR_VERSION/10.0) + (wxRELEASE_NUMBER/100.0) + (wxBETA_NUMBER/10000.0)
#define wxVERSION_NUMBER (wxMAJOR_VERSION * 1000) + (wxMINOR_VERSION * 100) + wxRELEASE_NUMBER
#define wxBETA_NUMBER 0
#define wxVERSION_FLOAT wxMAJOR_VERSION + (wxMINOR_VERSION/10.0) + (wxRELEASE_NUMBER/100.0) + (wxBETA_NUMBER/10000.0)
#include "wx/textctrl.h"
#include "wx/button.h"
#include "wx/listbox.h"
#include "wx/textctrl.h"
#include "wx/button.h"
#include "wx/listbox.h"
bool wxGenericValidator::Copy(const wxGenericValidator& val)
{
bool wxGenericValidator::Copy(const wxGenericValidator& val)
{
- wxValidator::Copy(val);
+ wxValidator::Copy(val);
- m_pBool = val.m_pBool;
- m_pInt = val.m_pInt;
- m_pString = val.m_pString;
- m_pArrayInt = val.m_pArrayInt;
+ m_pBool = val.m_pBool;
+ m_pInt = val.m_pInt;
+ m_pString = val.m_pString;
+ m_pArrayInt = val.m_pArrayInt;
}
wxGenericValidator::~wxGenericValidator()
}
wxGenericValidator::~wxGenericValidator()
// Called to transfer data to the window
bool wxGenericValidator::TransferToWindow(void)
{
// Called to transfer data to the window
bool wxGenericValidator::TransferToWindow(void)
{
- if ( !m_validatorWindow )
- return FALSE;
+ if ( !m_validatorWindow )
+ return FALSE;
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
- {
- wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
- if (m_pBool)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) )
- pControl->SetValue(*m_pBool) ;
- return TRUE;
- }
- } else
+ wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow;
+ if (m_pBool)
+ {
+ pControl->SetValue(*m_pBool);
+ return TRUE;
+ }
+ } else
#endif
#if wxUSE_RADIOBTN
#endif
#if wxUSE_RADIOBTN
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
- {
- wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
- if (m_pBool)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) )
- pControl->SetValue(*m_pBool) ;
- return TRUE;
- }
- } else
+ wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow;
+ if (m_pBool)
+ {
+ pControl->SetValue(*m_pBool) ;
+ return TRUE;
+ }
+ } else
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
- {
- wxGauge* pControl = (wxGauge*) m_validatorWindow;
- if (m_pInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) )
- pControl->SetValue(*m_pInt) ;
- return TRUE;
- }
- }
- else
+ wxGauge* pControl = (wxGauge*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetValue(*m_pInt);
+ return TRUE;
+ }
+ } else
#endif
#if wxUSE_RADIOBOX
#endif
#if wxUSE_RADIOBOX
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
- {
- wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
- if (m_pInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) )
- pControl->SetSelection(*m_pInt) ;
- return TRUE;
- }
- }
- else
+ wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetSelection(*m_pInt) ;
+ return TRUE;
+ }
+ } else
#endif
#if wxUSE_SCROLLBAR
#endif
#if wxUSE_SCROLLBAR
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
- {
- wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
- if (m_pInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) )
- pControl->SetThumbPosition(*m_pInt) ;
- return TRUE;
- }
- } else
+ wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetThumbPosition(*m_pInt) ;
+ return TRUE;
+ }
+ } else
#endif
#if wxUSE_SPINBTN
#ifndef __WIN16__
#endif
#if wxUSE_SPINBTN
#ifndef __WIN16__
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
- {
- wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
- if (m_pInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) )
- pControl->SetValue(*m_pInt) ;
- return TRUE;
- }
- } else
+ wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetValue(*m_pInt) ;
+ return TRUE;
+ }
+ } else
+#if wxUSE_SLIDER
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
+ {
+ wxSlider* pControl = (wxSlider*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetValue(*m_pInt) ;
+ return TRUE;
+ }
+ } else
+#endif
+
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
- {
- wxButton* pControl = (wxButton*) m_validatorWindow;
- if (m_pString)
+#if 1
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
- pControl->SetLabel(*m_pString) ;
- return TRUE;
- }
- } else
-#if wxUSE_COMBOBOX
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
- {
- wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
+ wxButton* pControl = (wxButton*) m_validatorWindow;
+ {
+ pControl->SetLabel(*m_pString) ;
+ return TRUE;
+ }
+ } else
+#endif
+#if wxUSE_COMBOBOX
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) )
- pControl->SetValue(*m_pString) ;
- return TRUE;
- }
- } else
+ wxComboBox* pControl = (wxComboBox*) m_validatorWindow;
+ if (m_pString)
+ {
+ pControl->SetValue(*m_pString) ;
+ return TRUE;
+ }
+ } else
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
- {
- wxChoice* pControl = (wxChoice*) m_validatorWindow;
- if (m_pInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) )
- pControl->SetSelection(*m_pInt) ;
- return TRUE;
- }
- } else
+ wxChoice* pControl = (wxChoice*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetSelection(*m_pInt) ;
+ return TRUE;
+ }
+ } else
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
- {
- wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
- if (m_pString)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) )
- pControl->SetLabel(*m_pString) ;
- return TRUE;
- }
- }
- else if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
- {
- wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
+ wxStaticText* pControl = (wxStaticText*) m_validatorWindow;
+ {
+ pControl->SetLabel(*m_pString) ;
+ return TRUE;
+ }
+ } else
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) )
- pControl->SetValue(*m_pString) ;
- return TRUE;
- }
- } else
+ wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow;
+ if (m_pString)
+ {
+ pControl->SetValue(*m_pString) ;
+ return TRUE;
+ }
+ } else
#if wxUSE_CHECKLISTBOX
#ifndef __WIN16__
// array controls
#if wxUSE_CHECKLISTBOX
#ifndef __WIN16__
// array controls
#endif
#endif
#if wxUSE_LISTBOX
#endif
#endif
#if wxUSE_LISTBOX
- if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
- {
- wxListBox* pControl = (wxListBox*) m_validatorWindow;
- if (m_pArrayInt)
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) )
- // clear all selections
- int i;
- for (i = 0 ; i < pControl->Number(); ++i)
- pControl->Deselect(i);
- // select each item in our array
- unsigned u;
- for (u = 0; u < m_pArrayInt->Count(); ++u)
- pControl->SetSelection(m_pArrayInt->Item(u));
- return TRUE;
- }
- } else
+ wxListBox* pControl = (wxListBox*) m_validatorWindow;
+ if (m_pArrayInt)
+ {
+ // clear all selections
+ int i;
+ for (i = 0 ; i < pControl->Number(); ++i)
+ pControl->Deselect(i);
+ // select each item in our array
+ unsigned u;
+ for (u = 0; u < m_pArrayInt->Count(); ++u)
+ pControl->SetSelection(m_pArrayInt->Item(u));
+ return TRUE;
+ }
+ } else
#endif
// unrecognized control, or bad pointer
#endif
// unrecognized control, or bad pointer
-// Called to transfer data to the window
+// Called to transfer data from the window
bool wxGenericValidator::TransferFromWindow(void)
{
if ( !m_validatorWindow )
bool wxGenericValidator::TransferFromWindow(void)
{
if ( !m_validatorWindow )
+#endif
+#if wxUSE_SLIDER
+ if (m_validatorWindow->IsKindOf(CLASSINFO(wxSlider)) )
+ {
+ wxSlider* pControl = (wxSlider*) m_validatorWindow;
+ if (m_pInt)
+ {
+ pControl->SetValue(*m_pInt) ;
+ return TRUE;
+ }
+ } else
#endif
// string controls
if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
#endif
// string controls
if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) )
#ifndef __WIN16__
// array controls
// NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
#ifndef __WIN16__
// array controls
// NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
-static void gtk_mdi_page_change_callback(GtkNotebook *WXUNUSED(widget),
- GtkNotebookPage *WXUNUSED(page),
- gint WXUNUSED(page),
- wxMDIParentFrame *parent )
+static void
+gtk_mdi_page_change_callback( GtkNotebook *widget,
+ GtkNotebookPage *page,
+ gint WXUNUSED(page_num),
+ wxMDIParentFrame *parent )
{
if (g_isIdle)
wxapp_install_idle_handler();
{
if (g_isIdle)
wxapp_install_idle_handler();
+ // send deactivate event to old child
+
wxMDIChildFrame *child = parent->GetActiveChild();
wxMDIChildFrame *child = parent->GetActiveChild();
+ if (child)
+ {
+ wxActivateEvent event1( wxEVT_ACTIVATE, FALSE, child->GetId() );
+ event1.SetEventObject( child);
+ child->GetEventHandler()->ProcessEvent( event1 );
+ }
+
+ // send activate event to new child
+ wxMDIClientWindow *client_window = parent->GetClientWindow();
+ if (!client_window)
+ return;
+
+ child = (wxMDIChildFrame*) NULL;
- wxActivateEvent event( wxEVT_ACTIVATE, TRUE, child->GetId() );
- event.SetEventObject( child);
- child->GetEventHandler()->ProcessEvent( event );
+ wxNode *node = client_window->GetChildren().First();
+ while (node)
+ {
+ wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
+ if (child_frame->m_page == page)
+ {
+ child = child_frame;
+ break;
+ }
+ node = node->Next();
+ }
+
+ if (!child)
+ return;
+
+ wxActivateEvent event2( wxEVT_ACTIVATE, TRUE, child->GetId() );
+ event2.SetEventObject( child);
+ child->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
// "switch_page"
//-----------------------------------------------------------------------------
-static void gtk_mdi_page_change_callback(GtkNotebook *WXUNUSED(widget),
- GtkNotebookPage *WXUNUSED(page),
- gint WXUNUSED(page),
- wxMDIParentFrame *parent )
+static void
+gtk_mdi_page_change_callback( GtkNotebook *widget,
+ GtkNotebookPage *page,
+ gint WXUNUSED(page_num),
+ wxMDIParentFrame *parent )
{
if (g_isIdle)
wxapp_install_idle_handler();
{
if (g_isIdle)
wxapp_install_idle_handler();
+ // send deactivate event to old child
+
wxMDIChildFrame *child = parent->GetActiveChild();
wxMDIChildFrame *child = parent->GetActiveChild();
+ if (child)
+ {
+ wxActivateEvent event1( wxEVT_ACTIVATE, FALSE, child->GetId() );
+ event1.SetEventObject( child);
+ child->GetEventHandler()->ProcessEvent( event1 );
+ }
+
+ // send activate event to new child
+ wxMDIClientWindow *client_window = parent->GetClientWindow();
+ if (!client_window)
+ return;
+
+ child = (wxMDIChildFrame*) NULL;
- wxActivateEvent event( wxEVT_ACTIVATE, TRUE, child->GetId() );
- event.SetEventObject( child);
- child->GetEventHandler()->ProcessEvent( event );
+ wxNode *node = client_window->GetChildren().First();
+ while (node)
+ {
+ wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
+ if (child_frame->m_page == page)
+ {
+ child = child_frame;
+ break;
+ }
+ node = node->Next();
+ }
+
+ if (!child)
+ return;
+
+ wxActivateEvent event2( wxEVT_ACTIVATE, TRUE, child->GetId() );
+ event2.SetEventObject( child);
+ child->GetEventHandler()->ProcessEvent( event2 );
}
//-----------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------
# Note that this is NOT a relocatable package
%define pref /usr
# Note that this is NOT a relocatable package
%define pref /usr
%define rel 0
Summary: The GTK+ 1.2 port of the wxWindows library
%define rel 0
Summary: The GTK+ 1.2 port of the wxWindows library
Release: %{rel}
Copyright: wxWindows Licence
Group: X11/Libraries
Release: %{rel}
Copyright: wxWindows Licence
Group: X11/Libraries
-Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK-2.1.10.tgz
+Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK-2.1.11.tgz
URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html
Packager: Robert Roebling <roebling@ruf.uni-freiburg.de>
BuildRoot: /tmp/wxgtk_root
URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html
Packager: Robert Roebling <roebling@ruf.uni-freiburg.de>
BuildRoot: /tmp/wxgtk_root