From e90196a556e288234cacf7e5166f3f4a6d971175 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sun, 31 Oct 1999 15:31:43 +0000 Subject: [PATCH] Distrib changes. 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 --- configure.in | 2 +- docs/gtk/changes.txt | 14 ++- docs/gtk/readme.txt | 26 +++-- docs/gtk/todo.txt | 8 -- docs/motif/install.txt | 2 +- include/wx/version.h | 4 +- src/common/valgen.cpp | 257 ++++++++++++++++++++++------------------- src/gtk/mdi.cpp | 46 ++++++-- src/gtk1/mdi.cpp | 46 ++++++-- wxGTK.spec | 4 +- 10 files changed, 251 insertions(+), 158 deletions(-) diff --git a/configure.in b/configure.in index 8128b0c3ea..762304c6e1 100644 --- a/configure.in +++ b/configure.in @@ -401,7 +401,7 @@ dnl WX_INTERFACE_AGE = 0 WX_MAJOR_VERSION_NUMBER=2 WX_MINOR_VERSION_NUMBER=1 -WX_RELEASE_NUMBER=10 +WX_RELEASE_NUMBER=11 WX_INTERFACE_AGE=0 WX_BINARY_AGE=0 diff --git a/docs/gtk/changes.txt b/docs/gtk/changes.txt index 19f119fa6e..fbcd2e58e1 100644 --- a/docs/gtk/changes.txt +++ b/docs/gtk/changes.txt @@ -1,5 +1,5 @@ -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), @@ -55,7 +55,8 @@ all relevant SQL databases (even DBase). For that reason 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 @@ -107,6 +108,15 @@ A handler to read PCX file (in most variants) has been added. 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 diff --git a/docs/gtk/readme.txt b/docs/gtk/readme.txt index 34fcf18016..62b3bb1444 100644 --- a/docs/gtk/readme.txt +++ b/docs/gtk/readme.txt @@ -1,10 +1,17 @@ - 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 -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 @@ -15,18 +22,17 @@ More information is available from my homepage at: 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 -many systems (when using GTK 1.0 or when not using Linux -read the INSTALL.txt): +many systems: -./configure +./configure --with-gtk make su make install diff --git a/docs/gtk/todo.txt b/docs/gtk/todo.txt index 12037f5f26..89a9b4c83c 100644 --- a/docs/gtk/todo.txt +++ b/docs/gtk/todo.txt @@ -1,16 +1,10 @@ -------------------- High priority --------------------- -Finalise DnD API. - Fix bug that thread sample reports about non-finished threads. -Added wxExpandedImageList to wxTreeControl. - More testing of Unicode support. -Make wxSockets work on all platform. - Add ID based i18n system as a replacement for the unelegant gettext system. @@ -20,8 +14,6 @@ Add TIFF handler. Someone? (Hint, hint). 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 diff --git a/docs/motif/install.txt b/docs/motif/install.txt index efdd4aabfe..99459b20d3 100644 --- a/docs/motif/install.txt +++ b/docs/motif/install.txt @@ -315,7 +315,7 @@ are --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. diff --git a/include/wx/version.h b/include/wx/version.h index 7b1f21ce05..f0145306de 100644 --- a/include/wx/version.h +++ b/include/wx/version.h @@ -15,8 +15,8 @@ /* 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) diff --git a/src/common/valgen.cpp b/src/common/valgen.cpp index c230dddb21..05134307bc 100644 --- a/src/common/valgen.cpp +++ b/src/common/valgen.cpp @@ -41,6 +41,7 @@ #include "wx/textctrl.h" #include "wx/button.h" #include "wx/listbox.h" + #include "wx/slider.h" #endif #ifndef __WIN16__ @@ -81,14 +82,14 @@ wxGenericValidator::wxGenericValidator(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; - return TRUE; + return TRUE; } wxGenericValidator::~wxGenericValidator() @@ -98,131 +99,144 @@ wxGenericValidator::~wxGenericValidator() // Called to transfer data to the window bool wxGenericValidator::TransferToWindow(void) { - if ( !m_validatorWindow ) - return FALSE; + if ( !m_validatorWindow ) + return FALSE; - // bool controls + // bool controls #if wxUSE_CHECKBOX - 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 - 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 #endif - // int controls + + // int controls #if wxUSE_GAUGE - 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 - 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 - 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__ - 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 #endif #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)) ) - { - 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; if (m_pString) + { + 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 #endif #if wxUSE_CHOICE - 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 #endif - 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; if (m_pString) + { + 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 @@ -249,22 +263,22 @@ bool wxGenericValidator::TransferToWindow(void) #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 @@ -272,7 +286,7 @@ bool wxGenericValidator::TransferToWindow(void) return FALSE; } -// Called to transfer data to the window +// Called to transfer data from the window bool wxGenericValidator::TransferFromWindow(void) { if ( !m_validatorWindow ) @@ -347,6 +361,17 @@ bool wxGenericValidator::TransferFromWindow(void) } } else #endif +#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)) ) @@ -399,7 +424,7 @@ bool wxGenericValidator::TransferFromWindow(void) return TRUE; } } else -#if wxUSE_LISTBOX +#if wxUSE_CHECKLISTBOX #ifndef __WIN16__ // array controls // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp index f31951f90c..c8e3e8001f 100644 --- a/src/gtk/mdi.cpp +++ b/src/gtk/mdi.cpp @@ -47,21 +47,51 @@ extern wxList wxPendingDelete; // "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(); + // send deactivate event to old child + 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 - if (!child) return; + 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 ); } //----------------------------------------------------------------------------- diff --git a/src/gtk1/mdi.cpp b/src/gtk1/mdi.cpp index f31951f90c..c8e3e8001f 100644 --- a/src/gtk1/mdi.cpp +++ b/src/gtk1/mdi.cpp @@ -47,21 +47,51 @@ extern wxList wxPendingDelete; // "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(); + // send deactivate event to old child + 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 - if (!child) return; + 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 ); } //----------------------------------------------------------------------------- diff --git a/wxGTK.spec b/wxGTK.spec index 19682dac18..7e2c946ac8 100644 --- a/wxGTK.spec +++ b/wxGTK.spec @@ -1,6 +1,6 @@ # Note that this is NOT a relocatable package %define pref /usr -%define ver 2.1.10 +%define ver 2.1.11 %define rel 0 Summary: The GTK+ 1.2 port of the wxWindows library @@ -9,7 +9,7 @@ Version: %{ver} 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 BuildRoot: /tmp/wxgtk_root -- 2.45.2