X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31eefb998d894e3b566e13714fa53186101829a1..e3f9e20cb15c62bd347a8e52d2d36529adbdb3d6:/include/wx/html/htmlwin.h diff --git a/include/wx/html/htmlwin.h b/include/wx/html/htmlwin.h index c94b2fa520..c62febbf6d 100644 --- a/include/wx/html/htmlwin.h +++ b/include/wx/html/htmlwin.h @@ -11,7 +11,7 @@ #ifndef _WX_HTMLWIN_H_ #define _WX_HTMLWIN_H_ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "htmlwin.h" #endif @@ -21,7 +21,6 @@ #include "wx/window.h" #include "wx/scrolwin.h" #include "wx/config.h" -#include "wx/treectrl.h" #include "wx/html/winpars.h" #include "wx/html/htmlcell.h" #include "wx/filesys.h" @@ -32,7 +31,7 @@ class wxHtmlProcessor; class wxHtmlWinModule; class wxHtmlHistoryArray; class wxHtmlProcessorList; -class WXDLLEXPORT wxHtmlWinAutoScrollTimer; +class WXDLLIMPEXP_HTML wxHtmlWinAutoScrollTimer; // wxHtmlWindow flags: @@ -62,7 +61,7 @@ enum wxHtmlOpeningStatus // SetPage(text) or LoadPage(filename). // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxHtmlWindow : public wxScrolledWindow +class WXDLLIMPEXP_HTML wxHtmlWindow : public wxScrolledWindow { DECLARE_DYNAMIC_CLASS(wxHtmlWindow) friend class wxHtmlWinModule; @@ -163,9 +162,6 @@ public: // Adds HTML processor to wxHtmlWindow class as whole: static void AddGlobalProcessor(wxHtmlProcessor *processor); - // what would we do with it? - virtual bool AcceptsFocusFromKeyboard() const { return FALSE; } - // -- Callbacks -- // Sets the title of the window @@ -194,6 +190,13 @@ public: const wxString& WXUNUSED(url), wxString *WXUNUSED(redirect)) const { return wxHTML_OPEN; } + +#if wxUSE_CLIPBOARD + // Helper functions to select parts of page: + void SelectWord(const wxPoint& pos); + void SelectLine(const wxPoint& pos); + void SelectAll(); +#endif protected: void Init(); @@ -214,14 +217,15 @@ protected: void OnMouseMove(wxMouseEvent& event); void OnMouseDown(wxMouseEvent& event); void OnMouseUp(wxMouseEvent& event); - void OnIdle(wxIdleEvent& event); #if wxUSE_CLIPBOARD void OnKeyUp(wxKeyEvent& event); void OnDoubleClick(wxMouseEvent& event); void OnCopy(wxCommandEvent& event); void OnMouseEnter(wxMouseEvent& event); void OnMouseLeave(wxMouseEvent& event); -#endif +#endif // wxUSE_CLIPBOARD + + virtual void OnInternalIdle(); // Returns new filter (will be stored into m_DefaultFilter variable) virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;} @@ -233,20 +237,24 @@ protected: // and wxHW_NO_SELECTION not used) bool IsSelectionEnabled() const; -#if wxUSE_CLIPBOARD - // Convert selection to text: - wxString SelectionToText(); - enum ClipboardType { Primary, Secondary }; - - // Copies selection to clipboard: - void CopySelection(ClipboardType t = Secondary); + + // Copies selection to clipboard if the clipboard support is available + // + // returns true if anything was copied to clipboard, false otherwise + bool CopySelection(ClipboardType t = Secondary); + +#if wxUSE_CLIPBOARD + // Convert selection to text: + wxString SelectionToText(); + + // Automatic scrolling during selection: void StopAutoScrolling(); -#endif +#endif // wxUSE_CLIPBOARD protected: // This is pointer to the first cell in parsed data. (Note: the first cell @@ -284,17 +292,23 @@ protected: bool m_makingSelection; #if wxUSE_CLIPBOARD + // time of the last doubleclick event, used to detect tripleclicks + // (tripleclicks are used to select whole line): + wxLongLong m_lastDoubleClick; + + // helper class to automatically scroll the window if the user is selecting + // text and the mouse leaves wxHtmlWindow: wxHtmlWinAutoScrollTimer *m_timerAutoScroll; -#endif +#endif // wxUSE_CLIPBOARD private: // window content for double buffered rendering: wxBitmap *m_backBuffer; - + // variables used when user is selecting text wxPoint m_tmpSelFromPos; wxHtmlCell *m_tmpSelFromCell; - + // a flag indicated if mouse moved // (if TRUE we will try to change cursor in last call to OnIdle) bool m_tmpMouseMoved; @@ -311,9 +325,6 @@ private: // this filter is used when no filter is able to read some file static wxHtmlFilter *m_DefaultFilter; - static wxCursor *s_cur_hand; - static wxCursor *s_cur_arrow; - wxHtmlHistoryArray *m_History; // browser history int m_HistoryPos; @@ -329,7 +340,7 @@ private: }; -#endif +#endif // wxUSE_HTML #endif // _WX_HTMLWIN_H_