Added wxSearchCtrl::[Get|Set]DescriptiveText

Tweaked the layout of the subcontrols a bit
Lightened the icons to be more like Mac


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-01-19 05:27:16 +00:00
parent b901ac2c3b
commit 6646ca90e8
12 changed files with 493 additions and 20 deletions

View File

@@ -60,6 +60,12 @@ public:
virtual void ShowCancelButton( bool show );
virtual bool IsCancelButtonVisible() const;
#if wxABI_VERSION >= 20802
// TODO: In 2.9 these should probably be virtual, and declared in the base class...
void SetDescriptiveText(const wxString& text);
wxString GetDescriptiveText() const;
#endif
// accessors
// ---------

View File

@@ -53,6 +53,12 @@ public:
virtual void ShowCancelButton( bool show );
virtual bool IsCancelButtonVisible() const;
#if wxABI_VERSION >= 20802
// TODO: In 2.9 these should probably be virtual, and declared in the base class...
void SetDescriptiveText(const wxString& text);
wxString GetDescriptiveText() const;
#endif
virtual wxInt32 MacSearchFieldSearchHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;
virtual wxInt32 MacSearchFieldCancelHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ;

View File

@@ -50,6 +50,57 @@ static const wxCoord ICON_MARGIN = 0;
static const wxCoord ICON_OFFSET = 0;
#endif
// ----------------------------------------------------------------------------
// TODO: These functions or something like them should probably be made
// public. There are similar functions in src/aui/dockart.cpp...
static double wxBlendColour(double fg, double bg, double alpha)
{
double result = bg + (alpha * (fg - bg));
if (result < 0.0)
result = 0.0;
if (result > 255)
result = 255;
return result;
}
static wxColor wxStepColour(const wxColor& c, int ialpha)
{
if (ialpha == 100)
return c;
double r = c.Red(), g = c.Green(), b = c.Blue();
double bg;
// ialpha is 0..200 where 0 is completely black
// and 200 is completely white and 100 is the same
// convert that to normal alpha 0.0 - 1.0
ialpha = wxMin(ialpha, 200);
ialpha = wxMax(ialpha, 0);
double alpha = ((double)(ialpha - 100.0))/100.0;
if (ialpha > 100)
{
// blend with white
bg = 255.0;
alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg
}
else
{
// blend with black
bg = 0.0;
alpha = 1.0 + alpha; // 0 = transparent fg; 1 = opaque fg
}
r = wxBlendColour(r, bg, alpha);
g = wxBlendColour(g, bg, alpha);
b = wxBlendColour(b, bg, alpha);
return wxColour((unsigned char)r, (unsigned char)g, (unsigned char)b);
}
#define LIGHT_STEP 160
// ----------------------------------------------------------------------------
// wxSearchTextCtrl: text control used by search control
// ----------------------------------------------------------------------------
@@ -62,11 +113,27 @@ public:
style | wxNO_BORDER)
{
m_search = search;
m_defaultFG = GetForegroundColour();
// remove the default minsize, the searchctrl will have one instead
SetSizeHints(wxDefaultCoord,wxDefaultCoord);
}
void SetDescriptiveText(const wxString& text)
{
if ( GetValue() == m_descriptiveText )
{
SetValue(wxEmptyString);
}
m_descriptiveText = text;
}
wxString GetDescriptiveText() const
{
return m_descriptiveText;
}
protected:
void OnText(wxCommandEvent& eventText)
{
@@ -92,8 +159,30 @@ protected:
m_search->GetEventHandler()->ProcessEvent(event);
}
void OnIdle(wxIdleEvent& WXUNUSED(event))
{
if ( IsEmpty() && !(wxWindow::FindFocus() == this) )
{
SetValue(m_descriptiveText);
SetInsertionPoint(0);
SetForegroundColour(wxStepColour(m_defaultFG, LIGHT_STEP));
}
}
void OnFocus(wxFocusEvent& event)
{
event.Skip();
if ( GetValue() == m_descriptiveText )
{
SetValue(wxEmptyString);
SetForegroundColour(m_defaultFG);
}
}
private:
wxSearchCtrl* m_search;
wxString m_descriptiveText;
wxColour m_defaultFG;
DECLARE_EVENT_TABLE()
};
@@ -103,6 +192,8 @@ BEGIN_EVENT_TABLE(wxSearchTextCtrl, wxTextCtrl)
EVT_TEXT_ENTER(wxID_ANY, wxSearchTextCtrl::OnText)
EVT_TEXT_URL(wxID_ANY, wxSearchTextCtrl::OnTextUrl)
EVT_TEXT_MAXLEN(wxID_ANY, wxSearchTextCtrl::OnText)
EVT_IDLE(wxSearchTextCtrl::OnIdle)
EVT_SET_FOCUS(wxSearchTextCtrl::OnFocus)
END_EVENT_TABLE()
// ----------------------------------------------------------------------------
@@ -234,6 +325,7 @@ bool wxSearchCtrl::Create(wxWindow *parent, wxWindowID id,
}
m_text = new wxSearchTextCtrl(this, value, style & ~wxBORDER_MASK);
m_text->SetDescriptiveText(_("Search"));
wxSize sizeText = m_text->GetBestSize();
@@ -280,12 +372,6 @@ void wxSearchCtrl::SetMenu( wxMenu* menu )
{
m_searchButton->SetBitmapLabel(m_searchMenuBitmap);
m_searchButton->Refresh();
if ( !m_searchButtonVisible )
{
// adding the menu will force the search button to be visible
wxRect rect = GetRect();
LayoutControls(0, 0, rect.GetWidth(), rect.GetHeight());
}
}
else if ( !m_menu && hadMenu )
{
@@ -294,13 +380,10 @@ void wxSearchCtrl::SetMenu( wxMenu* menu )
{
m_searchButton->Refresh();
}
else
{
}
wxRect rect = GetRect();
LayoutControls(0, 0, rect.GetWidth(), rect.GetHeight());
}
}
}
wxMenu* wxSearchCtrl::GetMenu()
{
@@ -348,6 +431,15 @@ bool wxSearchCtrl::IsCancelButtonVisible() const
return m_cancelButtonVisible;
}
void wxSearchCtrl::SetDescriptiveText(const wxString& text)
{
m_text->SetDescriptiveText(text);
}
wxString wxSearchCtrl::GetDescriptiveText() const
{
return m_text->GetDescriptiveText();
}
// ----------------------------------------------------------------------------
// geometry
@@ -393,7 +485,7 @@ void wxSearchCtrl::LayoutControls(int x, int y, int width, int height)
wxSize sizeText = m_text->GetBestSize();
// make room for the search menu & clear button
int horizontalBorder = 1 + ( sizeText.y - sizeText.y * 14 / 21 ) / 2;
int horizontalBorder = ( sizeText.y - sizeText.y * 14 / 21 ) / 2;
x += horizontalBorder;
y += BORDER;
width -= horizontalBorder*2;
@@ -427,13 +519,13 @@ void wxSearchCtrl::LayoutControls(int x, int y, int width, int height)
// position the subcontrols inside the client area
m_searchButton->SetSize(x, y + ICON_OFFSET, sizeSearch.x, height);
m_searchButton->SetSize(x, y + ICON_OFFSET - 1, sizeSearch.x, height);
m_text->SetSize( x + sizeSearch.x + searchMargin,
y + ICON_OFFSET - BORDER,
textWidth,
height);
m_cancelButton->SetSize(x + sizeSearch.x + searchMargin + textWidth + cancelMargin,
y + ICON_OFFSET, sizeCancel.x, height);
y + ICON_OFFSET - 1, sizeCancel.x, height);
}
@@ -811,7 +903,7 @@ static int GetMultiplier()
wxBitmap wxSearchCtrl::RenderSearchBitmap( int x, int y, bool renderDrop )
{
wxColour bg = GetBackgroundColour();
wxColour fg = GetForegroundColour();
wxColour fg = wxStepColour(GetForegroundColour(), LIGHT_STEP-20);
//===============================================================================
// begin drawing code
@@ -892,6 +984,7 @@ wxBitmap wxSearchCtrl::RenderSearchBitmap( int x, int y, bool renderDrop )
};
mem.DrawPolygon(WXSIZEOF(dropPolygon),dropPolygon,multiplier*triangleX,multiplier*triangleY);
}
mem.SelectObject(wxNullBitmap);
//===============================================================================
// end drawing code
@@ -903,6 +996,11 @@ wxBitmap wxSearchCtrl::RenderSearchBitmap( int x, int y, bool renderDrop )
image.Rescale(x,y);
bitmap = wxBitmap( image );
}
if ( !renderDrop )
{
// Trim the edge where the arrow would have gone
bitmap = bitmap.GetSubBitmap(wxRect(0,0, y,y));
}
return bitmap;
}
@@ -910,7 +1008,7 @@ wxBitmap wxSearchCtrl::RenderSearchBitmap( int x, int y, bool renderDrop )
wxBitmap wxSearchCtrl::RenderCancelBitmap( int x, int y )
{
wxColour bg = GetBackgroundColour();
wxColour fg = GetForegroundColour();
wxColour fg = wxStepColour(GetForegroundColour(), LIGHT_STEP);
//===============================================================================
// begin drawing code

View File

@@ -68,6 +68,10 @@ public :
virtual void SetSearchMenu( wxMenu* menu );
virtual wxMenu* GetSearchMenu() const;
virtual void SetDescriptiveText(const wxString& text);
virtual wxString GetDescriptiveText() const;
protected :
virtual void CreateControl( wxTextCtrl* peer, const Rect* bounds, CFStringRef crf );
@@ -167,6 +171,28 @@ wxMenu* wxMacSearchFieldControl::GetSearchMenu() const
return m_menu;
}
void wxMacSearchFieldControl::SetDescriptiveText(const wxString& text)
{
verify_noerr( HISearchFieldSetDescriptiveText(
m_controlRef,
wxMacCFStringHolder( text, wxFont::GetDefaultEncoding() )));
}
wxString wxMacSearchFieldControl::GetDescriptiveText() const
{
CFStringRef cfStr;
verify_noerr( HISearchFieldCopyDescriptiveText( m_controlRef, &cfStr ));
if ( cfStr )
{
return wxMacCFStringHolder(cfStr).AsString();
}
else
{
return wxEmptyString;
}
}
#endif
// ============================================================================
@@ -351,6 +377,16 @@ bool wxSearchCtrl::IsCancelButtonVisible() const
return GetPeer()->IsCancelButtonVisible();
}
void wxSearchCtrl::SetDescriptiveText(const wxString& text)
{
GetPeer()->SetDescriptiveText(text);
}
wxString wxSearchCtrl::GetDescriptiveText() const
{
return GetPeer()->GetDescriptiveText();
}
wxInt32 wxSearchCtrl::MacSearchFieldSearchHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
{
wxCommandEvent event(wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, m_windowId );

View File

@@ -31,6 +31,8 @@
*wxFileHistory*etBaseId*;
*wxSizerFlags*Shaped*;
*wxSizerFlags*FixedMinSize*;
*wxSearchCtrl*SetDescriptiveText*;
*wxSearchCtrl*GetDescriptiveText*;
};
# public symbols added in 2.8.1 (please keep in alphabetical order):

