Modified form of Patch #1611222, adds wxSearchCtrl (generic & native carbon HISearchField)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
115
include/wx/mac/carbon/private/mactext.h
Normal file
115
include/wx/mac/carbon/private/mactext.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: mactext.h
|
||||
// Purpose: private wxMacTextControl base class
|
||||
// Author: Stefan Csomor
|
||||
// Modified by:
|
||||
// Created: 03/02/99
|
||||
// RCS-ID: $Id:
|
||||
// Copyright: (c) Stefan Csomor
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_MAC_PRIVATE_MACTEXT_H_
|
||||
#define _WX_MAC_PRIVATE_MACTEXT_H_
|
||||
|
||||
#include "wx/mac/private.h"
|
||||
|
||||
// common interface for all implementations
|
||||
class wxMacTextControl : public wxMacControl
|
||||
{
|
||||
public :
|
||||
wxMacTextControl( wxTextCtrl *peer ) ;
|
||||
virtual ~wxMacTextControl() ;
|
||||
|
||||
virtual wxString GetStringValue() const = 0 ;
|
||||
virtual void SetStringValue( const wxString &val ) = 0 ;
|
||||
virtual void SetSelection( long from, long to ) = 0 ;
|
||||
virtual void GetSelection( long* from, long* to ) const = 0 ;
|
||||
virtual void WriteText( const wxString& str ) = 0 ;
|
||||
|
||||
virtual void SetStyle( long start, long end, const wxTextAttr& style ) ;
|
||||
virtual void Copy() ;
|
||||
virtual void Cut() ;
|
||||
virtual void Paste() ;
|
||||
virtual bool CanPaste() const ;
|
||||
virtual void SetEditable( bool editable ) ;
|
||||
virtual wxTextPos GetLastPosition() const ;
|
||||
virtual void Replace( long from, long to, const wxString &str ) ;
|
||||
virtual void Remove( long from, long to ) ;
|
||||
|
||||
|
||||
virtual bool HasOwnContextMenu() const
|
||||
{ return false ; }
|
||||
|
||||
virtual bool SetupCursor( const wxPoint& pt )
|
||||
{ return false ; }
|
||||
|
||||
virtual void Clear() ;
|
||||
virtual bool CanUndo() const;
|
||||
virtual void Undo() ;
|
||||
virtual bool CanRedo() const;
|
||||
virtual void Redo() ;
|
||||
virtual int GetNumberOfLines() const ;
|
||||
virtual long XYToPosition(long x, long y) const;
|
||||
virtual bool PositionToXY(long pos, long *x, long *y) const ;
|
||||
virtual void ShowPosition(long WXUNUSED(pos)) ;
|
||||
virtual int GetLineLength(long lineNo) const ;
|
||||
virtual wxString GetLineText(long lineNo) const ;
|
||||
virtual void CheckSpelling(bool check) { }
|
||||
|
||||
#ifndef __WXMAC_OSX__
|
||||
virtual void MacControlUserPaneDrawProc(wxInt16 part) = 0 ;
|
||||
virtual wxInt16 MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) = 0 ;
|
||||
virtual wxInt16 MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) = 0 ;
|
||||
virtual void MacControlUserPaneIdleProc() = 0 ;
|
||||
virtual wxInt16 MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers) = 0 ;
|
||||
virtual void MacControlUserPaneActivateProc(bool activating) = 0 ;
|
||||
virtual wxInt16 MacControlUserPaneFocusProc(wxInt16 action) = 0 ;
|
||||
virtual void MacControlUserPaneBackgroundProc(void* info) = 0 ;
|
||||
#endif
|
||||
} ;
|
||||
|
||||
#if TARGET_API_MAC_OSX
|
||||
|
||||
class wxMacUnicodeTextControl : public wxMacTextControl
|
||||
{
|
||||
public :
|
||||
wxMacUnicodeTextControl( wxTextCtrl *wxPeer ) ;
|
||||
wxMacUnicodeTextControl( wxTextCtrl *wxPeer,
|
||||
const wxString& str,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size, long style ) ;
|
||||
virtual ~wxMacUnicodeTextControl();
|
||||
|
||||
virtual bool Create( wxTextCtrl *wxPeer,
|
||||
const wxString& str,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size, long style ) ;
|
||||
virtual void VisibilityChanged(bool shown);
|
||||
virtual wxString GetStringValue() const ;
|
||||
virtual void SetStringValue( const wxString &str) ;
|
||||
virtual void Copy();
|
||||
virtual void Cut();
|
||||
virtual void Paste();
|
||||
virtual bool CanPaste() const;
|
||||
virtual void SetEditable(bool editable) ;
|
||||
virtual void GetSelection( long* from, long* to) const ;
|
||||
virtual void SetSelection( long from , long to ) ;
|
||||
virtual void WriteText(const wxString& str) ;
|
||||
|
||||
protected :
|
||||
virtual void CreateControl( wxTextCtrl* peer, const Rect* bounds, CFStringRef cfr );
|
||||
|
||||
// contains the tag for the content (is different for password and non-password controls)
|
||||
OSType m_valueTag ;
|
||||
|
||||
// as the selection tag only works correctly when the control has the focus we have to mirror the
|
||||
// intended value
|
||||
EventHandlerRef m_focusHandlerRef ;
|
||||
public :
|
||||
ControlEditTextSelectionRec m_selection ;
|
||||
};
|
||||
|
||||
#endif // TARGET_API_MAC_OSX
|
||||
|
||||
#endif // _WX_MAC_PRIVATE_MACTEXT_H_
|
109
include/wx/mac/carbon/srchctrl.h
Normal file
109
include/wx/mac/carbon/srchctrl.h
Normal file
@@ -0,0 +1,109 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/mac/carbon/srchctrl.h
|
||||
// Purpose: mac carbon wxSearchCtrl class
|
||||
// Author: Vince Harron
|
||||
// Modified by:
|
||||
// Created: 2006-02-19
|
||||
// RCS-ID:
|
||||
// Copyright: Vince Harron
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_SEARCHCTRL_H_
|
||||
#define _WX_SEARCHCTRL_H_
|
||||
|
||||
#if wxUSE_SEARCHCTRL
|
||||
|
||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||
#pragma interface "srchctrl.h"
|
||||
#endif
|
||||
|
||||
class WXDLLEXPORT wxSearchCtrlBase : public wxTextCtrl
|
||||
{
|
||||
public:
|
||||
wxSearchCtrlBase() {}
|
||||
virtual ~wxSearchCtrlBase() {}
|
||||
|
||||
// search control
|
||||
virtual void SetMenu( wxMenu* menu ) = 0;
|
||||
virtual wxMenu* GetMenu() = 0;
|
||||
|
||||
|
||||
// get/set options
|
||||
virtual void SetSearchButtonVisible( bool show ) = 0;
|
||||
virtual bool GetSearchButtonVisible() const = 0;
|
||||
|
||||
virtual void SetCancelButtonVisible( bool show ) = 0;
|
||||
virtual bool GetCancelButtonVisible() const = 0;
|
||||
protected:
|
||||
};
|
||||
|
||||
class wxMacSearchFieldControl;
|
||||
|
||||
class WXDLLEXPORT wxSearchCtrl : public wxSearchCtrlBase
|
||||
{
|
||||
public:
|
||||
// creation
|
||||
// --------
|
||||
|
||||
wxSearchCtrl();
|
||||
wxSearchCtrl(wxWindow *parent, wxWindowID id,
|
||||
const wxString& value = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxSearchCtrlNameStr);
|
||||
|
||||
~wxSearchCtrl();
|
||||
|
||||
bool Create(wxWindow *parent, wxWindowID id,
|
||||
const wxString& value = wxEmptyString,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxSearchCtrlNameStr);
|
||||
|
||||
// get/set search button menu
|
||||
// --------------------------
|
||||
virtual void SetMenu( wxMenu* menu );
|
||||
virtual wxMenu* GetMenu();
|
||||
|
||||
// get/set search options
|
||||
// ----------------------
|
||||
virtual void SetSearchButtonVisible( bool show );
|
||||
virtual bool GetSearchButtonVisible() const;
|
||||
|
||||
virtual void SetCancelButtonVisible( bool show );
|
||||
virtual bool GetCancelButtonVisible() const;
|
||||
|
||||
virtual wxInt32 MacSearchFieldSearchHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
|
||||
virtual wxInt32 MacSearchFieldCancelHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
|
||||
|
||||
wxMacSearchFieldControl * GetPeer() const
|
||||
{ return (wxMacSearchFieldControl*) m_peer; }
|
||||
|
||||
protected:
|
||||
|
||||
wxSize DoGetBestSize() const;
|
||||
|
||||
void Init();
|
||||
|
||||
virtual void CreatePeer(
|
||||
const wxString& str,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size, long style );
|
||||
|
||||
wxMenu *m_menu;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxSearchCtrl)
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif // wxUSE_SEARCHCTRL
|
||||
|
||||
#endif // _WX_SEARCHCTRL_H_
|
||||
|
@@ -192,6 +192,8 @@ protected:
|
||||
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
|
||||
virtual void CreatePeer(const wxString& str, const wxPoint& pos, const wxSize& size, long style );
|
||||
|
||||
virtual void DoSetValue(const wxString& value, int flags = 0);
|
||||
|
||||
bool m_editable;
|
||||
|
@@ -639,6 +639,7 @@
|
||||
#define wxUSE_RADIOBOX 1 // wxRadioBox
|
||||
#define wxUSE_RADIOBTN 1 // wxRadioButton
|
||||
#define wxUSE_SCROLLBAR 1 // wxScrollBar
|
||||
#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl
|
||||
#define wxUSE_SLIDER 1 // wxSlider
|
||||
#define wxUSE_SPINBTN 1 // wxSpinButton
|
||||
#define wxUSE_SPINCTRL 1 // wxSpinCtrl
|
||||
|
5
include/wx/mac/srchctrl.h
Normal file
5
include/wx/mac/srchctrl.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#ifdef __WXMAC_CLASSIC__
|
||||
#include "wx/generic/srchctlg.h"
|
||||
#else
|
||||
#include "wx/mac/carbon/srchctrl.h"
|
||||
#endif
|
Reference in New Issue
Block a user