From e3e717ecc5add075cd53a04cf24fe27e24170944 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 9 Jul 1999 14:32:50 +0000 Subject: [PATCH] added wxUSE_FS_INET/ZIP git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- acconfig.h | 24 +++++++++++++++--------- configure.in | 14 ++++++++++++++ include/wx/protocol/protocol.h | 10 ++++++++-- samples/notebook/test.cpp | 30 +++++++++++++++++++++++------- src/common/filesys.cpp | 5 ++++- src/common/fs_inet.cpp | 8 ++++---- src/common/fs_zip.cpp | 9 +++------ src/gtk/radiobox.cpp | 14 +++++++++++--- src/gtk1/radiobox.cpp | 14 +++++++++++--- 9 files changed, 93 insertions(+), 35 deletions(-) diff --git a/acconfig.h b/acconfig.h index e0f7d38429..93a64d8ffa 100644 --- a/acconfig.h +++ b/acconfig.h @@ -474,15 +474,15 @@ * Use Apple Ieee-double converter */ #define wxUSE_APPLE_IEEE 0 -/* +/* * Compatibility with 1.66 API. * Level 0: no backward compatibility, all new features * Level 1: wxDC, OnSize (etc.) compatibility, but - * some new features such as event tables + * some new features such as event tables */ #define WXWIN_COMPATIBILITY 0 -/* - * Compatibility with 2.0 API. +/* + * Compatibility with 2.0 API. */ #define WXWIN_COMPATIBILITY_2 1 /* @@ -538,6 +538,12 @@ */ #define wxUSE_HTML 0 +/* + * (virtual) filesystems code + */ +#define wxUSE_FS_INET 0 +#define wxUSE_FS_ZIP 0 + /* * Disable this if your compiler can't cope * with omission of prototype parameters. @@ -546,11 +552,11 @@ /* * The const keyword is being introduced more in wxWindows. * You can use this setting to maintain backward compatibility. - * If 0: will use const wherever possible. - * If 1: will use const only where necessary - * for precompiled headers to work. - * If 2: will be totally backward compatible, but precompiled - * headers may not work and program size will be larger. + * If 0: will use const wherever possible. + * If 1: will use const only where necessary + * for precompiled headers to work. + * If 2: will be totally backward compatible, but precompiled + * headers may not work and program size will be larger. */ #define CONST_COMPATIBILITY 0 diff --git a/configure.in b/configure.in index 3aceaf4cdf..a2047c8239 100644 --- a/configure.in +++ b/configure.in @@ -293,6 +293,8 @@ if test $DEBUG_CONFIGURE = 1; then DEFAULT_wxUSE_PROGRESSDLG=no DEFAULT_wxUSE_MINIFRAME=no DEFAULT_wxUSE_HTML=no + DEFAULT_wxUSE_FS_INET=no + DEFAULT_wxUSE_FS_ZIP=no DEFAULT_wxUSE_VALIDATORS=yes DEFAULT_wxUSE_ACCEL=no @@ -393,6 +395,8 @@ else DEFAULT_wxUSE_PROGRESSDLG=yes DEFAULT_wxUSE_MINIFRAME=yes DEFAULT_wxUSE_HTML=no + DEFAULT_wxUSE_FS_INET=no + DEFAULT_wxUSE_FS_ZIP=no DEFAULT_wxUSE_VALIDATORS=yes DEFAULT_wxUSE_ACCEL=yes @@ -525,6 +529,8 @@ WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) +WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET) +WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP) dnl --------------------------------------------------------------------------- dnl "big" options (i.e. those which change a lot of things throughout the library) @@ -1542,6 +1548,14 @@ if test "$wxUSE_FILE" = "yes"; then AC_DEFINE(wxUSE_FILE) fi +if test "$wxUSE_FS_INET" = "yes"; then + AC_DEFINE(wxUSE_FS_INET) +fi + +if test "$wxUSE_FS_ZIP" = "yes"; then + AC_DEFINE(wxUSE_FS_ZIP) +fi + if test "$wxUSE_STD_IOSTREAM" = "yes"; then AC_DEFINE(wxUSE_STD_IOSTREAM) fi diff --git a/include/wx/protocol/protocol.h b/include/wx/protocol/protocol.h index f9d105406d..ad3cf86f83 100644 --- a/include/wx/protocol/protocol.h +++ b/include/wx/protocol/protocol.h @@ -15,6 +15,10 @@ #pragma interface #endif +#include "wx/defs.h" + +#if wxUSE_SOCKETS + #include "wx/object.h" #include "wx/string.h" #include "wx/stream.h" @@ -30,7 +34,7 @@ typedef enum { wxPROTO_NOFILE, wxPROTO_ABRT, wxPROTO_RCNCT, - wxPROTO_STREAMING + wxPROTO_STREAMING } wxProtocolError; // For protocols @@ -76,4 +80,6 @@ public: wxProtocolError WXDLLEXPORT GetLine(wxSocketBase *sock, wxString& result); -#endif +#endif // wxUSE_SOCKETS + +#endif // _WX_PROTOCOL_PROTOCOL_H diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp index 6413033ed4..e9d6088176 100644 --- a/samples/notebook/test.cpp +++ b/samples/notebook/test.cpp @@ -6,7 +6,7 @@ // Created: 26/10/98 // RCS-ID: $Id$ // Copyright: (c) -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx.h". @@ -41,7 +41,7 @@ bool MyApp::OnInit(void) // Quit immediately the dialog has been dismissed return FALSE; #else - frame = new MyFrame((wxFrame*) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE); + frame = new MyFrame((wxFrame*) NULL, -1, "Notebook", wxPoint(-1, -1), wxSize(365, 390) ); // Problem with generic wxNotebook implementation whereby it doesn't size properly unless // you set the size again @@ -88,19 +88,33 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) // panel1->SetBackgroundColour(wxColour("RED")); (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - + notebook->AddPage(panel1, "Cat", TRUE); wxPanel *panel2 = new wxPanel(notebook, -1); + panel2->SetAutoLayout(TRUE); panel2->SetBackgroundColour(wxColour("BLUE")); wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - (void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); + wxListBox *listbox = new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); + + c = new wxLayoutConstraints; + c->left.SameAs(panel2, wxLeft, 4); + c->top.SameAs(panel2, wxTop, 4); + c->height.PercentOf(panel2, wxHeight, 50); + c->right.SameAs(panel2, wxRight, 4); + listbox->SetConstraints(c); - (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), - wxTE_MULTILINE); + wxTextCtrl *text = new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), wxTE_MULTILINE); + c = new wxLayoutConstraints; + c->left.SameAs(panel2, wxLeft, 4); + c->bottom.SameAs(panel2, wxBottom, 4); + c->top.Below(listbox, 4); + c->right.SameAs(panel2, wxRight, 4); + text->SetConstraints(c); notebook->AddPage(panel2, "Dog"); + wxPanel *panel3 = new wxPanel(notebook, -1); panel3->SetBackgroundColour(wxColour("WHITE")); notebook->AddPage(panel3, "Goat"); @@ -108,11 +122,13 @@ void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) wxPanel *panel4 = new wxPanel(notebook, -1); panel4->SetBackgroundColour(wxColour("YELLOW")); notebook->AddPage(panel4, "Sheep"); - + wxPanel *panel5 = new wxPanel(notebook, -1); panel5->SetBackgroundColour(wxColour("MAGENTA")); (void)new wxStaticText(panel5, -1, "This page has been inserted, not added", wxPoint(10, 10) ); notebook->InsertPage(0, panel5, "Sheep"); + + notebook->SetSelection(2); } BEGIN_EVENT_TABLE(MyDialog, wxDialog) diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index 5712bf60ba..6adf75e2df 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -16,6 +16,8 @@ #pragma hdrstop #endif +#if wxUSE_FS_INET || wxUSE_FS_ZIP + #ifndef WXPRECOMP #include #endif @@ -66,7 +68,7 @@ wxString wxFileSystemHandler::GetProtocol(const wxString& location) const fnd = FALSE; for (i = l-1; (i >= 0) && ((location[i] != '#') || (!fnd)); i--) { - if ((location[i] == ':') && (i != 1 /*win: C:\path*/)) fnd = TRUE; + if ((location[i] == ':') && (i != 1 /*win: C:\path*/)) fnd = TRUE; } if (!fnd) return "file"; for (++i; (i < l) && (location[i] != ':'); i++) s << location[i]; @@ -291,4 +293,5 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileSystemModule, wxModule) +#endif // wxUSE_FS_INET || wxUSE_FS_ZIP diff --git a/src/common/fs_inet.cpp b/src/common/fs_inet.cpp index acb0c25831..3c016825ac 100644 --- a/src/common/fs_inet.cpp +++ b/src/common/fs_inet.cpp @@ -8,7 +8,7 @@ /* -REMARKS : +REMARKS : This FS creates local cache (in /tmp directory). The cache is freed on program exit. @@ -29,6 +29,8 @@ limitation) #pragma hdrstop #endif +#if wxUSE_FS_INET + #ifndef WXPRECOMP #include #endif @@ -125,6 +127,4 @@ wxInternetFSHandler::~wxInternetFSHandler() } } - - - +#endif // wxUSE_FS_INET diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp index 2bd3b224ed..a77a338dff 100644 --- a/src/common/fs_zip.cpp +++ b/src/common/fs_zip.cpp @@ -17,6 +17,8 @@ #pragma hdrstop #endif +#if wxUSE_FS_ZIP + #ifndef WXPRECOMP #include #endif @@ -67,9 +69,4 @@ wxZipFSHandler::~wxZipFSHandler() { } - - - - - - +#endif // wxUSE_FS_ZIP diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp index 7d2f23a120..3e2dc3124c 100644 --- a/src/gtk/radiobox.cpp +++ b/src/gtk/radiobox.cpp @@ -113,8 +113,8 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title, gtk_signal_connect( GTK_OBJECT(m_radio), "clicked", GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), - GTK_WIDGET(m_radio), + gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), + GTK_WIDGET(m_radio), m_x+10, m_y+10+(i*24), 10, 10 ); } @@ -163,6 +163,14 @@ wxSize wxRadioBox::LayoutItems() int x = 7; int y = 15; + if ( m_majorDim == 0 ) + { + // avoid dividing by 0 below + wxFAIL_MSG( "dimension of radiobox should not be 0!" ); + + m_majorDim = 1; + } + int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; wxSize res( 0, 0 ); @@ -254,7 +262,7 @@ bool wxRadioBox::Show( bool show ) if ((m_windowStyle & wxNO_BORDER) != 0) gtk_widget_hide( m_widget ); - + wxNode *node = m_boxes.First(); while (node) { diff --git a/src/gtk1/radiobox.cpp b/src/gtk1/radiobox.cpp index 7d2f23a120..3e2dc3124c 100644 --- a/src/gtk1/radiobox.cpp +++ b/src/gtk1/radiobox.cpp @@ -113,8 +113,8 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title, gtk_signal_connect( GTK_OBJECT(m_radio), "clicked", GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), - GTK_WIDGET(m_radio), + gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), + GTK_WIDGET(m_radio), m_x+10, m_y+10+(i*24), 10, 10 ); } @@ -163,6 +163,14 @@ wxSize wxRadioBox::LayoutItems() int x = 7; int y = 15; + if ( m_majorDim == 0 ) + { + // avoid dividing by 0 below + wxFAIL_MSG( "dimension of radiobox should not be 0!" ); + + m_majorDim = 1; + } + int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; wxSize res( 0, 0 ); @@ -254,7 +262,7 @@ bool wxRadioBox::Show( bool show ) if ((m_windowStyle & wxNO_BORDER) != 0) gtk_widget_hide( m_widget ); - + wxNode *node = m_boxes.First(); while (node) { -- 2.45.2