hdc = new wxMemoryDC();
hdcOwned = true;
#else
- // On Mac and GTK(?) the DC is not really valid until it has a bitmap
+ // On Mac and GTK the DC is not really valid until it has a bitmap
// selected into it. So instead of just creating the DC with no bitmap,
// go ahead and give it one.
InitPixMap(1,1,NULL);
cursorId = wxCURSOR_ARROW;
break;
}
-
- GETWIN(id)->SetCursor(wxCursor(cursorId));
+#ifdef __WXMOTIF__
+ wxCursor wc = wxStockCursor(cursorId) ;
+#else
+ wxCursor wc = wxCursor(cursorId) ;
+#endif
+ GETWIN(id)->SetCursor(wc);
}
// Helper classes for ListBox
-// #undef wxSTC_USE_POPUP
-// #define wxSTC_USE_POPUP 0
+#if defined(__WXMAC__)
+class wxSTCListBoxWin : public wxListBox {
+public:
+ wxSTCListBoxWin(wxWindow* parent, wxWindowID id)
+ : wxListBox(parent, id, wxDefaultPosition, wxSize(0,0),
+ 0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER) {
+ SetCursor(wxCursor(wxCURSOR_ARROW));
+ Hide();
+ }
+
+ void OnFocus(wxFocusEvent& event) {
+ GetParent()->SetFocus();
+ event.Skip();
+ }
+
+ wxListBox* GetLB() { return this; }
+
+private:
+ DECLARE_EVENT_TABLE()
+};
+
+
+BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxListBox)
+ EVT_SET_FOCUS(wxSTCListBoxWin::OnFocus)
+END_EVENT_TABLE()
+
+
+
+#else
-// A wxListBox that gives focus back to its parent if it gets it.
class wxSTCListBox : public wxListBox {
public:
wxSTCListBox(wxWindow* parent, wxWindowID id)
: wxListBox(parent, id, wxDefaultPosition, wxDefaultSize,
- 0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER)
+ 0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER | wxWANTS_CHARS)
{}
void OnKeyDown(wxKeyEvent& event) {
+#undef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 0 // wxPopupWindow just doesn't work well in this case...
+
// A window to place the listbox upon. If wxPopupWindow is supported then
// that will be used so the listbox can extend beyond the client area of the
// wxSTC if needed.
lb = new wxSTCListBox(this, id);
lb->SetCursor(wxCursor(wxCURSOR_ARROW));
lb->SetFocus();
- }
+ }
void OnSize(wxSizeEvent& event) {
lb->SetSize(GetSize());
BEGIN_EVENT_TABLE(wxSTCListBoxWin, wxSTCListBoxWinBase)
EVT_SIZE(wxSTCListBoxWin::OnSize)
END_EVENT_TABLE()
-
+#endif
inline wxListBox* GETLB(WindowID win) {
return (((wxSTCListBoxWin*)win)->GetLB());