View File

@@ -58,6 +58,9 @@ public:
virtual void ShowCancelButton( bool ) {}
virtual bool IsCancelButtonVisible() const { return false; }
virtual void SetDescriptiveText(const wxString& text);
virtual wxString GetDescriptiveText() const;
};
#endif
%}
@@ -167,6 +170,17 @@ button visibility value. This always returns false in Mac OS X v10.3", "");
"Indicates whether the cancel button is visible. ", "");
DocDeclStr(
virtual void , SetDescriptiveText(const wxString& text),
"Set the text to be displayed when the user has not yet typed anything
in the control.", "");
DocDeclStr(
virtual wxString , GetDescriptiveText() const,
"Get the text to be displayed when the user has not yet typed anything
in the control.", "");
DocStr(SetSearchBitmap,
"Sets the bitmap to use for the search button. This currently does not
work on the Mac.", "");
@@ -178,6 +192,7 @@ on the Mac.", "");
"Sets the bitmap to use for the cancel button. This currently does not
work on the Mac.", "");
#ifdef __WXMAC__
%extend {
void SetSearchBitmap( const wxBitmap& ) {}
@@ -194,6 +209,7 @@ work on the Mac.", "");
%property(Menu, GetMenu, SetMenu);
%property(SearchButtonVisible, IsSearchButtonVisible, ShowSearchButton);
%property(CancelButtonVisible, IsCancelButtonVisible, ShowCancelButton);
%property(DescriptiveText, GetDescriptiveText, SetDescriptiveText);
};

View File

@@ -7268,6 +7268,24 @@ class SearchCtrl(TextCtrl):
"""
return _controls_.SearchCtrl_IsCancelButtonVisible(*args, **kwargs)
def SetDescriptiveText(*args, **kwargs):
"""
SetDescriptiveText(self, String text)
Set the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_SetDescriptiveText(*args, **kwargs)
def GetDescriptiveText(*args, **kwargs):
"""
GetDescriptiveText(self) -> String
Get the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_GetDescriptiveText(*args, **kwargs)
def SetSearchBitmap(*args, **kwargs):
"""
SetSearchBitmap(self, Bitmap bitmap)
@@ -7299,6 +7317,7 @@ class SearchCtrl(TextCtrl):
Menu = property(GetMenu,SetMenu)
SearchButtonVisible = property(IsSearchButtonVisible,ShowSearchButton)
CancelButtonVisible = property(IsCancelButtonVisible,ShowCancelButton)
DescriptiveText = property(GetDescriptiveText,SetDescriptiveText)
_controls_.SearchCtrl_swigregister(SearchCtrl)
SearchCtrlNameStr = cvar.SearchCtrlNameStr

View File

@@ -3419,6 +3419,9 @@ public:
virtual void ShowCancelButton( bool ) {}
virtual bool IsCancelButtonVisible() const { return false; }
virtual void SetDescriptiveText(const wxString& text);
virtual wxString GetDescriptiveText() const;
};
#endif
@@ -46659,6 +46662,85 @@ fail:
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString *arg2 = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
bool temp2 = false ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
char * kwnames[] = {
(char *) "self",(char *) "text", NULL
};
if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:SearchCtrl_SetDescriptiveText",kwnames,&obj0,&obj1)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_SetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
arg2 = wxString_in_helper(obj1);
if (arg2 == NULL) SWIG_fail;
temp2 = true;
}
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
(arg1)->SetDescriptiveText((wxString const &)*arg2);
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
resultobj = SWIG_Py_Void();
{
if (temp2)
delete arg2;
}
return resultobj;
fail:
{
if (temp2)
delete arg2;
}
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_GetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString result;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject *swig_obj[1] ;
if (!args) SWIG_fail;
swig_obj[0] = args;
res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_GetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl const *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
result = ((wxSearchCtrl const *)arg1)->GetDescriptiveText();
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
{
#if wxUSE_UNICODE
resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
}
return resultobj;
fail:
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetSearchBitmap(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
@@ -47863,6 +47945,8 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"SearchCtrl_IsSearchButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsSearchButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_ShowCancelButton", (PyCFunction) _wrap_SearchCtrl_ShowCancelButton, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_IsCancelButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsCancelButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_SetDescriptiveText", (PyCFunction) _wrap_SearchCtrl_SetDescriptiveText, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_GetDescriptiveText", (PyCFunction)_wrap_SearchCtrl_GetDescriptiveText, METH_O, NULL},
{ (char *)"SearchCtrl_SetSearchBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetSearchMenuBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchMenuBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetCancelBitmap", (PyCFunction) _wrap_SearchCtrl_SetCancelBitmap, METH_VARARGS | METH_KEYWORDS, NULL},

View File

@@ -7261,6 +7261,24 @@ class SearchCtrl(TextCtrl):
"""
return _controls_.SearchCtrl_IsCancelButtonVisible(*args, **kwargs)
def SetDescriptiveText(*args, **kwargs):
"""
SetDescriptiveText(self, String text)
Set the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_SetDescriptiveText(*args, **kwargs)
def GetDescriptiveText(*args, **kwargs):
"""
GetDescriptiveText(self) -> String
Set the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_GetDescriptiveText(*args, **kwargs)
def SetSearchBitmap(*args, **kwargs):
"""
SetSearchBitmap(self, Bitmap ?)
@@ -7292,6 +7310,7 @@ class SearchCtrl(TextCtrl):
Menu = property(GetMenu,SetMenu)
SearchButtonVisible = property(IsSearchButtonVisible,ShowSearchButton)
CancelButtonVisible = property(IsCancelButtonVisible,ShowCancelButton)
DescriptiveText = property(GetDescriptiveText,SetDescriptiveText)
_controls_.SearchCtrl_swigregister(SearchCtrl)
SearchCtrlNameStr = cvar.SearchCtrlNameStr

View File

@@ -3418,6 +3418,9 @@ public:
virtual void ShowCancelButton( bool ) {}
virtual bool IsCancelButtonVisible() const { return false; }
virtual void SetDescriptiveText(const wxString& text);
virtual wxString GetDescriptiveText() const;
};
#endif
@@ -46586,6 +46589,85 @@ fail:
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString *arg2 = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
bool temp2 = false ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
char * kwnames[] = {
(char *) "self",(char *) "text", NULL
};
if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:SearchCtrl_SetDescriptiveText",kwnames,&obj0,&obj1)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_SetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
arg2 = wxString_in_helper(obj1);
if (arg2 == NULL) SWIG_fail;
temp2 = true;
}
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
(arg1)->SetDescriptiveText((wxString const &)*arg2);
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
resultobj = SWIG_Py_Void();
{
if (temp2)
delete arg2;
}
return resultobj;
fail:
{
if (temp2)
delete arg2;
}
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_GetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString result;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject *swig_obj[1] ;
if (!args) SWIG_fail;
swig_obj[0] = args;
res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_GetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl const *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
result = ((wxSearchCtrl const *)arg1)->GetDescriptiveText();
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
{
#if wxUSE_UNICODE
resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
}
return resultobj;
fail:
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetSearchBitmap(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
@@ -47788,6 +47870,8 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"SearchCtrl_IsSearchButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsSearchButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_ShowCancelButton", (PyCFunction) _wrap_SearchCtrl_ShowCancelButton, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_IsCancelButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsCancelButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_SetDescriptiveText", (PyCFunction) _wrap_SearchCtrl_SetDescriptiveText, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_GetDescriptiveText", (PyCFunction)_wrap_SearchCtrl_GetDescriptiveText, METH_O, NULL},
{ (char *)"SearchCtrl_SetSearchBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetSearchMenuBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchMenuBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetCancelBitmap", (PyCFunction) _wrap_SearchCtrl_SetCancelBitmap, METH_VARARGS | METH_KEYWORDS, NULL},

