]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/textctrl.h
Added wxWindowBase::CentreOnParent to allow top level windows to be
[wxWidgets.git] / include / wx / gtk / textctrl.h
index 99f76a33050f260b40ce4e6dc8016e8498236e47..95161e524658b3c449177af2108f74d985f53ccd 100644 (file)
 #include "wx/string.h"
 #include "wx/control.h"
 
 #include "wx/string.h"
 #include "wx/control.h"
 
-#if USE_IOSTREAMH
+#if wxUSE_STD_IOSTREAM
+
+#if wxUSE_IOSTREAMH
 #include <iostream.h>
 #else
 #include <iostream>
 #endif
 
 #include <iostream.h>
 #else
 #include <iostream>
 #endif
 
+#else
+
+#define NO_TEXT_WINDOW_STREAM
+
+#endif
+
 //-----------------------------------------------------------------------------
 // classes
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // classes
 //-----------------------------------------------------------------------------
@@ -43,35 +51,41 @@ extern const char *wxTextCtrlNameStr;
 //  wxTextCtrl
 //-----------------------------------------------------------------------------
 
 //  wxTextCtrl
 //-----------------------------------------------------------------------------
 
+#ifndef NO_TEXT_WINDOW_STREAM
 class wxTextCtrl: public wxControl, public streambuf
 class wxTextCtrl: public wxControl, public streambuf
+#else
+class wxTextCtrl: public wxControl
+#endif
 {
   DECLARE_EVENT_TABLE()
   DECLARE_DYNAMIC_CLASS(wxTextCtrl);
 
 {
   DECLARE_EVENT_TABLE()
   DECLARE_DYNAMIC_CLASS(wxTextCtrl);
 
-public:
+  public:
     wxTextCtrl();
     wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value = "",
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
     wxTextCtrl();
     wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value = "",
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      int style = 0, const wxString &name = wxTextCtrlNameStr );
+      int style = 0, const wxValidator& validator = wxDefaultValidator,
+      const wxString &name = wxTextCtrlNameStr );
     bool Create( wxWindow *parent, wxWindowID id, const wxString &value = "",
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
     bool Create( wxWindow *parent, wxWindowID id, const wxString &value = "",
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
-      int style = 0, const wxString &name = wxTextCtrlNameStr );
+      int style = 0, const wxValidator& validator = wxDefaultValidator,
+      const wxString &name = wxTextCtrlNameStr );
     wxString GetValue() const;
     void SetValue( const wxString &value );
     void WriteText( const wxString &text );
     wxString GetValue() const;
     void SetValue( const wxString &value );
     void WriteText( const wxString &text );
+    void AppendText( const wxString &text );
 
     bool LoadFile( const wxString &file );
     bool SaveFile( const wxString &file );
     bool IsModified() const { return m_modified; }
     void SetModified() { m_modified = TRUE; }
     void DiscardEdits() { m_modified = FALSE; }
 
     bool LoadFile( const wxString &file );
     bool SaveFile( const wxString &file );
     bool IsModified() const { return m_modified; }
     void SetModified() { m_modified = TRUE; }
     void DiscardEdits() { m_modified = FALSE; }
-/*
     wxString GetLineText( long lineNo ) const;
     void OnDropFiles( wxDropFilesEvent &event );
     long PositionToXY( long pos, long *x, long *y ) const;
     wxString GetLineText( long lineNo ) const;
     void OnDropFiles( wxDropFilesEvent &event );
     long PositionToXY( long pos, long *x, long *y ) const;
-    long XYToPosition( long x, long y );
-    int GetNumberOfLines();
-*/
+    long XYToPosition( long x, long y ) const;
+    int GetLineLength(long lineNo) const;
+    int GetNumberOfLines() const;
     virtual void SetInsertionPoint( long pos );
     virtual void SetInsertionPointEnd();
     virtual void SetEditable( bool editable );
     virtual void SetInsertionPoint( long pos );
     virtual void SetInsertionPointEnd();
     virtual void SetEditable( bool editable );
@@ -84,10 +98,39 @@ public:
     void Cut();
     void Copy();
     void Paste();
     void Cut();
     void Copy();
     void Paste();
-    void Delete();
+    void Clear();
+
+    virtual bool CanCopy() const;
+    virtual bool CanCut() const;
+    virtual bool CanPaste() const;
+
+    // Undo/redo
+    virtual void Undo();
+    virtual void Redo();
+
+    virtual bool CanUndo() const;
+    virtual bool CanRedo() const;
+
+    // If the return values from and to are the same, there is no
+    // selection.
+    virtual void GetSelection(long* from, long* to) const;
+    virtual bool IsEditable() const ;
 
     void OnChar( wxKeyEvent &event );
 
 
     void OnChar( wxKeyEvent &event );
 
+    void OnCut(wxCommandEvent& event);
+    void OnCopy(wxCommandEvent& event);
+    void OnPaste(wxCommandEvent& event);
+    void OnUndo(wxCommandEvent& event);
+    void OnRedo(wxCommandEvent& event);
+
+    void OnUpdateCut(wxUpdateUIEvent& event);
+    void OnUpdateCopy(wxUpdateUIEvent& event);
+    void OnUpdatePaste(wxUpdateUIEvent& event);
+    void OnUpdateUndo(wxUpdateUIEvent& event);
+    void OnUpdateRedo(wxUpdateUIEvent& event);
+
+#ifndef NO_TEXT_WINDOW_STREAM
     int overflow(int i);
     int sync();
     int underflow();
     int overflow(int i);
     int sync();
     int underflow();
@@ -98,11 +141,25 @@ public:
     wxTextCtrl& operator<<(float f);
     wxTextCtrl& operator<<(double d);
     wxTextCtrl& operator<<(const char c);
     wxTextCtrl& operator<<(float f);
     wxTextCtrl& operator<<(double d);
     wxTextCtrl& operator<<(const char c);
+#endif
 
 
-private:
-  bool  m_modified;
-
-  GtkWidget *m_text;
+    bool SetFont( const wxFont &font );
+    bool SetForegroundColour(const wxColour &colour);
+    bool SetBackgroundColour(const wxColour &colour);
+
+  // implementation    
+    
+    GtkWidget* GetConnectWidget();
+    bool IsOwnGtkWindow( GdkWindow *window );
+    void ApplyWidgetStyle();
+    void CalculateScrollbar();
+    
+  private:
+  
+    bool        m_modified;
+    GtkWidget  *m_text;
+    GtkWidget  *m_vScrollbar;
+    bool        m_vScrollbarVisible;
 };
 
 #endif // __GTKTEXTCTRLH__
 };
 
 #endif // __GTKTEXTCTRLH__