X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c67daf87774c71ae9f73af9969008af220e52a11..520e470fdd0daef09c77938db642e4583933c90d:/src/gtk1/textctrl.cpp diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp index e3c2deed14..77ecdef60d 100644 --- a/src/gtk1/textctrl.cpp +++ b/src/gtk1/textctrl.cpp @@ -17,11 +17,9 @@ #include //----------------------------------------------------------------------------- -// wxTextCtrl +// "changed" //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) - static void gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) { win->SetModified(); @@ -33,11 +31,17 @@ static void gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl * win->GetEventHandler()->ProcessEvent( event ); } +//----------------------------------------------------------------------------- +// wxTextCtrl +//----------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) + BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) EVT_CHAR(wxTextCtrl::OnChar) END_EVENT_TABLE() -wxTextCtrl::wxTextCtrl(void) : streambuf() +wxTextCtrl::wxTextCtrl() : streambuf() { if (allocate()) setp(base(),ebuf()); @@ -145,7 +149,7 @@ bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value, return TRUE; } -wxString wxTextCtrl::GetValue(void) const +wxString wxTextCtrl::GetValue() const { wxString tmp; if (m_windowStyle & wxTE_MULTILINE) @@ -224,7 +228,7 @@ long wxTextCtrl::XYToPosition( long x, long y ) { } -int wxTextCtrl::GetNumberOfLines(void) +int wxTextCtrl::GetNumberOfLines() { } @@ -238,7 +242,7 @@ void wxTextCtrl::SetInsertionPoint( long pos ) gtk_entry_set_position( GTK_ENTRY(m_text), tmp ); } -void wxTextCtrl::SetInsertionPointEnd(void) +void wxTextCtrl::SetInsertionPointEnd() { int pos = 0; if (m_windowStyle & wxTE_MULTILINE) @@ -266,12 +270,12 @@ void wxTextCtrl::ShowPosition( long WXUNUSED(pos) ) wxFAIL_MSG(_("wxTextCtrl::ShowPosition not implemented")); } -long wxTextCtrl::GetInsertionPoint(void) const +long wxTextCtrl::GetInsertionPoint() const { return (long) GTK_EDITABLE(m_text)->current_pos; } -long wxTextCtrl::GetLastPosition(void) const +long wxTextCtrl::GetLastPosition() const { int pos = 0; if (m_windowStyle & wxTE_MULTILINE) @@ -294,22 +298,34 @@ void wxTextCtrl::Replace( long from, long to, const wxString &value ) gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos ); } -void wxTextCtrl::Cut(void) +void wxTextCtrl::Cut() { +#if (GTK_MINOR_VERSION == 1) + gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) ); +#else gtk_editable_cut_clipboard( GTK_EDITABLE(m_text), 0 ); +#endif } -void wxTextCtrl::Copy(void) +void wxTextCtrl::Copy() { +#if (GTK_MINOR_VERSION == 1) + gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) ); +#else gtk_editable_copy_clipboard( GTK_EDITABLE(m_text), 0 ); +#endif } -void wxTextCtrl::Paste(void) +void wxTextCtrl::Paste() { +#if (GTK_MINOR_VERSION == 1) + gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) ); +#else gtk_editable_paste_clipboard( GTK_EDITABLE(m_text), 0 ); +#endif } -void wxTextCtrl::Delete(void) +void wxTextCtrl::Clear() { SetValue( "" ); } @@ -320,7 +336,6 @@ void wxTextCtrl::OnChar( wxKeyEvent &key_event ) { wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); event.SetEventObject(this); - printf( "Hallo.\n" ); if (GetEventHandler()->ProcessEvent(event)) return; } else if (key_event.KeyCode() == WXK_TAB) @@ -347,7 +362,7 @@ int wxTextCtrl::overflow( int WXUNUSED(c) ) return EOF; } -int wxTextCtrl::sync(void) +int wxTextCtrl::sync() { int len = pptr() - pbase(); char *txt = new char[len+1]; @@ -359,7 +374,7 @@ int wxTextCtrl::sync(void) return 0; } -int wxTextCtrl::underflow(void) +int wxTextCtrl::underflow() { return EOF; } @@ -412,7 +427,7 @@ wxTextCtrl& wxTextCtrl::operator<<(const char c) return *this; } -GtkWidget* wxTextCtrl::GetConnectWidget(void) +GtkWidget* wxTextCtrl::GetConnectWidget() { return GTK_WIDGET(m_text); } @@ -425,5 +440,28 @@ bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window ) return (window == GTK_ENTRY(m_text)->text_area); } +void wxTextCtrl::SetFont( const wxFont &font ) +{ + if (((wxFont*)&font)->Ok()) + m_font = font; + else + m_font = *wxSWISS_FONT; + + GtkStyle *style = (GtkStyle*) NULL; + if (!m_hasOwnStyle) + { + m_hasOwnStyle = TRUE; + style = gtk_style_copy( gtk_widget_get_style( m_text ) ); + } + else + { + style = gtk_widget_get_style( m_text ); + } + + gdk_font_unref( style->font ); + style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) ); + + gtk_widget_set_style( m_text, style ); +}