wxCHECK_MSG( m_text != NULL, wxEmptyString, wxT("invalid text ctrl") );
wxString tmp;
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter start;
gtk_text_buffer_get_start_iter( m_buffer, &start );
m_modified = false;
DontMarkDirtyOnNextChange();
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
const wxCharBuffer buffer(wxGTK_CONV(value));
if ( !buffer )
// we're changing the text programmatically
DontMarkDirtyOnNextChange();
- if ( m_windowStyle & wxTE_MULTILINE )
+ if ( IsMultiLine() )
{
// First remove the selection if there is one
// TODO: Is there an easier GTK specific way to do this?
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter line;
gtk_text_buffer_get_iter_at_line(m_buffer,&line,lineNo);
bool wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const
{
- if ( m_windowStyle & wxTE_MULTILINE )
+ if ( IsMultiLine() )
{
GtkTextIter iter;
long wxTextCtrl::XYToPosition(long x, long y ) const
{
- if (!(m_windowStyle & wxTE_MULTILINE)) return 0;
+ if ( IsSingleLine() )
+ return 0;
GtkTextIter iter;
if (y >= gtk_text_buffer_get_line_count (m_buffer))
int wxTextCtrl::GetLineLength(long lineNo) const
{
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
int last_line = gtk_text_buffer_get_line_count( m_buffer ) - 1;
if (lineNo > last_line)
int wxTextCtrl::GetNumberOfLines() const
{
- if ( m_windowStyle & wxTE_MULTILINE )
+ if ( IsMultiLine() )
{
GtkTextIter iter;
gtk_text_buffer_get_iter_at_offset( m_buffer, &iter, 0 );
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter end;
gtk_text_buffer_get_end_iter( m_buffer, &end );
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
gtk_text_view_set_editable( GTK_TEXT_VIEW(m_text), editable );
}
return false;
}
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
SetEditable( enable );
}
to = GetValue().length();
}
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter fromi, toi;
gtk_text_buffer_get_iter_at_offset( m_buffer, &fromi, from );
void wxTextCtrl::ShowPosition( long pos )
{
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter iter;
gtk_text_buffer_get_start_iter( m_buffer, &iter );
{
wxCHECK_MSG( m_text != NULL, 0, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
// There is no direct accessor for the cursor, but
// internally, the cursor is the "mark" called
int pos = 0;
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter end;
gtk_text_buffer_get_end_iter( m_buffer, &end );
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter fromi, toi;
gtk_text_buffer_get_iter_at_offset( m_buffer, &fromi, from );
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
g_signal_emit_by_name (m_text, "cut-clipboard");
else
gtk_editable_cut_clipboard(GTK_EDITABLE(m_text));
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
g_signal_emit_by_name (m_text, "copy-clipboard");
else
gtk_editable_copy_clipboard(GTK_EDITABLE(m_text));
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
g_signal_emit_by_name (m_text, "paste-clipboard");
else
gtk_editable_paste_clipboard(GTK_EDITABLE(m_text));
gint to = -1;
bool haveSelection = false;
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
GtkTextIter ifrom, ito;
if ( gtk_text_buffer_get_selection_bounds(m_buffer, &ifrom, &ito) )
{
wxCHECK_MSG( m_text != NULL, false, wxT("invalid text ctrl") );
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
return gtk_text_view_get_editable(GTK_TEXT_VIEW(m_text));
}
{
wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- if ((key_event.GetKeyCode() == WXK_RETURN) && (m_windowStyle & wxTE_PROCESS_ENTER))
- {
- wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
- event.SetEventObject(this);
- event.SetString(GetValue());
- if (GetEventHandler()->ProcessEvent(event)) return;
- }
-
- if ((key_event.GetKeyCode() == WXK_RETURN) && !(m_windowStyle & wxTE_MULTILINE))
+ if ( key_event.GetKeyCode() == WXK_RETURN )
{
- // This will invoke the dialog default action, such
- // as the clicking the default button.
-
- wxWindow *top_frame = m_parent;
- while (top_frame->GetParent() && !(top_frame->IsTopLevel()))
- top_frame = top_frame->GetParent();
+ if ( HasFlag(wxTE_PROCESS_ENTER) )
+ {
+ wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
+ event.SetEventObject(this);
+ event.SetString(GetValue());
+ if ( GetEventHandler()->ProcessEvent(event) )
+ return;
+ }
- if (top_frame && GTK_IS_WINDOW(top_frame->m_widget))
+ // FIXME: this is not the right place to do it, wxDialog::OnCharHook()
+ // probably is
+ if ( IsSingleLine() )
{
- GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
+ // This will invoke the dialog default action, such
+ // as the clicking the default button.
- if (window->default_widget)
+ wxWindow *top_frame = m_parent;
+ while (top_frame->GetParent() && !(top_frame->IsTopLevel()))
+ top_frame = top_frame->GetParent();
+
+ if (top_frame && GTK_IS_WINDOW(top_frame->m_widget))
{
- gtk_widget_activate (window->default_widget);
- return;
+ GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
+
+ if (window->default_widget)
+ {
+ gtk_widget_activate (window->default_widget);
+ return;
+ }
}
}
}
bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window )
{
- if (m_windowStyle & wxTE_MULTILINE)
+ if ( IsMultiLine() )
{
return window == gtk_text_view_get_window( GTK_TEXT_VIEW( m_text ), GTK_TEXT_WINDOW_TEXT ); // pure guesswork
}
return false;
}
- if ( m_windowStyle & wxTE_MULTILINE )
+ if ( IsMultiLine() )
{
SetUpdateFont(true);
// possible!
//
// TODO: it can be implemented much more efficiently for GTK2
- wxASSERT_MSG( (m_windowStyle & wxTE_MULTILINE),
+ wxASSERT_MSG( IsMultiLine(),
_T("shouldn't be called for single line controls") );
wxString value = GetValue();
bool wxTextCtrl::SetStyle( long start, long end, const wxTextAttr& style )
{
- if ( m_windowStyle & wxTE_MULTILINE )
+ if ( IsMultiLine() )
{
if ( style.IsDefault() )
{
void wxTextCtrl::OnUrlMouseEvent(wxMouseEvent& event)
{
event.Skip();
- if(!(m_windowStyle & wxTE_AUTO_URL))
+ if( !HasFlag(wxTE_AUTO_URL) )
return;
gint x, y;