View File

@@ -7287,6 +7287,24 @@ class SearchCtrl(TextCtrl):
"""
return _controls_.SearchCtrl_IsCancelButtonVisible(*args, **kwargs)
def SetDescriptiveText(*args, **kwargs):
"""
SetDescriptiveText(self, String text)
Set the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_SetDescriptiveText(*args, **kwargs)
def GetDescriptiveText(*args, **kwargs):
"""
GetDescriptiveText(self) -> String
Get the text to be displayed when the user has not yet typed anything
in the control.
"""
return _controls_.SearchCtrl_GetDescriptiveText(*args, **kwargs)
def SetSearchBitmap(*args, **kwargs):
"""
SetSearchBitmap(self, Bitmap bitmap)
@@ -7318,6 +7336,7 @@ class SearchCtrl(TextCtrl):
Menu = property(GetMenu,SetMenu)
SearchButtonVisible = property(IsSearchButtonVisible,ShowSearchButton)
CancelButtonVisible = property(IsCancelButtonVisible,ShowCancelButton)
DescriptiveText = property(GetDescriptiveText,SetDescriptiveText)
_controls_.SearchCtrl_swigregister(SearchCtrl)
SearchCtrlNameStr = cvar.SearchCtrlNameStr

View File

@@ -3419,6 +3419,9 @@ public:
virtual void ShowCancelButton( bool ) {}
virtual bool IsCancelButtonVisible() const { return false; }
virtual void SetDescriptiveText(const wxString& text);
virtual wxString GetDescriptiveText() const;
};
#endif
@@ -46871,6 +46874,85 @@ fail:
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString *arg2 = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
bool temp2 = false ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
char * kwnames[] = {
(char *) "self",(char *) "text", NULL
};
if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:SearchCtrl_SetDescriptiveText",kwnames,&obj0,&obj1)) SWIG_fail;
res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_SetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
arg2 = wxString_in_helper(obj1);
if (arg2 == NULL) SWIG_fail;
temp2 = true;
}
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
(arg1)->SetDescriptiveText((wxString const &)*arg2);
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
resultobj = SWIG_Py_Void();
{
if (temp2)
delete arg2;
}
return resultobj;
fail:
{
if (temp2)
delete arg2;
}
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_GetDescriptiveText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
wxString result;
void *argp1 = 0 ;
int res1 = 0 ;
PyObject *swig_obj[1] ;
if (!args) SWIG_fail;
swig_obj[0] = args;
res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxSearchCtrl, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SearchCtrl_GetDescriptiveText" "', expected argument " "1"" of type '" "wxSearchCtrl const *""'");
}
arg1 = reinterpret_cast< wxSearchCtrl * >(argp1);
{
PyThreadState* __tstate = wxPyBeginAllowThreads();
result = ((wxSearchCtrl const *)arg1)->GetDescriptiveText();
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
{
#if wxUSE_UNICODE
resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
}
return resultobj;
fail:
return NULL;
}
SWIGINTERN PyObject *_wrap_SearchCtrl_SetSearchBitmap(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
PyObject *resultobj = 0;
wxSearchCtrl *arg1 = (wxSearchCtrl *) 0 ;
@@ -48080,6 +48162,8 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"SearchCtrl_IsSearchButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsSearchButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_ShowCancelButton", (PyCFunction) _wrap_SearchCtrl_ShowCancelButton, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_IsCancelButtonVisible", (PyCFunction)_wrap_SearchCtrl_IsCancelButtonVisible, METH_O, NULL},
{ (char *)"SearchCtrl_SetDescriptiveText", (PyCFunction) _wrap_SearchCtrl_SetDescriptiveText, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_GetDescriptiveText", (PyCFunction)_wrap_SearchCtrl_GetDescriptiveText, METH_O, NULL},
{ (char *)"SearchCtrl_SetSearchBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetSearchMenuBitmap", (PyCFunction) _wrap_SearchCtrl_SetSearchMenuBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
{ (char *)"SearchCtrl_SetCancelBitmap", (PyCFunction) _wrap_SearchCtrl_SetCancelBitmap, METH_VARARGS | METH_KEYWORDS, NULL},