#pragma interface "docmdi.h"
#endif
+#include "wx/defs.h"
+
+#if wxUSE_MDI_ARCHITECTURE
+
#include "wx/docview.h"
#include "wx/mdi.h"
};
+#endif
+ // wxUSE_MDI_ARCHITECTURE
+
#endif
// _WX_DOCMDI_H_
#include "wx/object.h"
#include "wx/control.h"
#include "wx/bitmap.h"
+#include "wx/icon.h"
//-----------------------------------------------------------------------------
// classes
const wxBitmap& GetBitmap() const { return m_bitmap; }
// for compatibility with wxMSW
- wxIcon& GetIcon()
- { return *(wxDynamicCast(&m_bitmap, wxIcon)); }
+ wxIcon& GetIcon();
private:
wxBitmap m_bitmap;
#include "wx/object.h"
#include "wx/control.h"
#include "wx/bitmap.h"
+#include "wx/icon.h"
//-----------------------------------------------------------------------------
// classes
const wxBitmap& GetBitmap() const { return m_bitmap; }
// for compatibility with wxMSW
- wxIcon& GetIcon()
- { return *(wxDynamicCast(&m_bitmap, wxIcon)); }
+ wxIcon& GetIcon();
private:
wxBitmap m_bitmap;
// Copyright: (c) 1997, 1998 Guilhem Lavaux
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
+
#ifndef _WX_NETWORK_ADDRESS_H
#define _WX_NETWORK_ADDRESS_H
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+#include "wx/defs.h"
+
+#if wxUSE_SOCKETS
+
#if defined(__WINDOWS__) && defined(WXSOCK_INTERNAL)
#include <winsock.h>
#include <netinet/in.h>
#endif
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#ifdef WXPREC
-#include <wx/wxprec.h>
-#else
-#include <wx/wx.h>
-#endif
+#include "wx/string.h"
class WXDLLEXPORT wxSockAddress : public wxObject {
DECLARE_ABSTRACT_CLASS(wxSockAddress)
inline int Type() { return wxSockAddress::UNIX; }
};
#endif
+ // __UNIX__
#endif
+ // wxUSE_SOCKETS
+
+#endif
+ // _WX_NETWORK_ADDRESS_H
#pragma interface
#endif
+#include "wx/defs.h"
+
#if wxUSE_SOCKETS
-#include <wx/object.h>
-#include <wx/list.h>
-#include <wx/socket.h>
-#include <wx/thread.h>
+#include "wx/object.h"
+#include "wx/list.h"
+#include "wx/socket.h"
+#include "wx/thread.h"
// Socket state
class SocketState
#pragma hdrstop
#endif //__BORLANDC__
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_CONFIG && ((wxUSE_FILE && wxUSE_TEXTFILE) || defined(wxCONFIG_WIN32_NATIVE))
#include "wx/app.h"
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_TIMEDATE
#include "wx/date.h"
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_STREAMS
#include "wx/datstrm.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/defs.h"
+ #pragma hdrstop
#endif
#if wxUSE_DOC_VIEW_ARCHITECTURE
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
#include "wx/docmdi.h"
/*
#include "wx/wxprec.h"
#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
+ #pragma hdrstop
#endif
#if wxUSE_DOC_VIEW_ARCHITECTURE
#include "wx/wxprec.h"
-#ifdef __BORLANDC__
-# pragma hdrstop
-#endif //__BORLANDC__
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
#if wxUSE_DYNLIB_CLASS
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_FILE
// standard
#pragma implementation "fileconf.h"
#endif
-// ============================================================================
-// declarations
-// ============================================================================
-
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
-#pragma implementation "ftp.h"
+ #pragma implementation "ftp.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_SOCKETS
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
-#pragma implementation "http.h"
+ #pragma implementation "http.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_SOCKETS
#include <stdio.h>
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_STREAMS
#include <stdlib.h>
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/defs.h"
-#endif
-
#if wxUSE_SERIAL && wxUSE_STREAMS
#include "wx/object.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_SOCKETS
-#ifndef WX_PRECOMP
-#include <wx/wx.h>
-#endif
-
#include "wx/protocol/protocol.h"
#include "wx/url.h"
#include "wx/module.h"
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
-#pragma implementation "sckaddr.h"
+ #pragma implementation "sckaddr.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#if wxUSE_SOCKETS
#include "wx/wxprec.h"
#ifdef __BORLANDC__
-#pragma hdrstop
+ #pragma hdrstop
#endif
#ifndef WX_PRECOMP
-#include "wx/wx.h"
+ #include "wx/utils.h"
+ #include "wx/dcclient.h"
+ #include "wx/dcmemory.h"
+ #include "wx/textctrl.h"
#endif
#include <string.h>
}
}
+wxIcon& wxStaticBitmap::GetIcon()
+{
+ wxIcon *icon = wxDynamicCast(&m_bitmap, wxIcon);
+
+ if (!icon) return wxNullIcon;
+
+ return *icon;
+}
+
#endif
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
- if (text.IsNull()) return;
+ if (text.IsEmpty()) return;
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
if (m_windowStyle & wxTE_MULTILINE)
{
/* this moves the cursor pos to behind the inserted text */
/* bring entry's cursor uptodate. bug in GTK. */
gtk_entry_set_position( GTK_ENTRY(m_text), GTK_EDITABLE(m_text)->current_pos );
}
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::AppendText( const wxString &text )
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ if (text.IsEmpty()) return;
+
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
if (m_windowStyle & wxTE_MULTILINE)
{
/* we'll insert at the last position */
{
gtk_entry_append_text( GTK_ENTRY(m_text), text.mbc_str() );
}
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
bool wxTextCtrl::LoadFile( const wxString &file )
{
- wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
- if (!wxFileExists(file)) return FALSE;
+ if (!wxFileExists(file)) return FALSE;
- Clear();
+ Clear();
- FILE *fp = (FILE*) NULL;
- struct stat statb;
+ FILE *fp = (FILE*) NULL;
+ struct stat statb;
- if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG ||
- !(fp = fopen (FNSTRINGCAST file.fn_str(), "r")))
- {
- return FALSE;
- }
- else
- {
- gint len = statb.st_size;
- char *text;
- if (!(text = (char*)malloc ((unsigned) (len + 1))))
+ if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG ||
+ !(fp = fopen (FNSTRINGCAST file.fn_str(), "r")))
{
- fclose (fp);
- return FALSE;
+ return FALSE;
}
- if (fread (text, sizeof (char), len, fp) != (size_t) len)
+ else
{
- }
- fclose (fp);
+ gint len = statb.st_size;
+ char *text;
+ if (!(text = (char*)malloc ((unsigned) (len + 1))))
+ {
+ fclose (fp);
+ return FALSE;
+ }
+ if (fread (text, sizeof (char), len, fp) != (size_t) len)
+ {
+ }
+ fclose (fp);
- text[len] = 0;
+ text[len] = 0;
- if (m_windowStyle & wxTE_MULTILINE)
- {
- gint pos = 0;
- gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos );
- }
- else
- {
- gtk_entry_set_text( GTK_ENTRY(m_text), text );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
+ if (m_windowStyle & wxTE_MULTILINE)
+ {
+ gint pos = 0;
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos );
+ }
+ else
+ {
+ gtk_entry_set_text( GTK_ENTRY(m_text), text );
+ }
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
+ free (text);
+ m_modified = FALSE;
+ return TRUE;
}
-
- free (text);
- m_modified = FALSE;
- return TRUE;
- }
- return FALSE;
+ return FALSE;
}
bool wxTextCtrl::SaveFile( const wxString &file )
{
- wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
- if (file == _T("")) return FALSE;
+ if (file == _T("")) return FALSE;
- FILE *fp;
+ FILE *fp;
- if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w")))
+ if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w")))
{
- return FALSE;
+ return FALSE;
}
- else
+ else
{
char *text = (char*) NULL;
gint len = 0;
if (m_windowStyle & wxTE_MULTILINE)
{
- len = gtk_text_get_length( GTK_TEXT(m_text) );
- text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len );
+ len = gtk_text_get_length( GTK_TEXT(m_text) );
+ text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len );
}
else
{
- text = gtk_entry_get_text( GTK_ENTRY(m_text) );
+ text = gtk_entry_get_text( GTK_ENTRY(m_text) );
}
if (fwrite (text, sizeof (char), len, fp) != (size_t) len)
return TRUE;
}
- return TRUE;
+ return TRUE;
}
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Replace( long from, long to, const wxString &value )
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
- if (value.IsNull()) return;
- gint pos = (gint)from;
+
+ if (!value.IsEmpty())
+ {
+ gint pos = (gint)from;
#if wxUSE_UNICODE
- wxWX2MBbuf buf = value.mbc_str();
- gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos );
+ wxWX2MBbuf buf = value.mbc_str();
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos );
#else
- gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos );
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos );
#endif
+ }
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Cut()
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
#if (GTK_MINOR_VERSION > 0)
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) );
#else
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text), 0 );
#endif
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Copy()
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
#if (GTK_MINOR_VERSION > 0)
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) );
#else
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text), 0 );
#endif
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
bool wxTextCtrl::CanCopy() const
}
}
+wxIcon& wxStaticBitmap::GetIcon()
+{
+ wxIcon *icon = wxDynamicCast(&m_bitmap, wxIcon);
+
+ if (!icon) return wxNullIcon;
+
+ return *icon;
+}
+
#endif
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
- if (text.IsNull()) return;
+ if (text.IsEmpty()) return;
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
if (m_windowStyle & wxTE_MULTILINE)
{
/* this moves the cursor pos to behind the inserted text */
/* bring entry's cursor uptodate. bug in GTK. */
gtk_entry_set_position( GTK_ENTRY(m_text), GTK_EDITABLE(m_text)->current_pos );
}
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::AppendText( const wxString &text )
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ if (text.IsEmpty()) return;
+
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
if (m_windowStyle & wxTE_MULTILINE)
{
/* we'll insert at the last position */
{
gtk_entry_append_text( GTK_ENTRY(m_text), text.mbc_str() );
}
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
bool wxTextCtrl::LoadFile( const wxString &file )
{
- wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
- if (!wxFileExists(file)) return FALSE;
+ if (!wxFileExists(file)) return FALSE;
- Clear();
+ Clear();
- FILE *fp = (FILE*) NULL;
- struct stat statb;
+ FILE *fp = (FILE*) NULL;
+ struct stat statb;
- if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG ||
- !(fp = fopen (FNSTRINGCAST file.fn_str(), "r")))
- {
- return FALSE;
- }
- else
- {
- gint len = statb.st_size;
- char *text;
- if (!(text = (char*)malloc ((unsigned) (len + 1))))
+ if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG ||
+ !(fp = fopen (FNSTRINGCAST file.fn_str(), "r")))
{
- fclose (fp);
- return FALSE;
+ return FALSE;
}
- if (fread (text, sizeof (char), len, fp) != (size_t) len)
+ else
{
- }
- fclose (fp);
+ gint len = statb.st_size;
+ char *text;
+ if (!(text = (char*)malloc ((unsigned) (len + 1))))
+ {
+ fclose (fp);
+ return FALSE;
+ }
+ if (fread (text, sizeof (char), len, fp) != (size_t) len)
+ {
+ }
+ fclose (fp);
- text[len] = 0;
+ text[len] = 0;
- if (m_windowStyle & wxTE_MULTILINE)
- {
- gint pos = 0;
- gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos );
- }
- else
- {
- gtk_entry_set_text( GTK_ENTRY(m_text), text );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
+ if (m_windowStyle & wxTE_MULTILINE)
+ {
+ gint pos = 0;
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos );
+ }
+ else
+ {
+ gtk_entry_set_text( GTK_ENTRY(m_text), text );
+ }
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
+ free (text);
+ m_modified = FALSE;
+ return TRUE;
}
-
- free (text);
- m_modified = FALSE;
- return TRUE;
- }
- return FALSE;
+ return FALSE;
}
bool wxTextCtrl::SaveFile( const wxString &file )
{
- wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
- if (file == _T("")) return FALSE;
+ if (file == _T("")) return FALSE;
- FILE *fp;
+ FILE *fp;
- if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w")))
+ if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w")))
{
- return FALSE;
+ return FALSE;
}
- else
+ else
{
char *text = (char*) NULL;
gint len = 0;
if (m_windowStyle & wxTE_MULTILINE)
{
- len = gtk_text_get_length( GTK_TEXT(m_text) );
- text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len );
+ len = gtk_text_get_length( GTK_TEXT(m_text) );
+ text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len );
}
else
{
- text = gtk_entry_get_text( GTK_ENTRY(m_text) );
+ text = gtk_entry_get_text( GTK_ENTRY(m_text) );
}
if (fwrite (text, sizeof (char), len, fp) != (size_t) len)
return TRUE;
}
- return TRUE;
+ return TRUE;
}
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Replace( long from, long to, const wxString &value )
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
- if (value.IsNull()) return;
- gint pos = (gint)from;
+
+ if (!value.IsEmpty())
+ {
+ gint pos = (gint)from;
#if wxUSE_UNICODE
- wxWX2MBbuf buf = value.mbc_str();
- gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos );
+ wxWX2MBbuf buf = value.mbc_str();
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos );
#else
- gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos );
+ gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos );
#endif
+ }
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Cut()
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
#if (GTK_MINOR_VERSION > 0)
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) );
#else
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text), 0 );
#endif
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
void wxTextCtrl::Copy()
{
wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") );
+ gtk_signal_disconnect_by_func( GTK_OBJECT(m_text),
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
+
#if (GTK_MINOR_VERSION > 0)
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) );
#else
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text), 0 );
#endif
+
+ gtk_signal_connect( GTK_OBJECT(m_text), "changed",
+ GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
}
bool wxTextCtrl::CanCopy() const