From 112892b9180e35d20ca68d2383feb04a0aaa4af3 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Thu, 4 Jun 1998 16:08:47 +0000 Subject: [PATCH] GTK - added docview sample, doesn't work :-( - changed wxBmpButton callback name git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/textctrl.h | 11 ++++++++--- include/wx/gtk1/textctrl.h | 11 ++++++++--- samples/docview/Makefile | 1 + samples/docview/Makefile.in | 26 ++++++++++++++++++++++++++ samples/docview/doc.cpp | 2 +- src/gtk/bmpbuttn.cpp | 4 ++-- src/gtk/textctrl.cpp | 36 ++++++++++++++++++++++++++++++------ src/gtk1/bmpbuttn.cpp | 4 ++-- src/gtk1/textctrl.cpp | 36 ++++++++++++++++++++++++++++++------ 9 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 samples/docview/Makefile create mode 100644 samples/docview/Makefile.in diff --git a/include/wx/gtk/textctrl.h b/include/wx/gtk/textctrl.h index 0222373fe2..249ed18c17 100644 --- a/include/wx/gtk/textctrl.h +++ b/include/wx/gtk/textctrl.h @@ -59,12 +59,13 @@ class wxTextCtrl: public wxControl, public streambuf wxString GetValue(void) const; void SetValue( const wxString &value ); void WriteText( const wxString &text ); -/* - wxString GetLineText( const long lineNo ) const; + bool LoadFile( const wxString &file ); bool SaveFile( const wxString &file ); - void DiscardEdits(void); bool IsModified(void); + void DiscardEdits(void); +/* + wxString GetLineText( const long lineNo ) const; void OnDropFiles( wxDropFilesEvent &event ); long PositionToXY( const long pos, long *x, long *y ) const; long XYToPosition( const long x, const long y ); @@ -96,6 +97,10 @@ class wxTextCtrl: public wxControl, public streambuf wxTextCtrl& operator<<(const float f); wxTextCtrl& operator<<(const double d); wxTextCtrl& operator<<(const char c); + + public: + + bool m_modified; DECLARE_EVENT_TABLE() diff --git a/include/wx/gtk1/textctrl.h b/include/wx/gtk1/textctrl.h index 0222373fe2..249ed18c17 100644 --- a/include/wx/gtk1/textctrl.h +++ b/include/wx/gtk1/textctrl.h @@ -59,12 +59,13 @@ class wxTextCtrl: public wxControl, public streambuf wxString GetValue(void) const; void SetValue( const wxString &value ); void WriteText( const wxString &text ); -/* - wxString GetLineText( const long lineNo ) const; + bool LoadFile( const wxString &file ); bool SaveFile( const wxString &file ); - void DiscardEdits(void); bool IsModified(void); + void DiscardEdits(void); +/* + wxString GetLineText( const long lineNo ) const; void OnDropFiles( wxDropFilesEvent &event ); long PositionToXY( const long pos, long *x, long *y ) const; long XYToPosition( const long x, const long y ); @@ -96,6 +97,10 @@ class wxTextCtrl: public wxControl, public streambuf wxTextCtrl& operator<<(const float f); wxTextCtrl& operator<<(const double d); wxTextCtrl& operator<<(const char c); + + public: + + bool m_modified; DECLARE_EVENT_TABLE() diff --git a/samples/docview/Makefile b/samples/docview/Makefile new file mode 100644 index 0000000000..027d82ae19 --- /dev/null +++ b/samples/docview/Makefile @@ -0,0 +1 @@ +include ../../src/gtk/setup/general/makeapp diff --git a/samples/docview/Makefile.in b/samples/docview/Makefile.in new file mode 100644 index 0000000000..7f81acbf0f --- /dev/null +++ b/samples/docview/Makefile.in @@ -0,0 +1,26 @@ +# WXXT base directory +WXBASEDIR=@WXBASEDIR@ + +# set the OS type for compilation +OS=@OS@ +# compile a library only +RULE=bin + +# define library name +BIN_TARGET=test +# define library sources +BIN_SRC=\ +doc.cpp view.cpp docview.cpp + +#define library objects +BIN_OBJ=\ +doc.o view.o docview.o + +# additional things needed to link +BIN_LINK= + +# additional things needed to compile +ADD_COMPILE= + +# include the definitions now +include ../../../template.mak diff --git a/samples/docview/doc.cpp b/samples/docview/doc.cpp index 5e871203a6..662fe82e16 100644 --- a/samples/docview/doc.cpp +++ b/samples/docview/doc.cpp @@ -258,7 +258,7 @@ bool TextEditDocument::IsModified(void) const TextEditView *view = (TextEditView *)GetFirstView(); if (view) { - return (wxDocument::IsModified() || view->textsw->Modified()); + return (wxDocument::IsModified() || view->textsw->IsModified()); } else return wxDocument::IsModified(); diff --git a/src/gtk/bmpbuttn.cpp b/src/gtk/bmpbuttn.cpp index 23909f6f3f..09722663f3 100644 --- a/src/gtk/bmpbuttn.cpp +++ b/src/gtk/bmpbuttn.cpp @@ -26,7 +26,7 @@ class wxBitmapButton; IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl) -void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), gpointer data ) +void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxBitmapButton *button = (wxBitmapButton*)data; wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); @@ -77,7 +77,7 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &b SetSize( newSize.x, newSize.y ); gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); + GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this ); PostCreation(); diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index 01b1d4477f..f43f88964d 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -21,6 +21,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) +void gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) +{ + win->m_modified = TRUE; +}; + BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) // EVT_CHAR(wxTextCtrl::OnChar) @@ -28,12 +33,14 @@ END_EVENT_TABLE() wxTextCtrl::wxTextCtrl(void) : streambuf() { + m_modified = FALSE; }; wxTextCtrl::wxTextCtrl( wxWindow *parent, const wxWindowID id, const wxString &value, const wxPoint &pos, const wxSize &size, const int style, const wxString &name ) : streambuf() { + m_modified = FALSE; Create( parent, id, value, pos, size, style, name ); }; @@ -60,7 +67,20 @@ bool wxTextCtrl::Create( wxWindow *parent, const wxWindowID id, const wxString & if (!value.IsNull()) { gint tmp = 0; - gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length(), &tmp ); + + // Don't know why this is so + if (style & wxTE_MULTILINE) + gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length()+1, &tmp ); + else + gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length(), &tmp ); + }; + + if (style & wxREADONLY) + { + } + else + { + if (style & wxTE_MULTILINE) gtk_text_set_editable( GTK_TEXT(m_widget), 1 ); }; Show( TRUE ); @@ -115,27 +135,31 @@ void wxTextCtrl::WriteText( const wxString &text ) }; }; -/* -wxString wxTextCtrl::GetLineText( const long lineNo ) const +bool wxTextCtrl::LoadFile( const wxString &WXUNUSED(file) ) { + return FALSE; }; -bool wxTextCtrl::LoadFile( const wxString &file ) +bool wxTextCtrl::SaveFile( const wxString &WXUNUSED(file) ) { + return FALSE; }; -bool wxTextCtrl::SaveFile( const wxString &file ) +bool wxTextCtrl::IsModified(void) { + return m_modified; }; void wxTextCtrl::DiscardEdits(void) { }; -bool wxTextCtrl::IsModified(void) +/* +wxString wxTextCtrl::GetLineText( const long lineNo ) const { }; + void wxTextCtrl::OnDropFiles( wxDropFilesEvent &event ) { }; diff --git a/src/gtk1/bmpbuttn.cpp b/src/gtk1/bmpbuttn.cpp index 23909f6f3f..09722663f3 100644 --- a/src/gtk1/bmpbuttn.cpp +++ b/src/gtk1/bmpbuttn.cpp @@ -26,7 +26,7 @@ class wxBitmapButton; IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl) -void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), gpointer data ) +void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxBitmapButton *button = (wxBitmapButton*)data; wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); @@ -77,7 +77,7 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &b SetSize( newSize.x, newSize.y ); gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); + GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this ); PostCreation(); diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index 01b1d4477f..f43f88964d 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -21,6 +21,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) +void gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) +{ + win->m_modified = TRUE; +}; + BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) // EVT_CHAR(wxTextCtrl::OnChar) @@ -28,12 +33,14 @@ END_EVENT_TABLE() wxTextCtrl::wxTextCtrl(void) : streambuf() { + m_modified = FALSE; }; wxTextCtrl::wxTextCtrl( wxWindow *parent, const wxWindowID id, const wxString &value, const wxPoint &pos, const wxSize &size, const int style, const wxString &name ) : streambuf() { + m_modified = FALSE; Create( parent, id, value, pos, size, style, name ); }; @@ -60,7 +67,20 @@ bool wxTextCtrl::Create( wxWindow *parent, const wxWindowID id, const wxString & if (!value.IsNull()) { gint tmp = 0; - gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length(), &tmp ); + + // Don't know why this is so + if (style & wxTE_MULTILINE) + gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length()+1, &tmp ); + else + gtk_editable_insert_text( GTK_EDITABLE(m_widget), value, value.Length(), &tmp ); + }; + + if (style & wxREADONLY) + { + } + else + { + if (style & wxTE_MULTILINE) gtk_text_set_editable( GTK_TEXT(m_widget), 1 ); }; Show( TRUE ); @@ -115,27 +135,31 @@ void wxTextCtrl::WriteText( const wxString &text ) }; }; -/* -wxString wxTextCtrl::GetLineText( const long lineNo ) const +bool wxTextCtrl::LoadFile( const wxString &WXUNUSED(file) ) { + return FALSE; }; -bool wxTextCtrl::LoadFile( const wxString &file ) +bool wxTextCtrl::SaveFile( const wxString &WXUNUSED(file) ) { + return FALSE; }; -bool wxTextCtrl::SaveFile( const wxString &file ) +bool wxTextCtrl::IsModified(void) { + return m_modified; }; void wxTextCtrl::DiscardEdits(void) { }; -bool wxTextCtrl::IsModified(void) +/* +wxString wxTextCtrl::GetLineText( const long lineNo ) const { }; + void wxTextCtrl::OnDropFiles( wxDropFilesEvent &event ) { }; -- 2.45.2