The use of wxPopupWindow fo rhte autocomplete and calltip windows is
now a little better integrated. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -652,6 +652,11 @@ void Window::SetTitle(const char *s) {
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// Helper classes for ListBox
|
// Helper classes for ListBox
|
||||||
|
|
||||||
|
|
||||||
|
// #undef wxSTC_USE_POPUP
|
||||||
|
// #define wxSTC_USE_POPUP 0
|
||||||
|
|
||||||
|
|
||||||
// A wxListBox that gives focus back to its parent if it gets it.
|
// A wxListBox that gives focus back to its parent if it gets it.
|
||||||
class wxSTCListBox : public wxListBox {
|
class wxSTCListBox : public wxListBox {
|
||||||
public:
|
public:
|
||||||
@@ -660,9 +665,10 @@ public:
|
|||||||
0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER)
|
0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void OnFocus(wxFocusEvent& event) {
|
void OnKeyDown(wxKeyEvent& event) {
|
||||||
GetParent()->SetFocus();
|
// Give the key events to the STC. It will then update
|
||||||
event.Skip();
|
// the listbox as needed.
|
||||||
|
GetGrandParent()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -670,11 +676,10 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
|
BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
|
||||||
EVT_SET_FOCUS(wxSTCListBox::OnFocus)
|
EVT_KEY_DOWN(wxSTCListBox::OnKeyDown)
|
||||||
|
EVT_CHAR(wxSTCListBox::OnKeyDown)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
#undef wxSTC_USE_POPUP
|
|
||||||
#define wxSTC_USE_POPUP 0 // Leave it off for this one...
|
|
||||||
|
|
||||||
|
|
||||||
// A window to place the listbox upon. If wxPopupWindow is supported then
|
// A window to place the listbox upon. If wxPopupWindow is supported then
|
||||||
@@ -695,17 +700,14 @@ public:
|
|||||||
: wxSTCListBoxWinBase(parent, param2) {
|
: wxSTCListBoxWinBase(parent, param2) {
|
||||||
lb = new wxSTCListBox(this, id);
|
lb = new wxSTCListBox(this, id);
|
||||||
lb->SetCursor(wxCursor(wxCURSOR_ARROW));
|
lb->SetCursor(wxCursor(wxCURSOR_ARROW));
|
||||||
|
lb->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSize(wxSizeEvent& event) {
|
void OnSize(wxSizeEvent& event) {
|
||||||
lb->SetSize(GetSize());
|
lb->SetSize(GetSize());
|
||||||
}
|
}
|
||||||
void OnFocus(wxFocusEvent& event) {
|
|
||||||
GetParent()->SetFocus();
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxListBox* GetLB() { return lb; }
|
wxListBox* GetLB() { return lb; }
|
||||||
|
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
virtual void DoSetSize(int x, int y,
|
virtual void DoSetSize(int x, int y,
|
||||||
@@ -725,8 +727,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxSTCListBoxWinBase)
|
BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxSTCListBoxWinBase)
|
||||||
EVT_SIZE (wxSTCListBoxWin::OnSize)
|
EVT_SIZE(wxSTCListBoxWin::OnSize)
|
||||||
EVT_SET_FOCUS (wxSTCListBoxWin::OnFocus)
|
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -88,6 +88,11 @@ public:
|
|||||||
delete surfaceWindow;
|
delete surfaceWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnFocus(wxFocusEvent& event) {
|
||||||
|
GetParent()->SetFocus();
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
virtual void DoSetSize(int x, int y,
|
virtual void DoSetSize(int x, int y,
|
||||||
int width, int height,
|
int width, int height,
|
||||||
@@ -122,6 +127,7 @@ private:
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
|
BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
|
||||||
EVT_PAINT(wxSTCCallTip::OnPaint)
|
EVT_PAINT(wxSTCCallTip::OnPaint)
|
||||||
|
EVT_SET_FOCUS(wxSTCCallTip::OnFocus)
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
|
EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
|
||||||
#endif
|
#endif
|
||||||
|
@@ -652,6 +652,11 @@ void Window::SetTitle(const char *s) {
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// Helper classes for ListBox
|
// Helper classes for ListBox
|
||||||
|
|
||||||
|
|
||||||
|
// #undef wxSTC_USE_POPUP
|
||||||
|
// #define wxSTC_USE_POPUP 0
|
||||||
|
|
||||||
|
|
||||||
// A wxListBox that gives focus back to its parent if it gets it.
|
// A wxListBox that gives focus back to its parent if it gets it.
|
||||||
class wxSTCListBox : public wxListBox {
|
class wxSTCListBox : public wxListBox {
|
||||||
public:
|
public:
|
||||||
@@ -660,9 +665,10 @@ public:
|
|||||||
0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER)
|
0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void OnFocus(wxFocusEvent& event) {
|
void OnKeyDown(wxKeyEvent& event) {
|
||||||
GetParent()->SetFocus();
|
// Give the key events to the STC. It will then update
|
||||||
event.Skip();
|
// the listbox as needed.
|
||||||
|
GetGrandParent()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -670,11 +676,10 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
|
BEGIN_EVENT_TABLE(wxSTCListBox, wxListBox)
|
||||||
EVT_SET_FOCUS(wxSTCListBox::OnFocus)
|
EVT_KEY_DOWN(wxSTCListBox::OnKeyDown)
|
||||||
|
EVT_CHAR(wxSTCListBox::OnKeyDown)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
#undef wxSTC_USE_POPUP
|
|
||||||
#define wxSTC_USE_POPUP 0 // Leave it off for this one...
|
|
||||||
|
|
||||||
|
|
||||||
// A window to place the listbox upon. If wxPopupWindow is supported then
|
// A window to place the listbox upon. If wxPopupWindow is supported then
|
||||||
@@ -695,17 +700,14 @@ public:
|
|||||||
: wxSTCListBoxWinBase(parent, param2) {
|
: wxSTCListBoxWinBase(parent, param2) {
|
||||||
lb = new wxSTCListBox(this, id);
|
lb = new wxSTCListBox(this, id);
|
||||||
lb->SetCursor(wxCursor(wxCURSOR_ARROW));
|
lb->SetCursor(wxCursor(wxCURSOR_ARROW));
|
||||||
|
lb->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnSize(wxSizeEvent& event) {
|
void OnSize(wxSizeEvent& event) {
|
||||||
lb->SetSize(GetSize());
|
lb->SetSize(GetSize());
|
||||||
}
|
}
|
||||||
void OnFocus(wxFocusEvent& event) {
|
|
||||||
GetParent()->SetFocus();
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxListBox* GetLB() { return lb; }
|
wxListBox* GetLB() { return lb; }
|
||||||
|
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
virtual void DoSetSize(int x, int y,
|
virtual void DoSetSize(int x, int y,
|
||||||
@@ -725,8 +727,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxSTCListBoxWinBase)
|
BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxSTCListBoxWinBase)
|
||||||
EVT_SIZE (wxSTCListBoxWin::OnSize)
|
EVT_SIZE(wxSTCListBoxWin::OnSize)
|
||||||
EVT_SET_FOCUS (wxSTCListBoxWin::OnFocus)
|
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -88,6 +88,11 @@ public:
|
|||||||
delete surfaceWindow;
|
delete surfaceWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnFocus(wxFocusEvent& event) {
|
||||||
|
GetParent()->SetFocus();
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
virtual void DoSetSize(int x, int y,
|
virtual void DoSetSize(int x, int y,
|
||||||
int width, int height,
|
int width, int height,
|
||||||
@@ -122,6 +127,7 @@ private:
|
|||||||
|
|
||||||
BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
|
BEGIN_EVENT_TABLE(wxSTCCallTip, wxSTCCallTipBase)
|
||||||
EVT_PAINT(wxSTCCallTip::OnPaint)
|
EVT_PAINT(wxSTCCallTip::OnPaint)
|
||||||
|
EVT_SET_FOCUS(wxSTCCallTip::OnFocus)
|
||||||
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
|
||||||
EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
|
EVT_LEFT_DOWN(wxSTCCallTip::OnLeftDown)
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user