public:
wxSTCListBox(wxWindow* parent, wxWindowID id)
: wxListBox(parent, id, wxDefaultPosition, wxDefaultSize,
- 0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER)
+ 0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER | wxLB_SORT )
{}
void OnFocus(wxFocusEvent& event) {
event.Skip();
}
-#ifdef __WXGTK__
+#if 0 // #ifdef __WXGTK__
void DoSetFirstItem(int n);
#endif
-#ifdef __WXGTK__
+#if 0 // #ifdef __WXGTK__
// This can be removed after 2.2.2 I think
void wxSTCListBox::DoSetFirstItem( int n )
{
// 0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER);
}
+void ListBox::SetVisibleRows(int rows) {
+ desiredVisibleRows = rows;
+ printf("SetVisibleRows: %d\n", rows);
+}
+
PRectangle ListBox::GetDesiredRect() {
wxSize sz = ((wxListBox*)id)->GetBestSize();
+ printf("GetDesiredRect: %d, %d\n", sz.x, sz.y);
PRectangle rc;
rc.top = 0;
rc.left = 0;
- if (sz.x > 150) // TODO: A better way to determine these max sizes
- sz.x = 150;
- if (sz.y > 100)
- sz.y = 100;
+ if (sz.x > 400)
+ sz.x = 400;
+ if (sz.y > 150)
+ sz.y = 150;
rc.right = sz.x;
rc.bottom = sz.y;
void ScintillaWX::DoAddChar(char ch) {
- //bool acActiveBeforeCharAdded = ac.Active();
AddChar(ch);
- //if (acActiveBeforeCharAdded)
- // AutoCompleteChanged(ch);
}
int ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed) {
int rv = KeyDown(key, shift, ctrl, alt, consumed);
-// printf("key: %d shift: %d ctrl: %d alt: %d rv: %d consumed: %d\n",
-// key, shift, ctrl, alt, rv, *consumed);
-
if (key)
return rv;
else
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
long key = evt.KeyCode();
- if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed) {
+
+// printf("OnChar key:%d consumed:%d ctrl:%d alt:%d\n",
+// key, m_lastKeyDownConsumed, evt.ControlDown(), evt.AltDown());
+
+ // AltGr keys???
+ // \|@#¬[]{}?£$~ ã,õ,Ã,Õ, ñ, Ñ
+
+ // On (some?) non-US keyboards the AltGr key is required to enter some
+ // common characters. It comes to us as both Alt and Ctrl down so we need
+ // to let the char through in that case, otherwise if only ctrl or only
+ // alt let's skip it.
+ bool ctrl = evt.ControlDown();
+ bool alt = evt.AltDown();
+ bool skip = (ctrl || alt && ! (ctrl && alt));
+
+ if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed && !skip) {
m_swx->DoAddChar(key);
+ return;
}
+ evt.Skip();
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
- int processed = m_swx->DoKeyDown(key,
- evt.ShiftDown(),
- evt.ControlDown(),
- evt.AltDown(),
- &m_lastKeyDownConsumed);
+ bool shift = evt.ShiftDown(),
+ ctrl = evt.ControlDown(),
+ alt = evt.AltDown();
+
+ int processed = m_swx->DoKeyDown(key, shift, ctrl, alt, &m_lastKeyDownConsumed);
+
+// printf("key: %d shift: %d ctrl: %d alt: %d processed: %d consumed: %d\n",
+// key, shift, ctrl, alt, processed, m_lastKeyDownConsumed);
+
if (!processed && !m_lastKeyDownConsumed)
evt.Skip();
}
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
long key = evt.KeyCode();
- if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed) {
+
+// printf("OnChar key:%%d consumed:%%d ctrl:%%d alt:%%d\n",
+// key, m_lastKeyDownConsumed, evt.ControlDown(), evt.AltDown());
+
+ // AltGr keys???
+ // \|@#¬[]{}?£$~ ã,õ,Ã,Õ, ñ, Ñ
+
+ // On (some?) non-US keyboards the AltGr key is required to enter some
+ // common characters. It comes to us as both Alt and Ctrl down so we need
+ // to let the char through in that case, otherwise if only ctrl or only
+ // alt let's skip it.
+ bool ctrl = evt.ControlDown();
+ bool alt = evt.AltDown();
+ bool skip = (ctrl || alt && ! (ctrl && alt));
+
+ if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed && !skip) {
m_swx->DoAddChar(key);
+ return;
}
+ evt.Skip();
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
- int processed = m_swx->DoKeyDown(key,
- evt.ShiftDown(),
- evt.ControlDown(),
- evt.AltDown(),
- &m_lastKeyDownConsumed);
+ bool shift = evt.ShiftDown(),
+ ctrl = evt.ControlDown(),
+ alt = evt.AltDown();
+
+ int processed = m_swx->DoKeyDown(key, shift, ctrl, alt, &m_lastKeyDownConsumed);
+
+// printf("key: %%d shift: %%d ctrl: %%d alt: %%d processed: %%d consumed: %%d\n",
+// key, shift, ctrl, alt, processed, m_lastKeyDownConsumed);
+
if (!processed && !m_lastKeyDownConsumed)
evt.Skip();
}
public:
wxSTCListBox(wxWindow* parent, wxWindowID id)
: wxListBox(parent, id, wxDefaultPosition, wxDefaultSize,
- 0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER)
+ 0, NULL, wxLB_SINGLE | wxSIMPLE_BORDER | wxLB_SORT )
{}
void OnFocus(wxFocusEvent& event) {
event.Skip();
}
-#ifdef __WXGTK__
+#if 0 // #ifdef __WXGTK__
void DoSetFirstItem(int n);
#endif
-#ifdef __WXGTK__
+#if 0 // #ifdef __WXGTK__
// This can be removed after 2.2.2 I think
void wxSTCListBox::DoSetFirstItem( int n )
{
// 0, NULL, wxLB_SINGLE | wxLB_SORT | wxSIMPLE_BORDER);
}
+void ListBox::SetVisibleRows(int rows) {
+ desiredVisibleRows = rows;
+ printf("SetVisibleRows: %d\n", rows);
+}
+
PRectangle ListBox::GetDesiredRect() {
wxSize sz = ((wxListBox*)id)->GetBestSize();
+ printf("GetDesiredRect: %d, %d\n", sz.x, sz.y);
PRectangle rc;
rc.top = 0;
rc.left = 0;
- if (sz.x > 150) // TODO: A better way to determine these max sizes
- sz.x = 150;
- if (sz.y > 100)
- sz.y = 100;
+ if (sz.x > 400)
+ sz.x = 400;
+ if (sz.y > 150)
+ sz.y = 150;
rc.right = sz.x;
rc.bottom = sz.y;
void ScintillaWX::DoAddChar(char ch) {
- //bool acActiveBeforeCharAdded = ac.Active();
AddChar(ch);
- //if (acActiveBeforeCharAdded)
- // AutoCompleteChanged(ch);
}
int ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed) {
int rv = KeyDown(key, shift, ctrl, alt, consumed);
-// printf("key: %d shift: %d ctrl: %d alt: %d rv: %d consumed: %d\n",
-// key, shift, ctrl, alt, rv, *consumed);
-
if (key)
return rv;
else
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
long key = evt.KeyCode();
- if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed) {
+
+// printf("OnChar key:%d consumed:%d ctrl:%d alt:%d\n",
+// key, m_lastKeyDownConsumed, evt.ControlDown(), evt.AltDown());
+
+ // AltGr keys???
+ // \|@#¬[]{}?£$~ ã,õ,Ã,Õ, ñ, Ñ
+
+ // On (some?) non-US keyboards the AltGr key is required to enter some
+ // common characters. It comes to us as both Alt and Ctrl down so we need
+ // to let the char through in that case, otherwise if only ctrl or only
+ // alt let's skip it.
+ bool ctrl = evt.ControlDown();
+ bool alt = evt.AltDown();
+ bool skip = (ctrl || alt && ! (ctrl && alt));
+
+ if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed && !skip) {
m_swx->DoAddChar(key);
+ return;
}
+ evt.Skip();
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
- int processed = m_swx->DoKeyDown(key,
- evt.ShiftDown(),
- evt.ControlDown(),
- evt.AltDown(),
- &m_lastKeyDownConsumed);
+ bool shift = evt.ShiftDown(),
+ ctrl = evt.ControlDown(),
+ alt = evt.AltDown();
+
+ int processed = m_swx->DoKeyDown(key, shift, ctrl, alt, &m_lastKeyDownConsumed);
+
+// printf("key: %d shift: %d ctrl: %d alt: %d processed: %d consumed: %d\n",
+// key, shift, ctrl, alt, processed, m_lastKeyDownConsumed);
+
if (!processed && !m_lastKeyDownConsumed)
evt.Skip();
}
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
long key = evt.KeyCode();
- if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed) {
+
+// printf("OnChar key:%%d consumed:%%d ctrl:%%d alt:%%d\n",
+// key, m_lastKeyDownConsumed, evt.ControlDown(), evt.AltDown());
+
+ // AltGr keys???
+ // \|@#¬[]{}?£$~ ã,õ,Ã,Õ, ñ, Ñ
+
+ // On (some?) non-US keyboards the AltGr key is required to enter some
+ // common characters. It comes to us as both Alt and Ctrl down so we need
+ // to let the char through in that case, otherwise if only ctrl or only
+ // alt let's skip it.
+ bool ctrl = evt.ControlDown();
+ bool alt = evt.AltDown();
+ bool skip = (ctrl || alt && ! (ctrl && alt));
+
+ if (key <= 0xff && !iscntrl(key) && !m_lastKeyDownConsumed && !skip) {
m_swx->DoAddChar(key);
+ return;
}
+ evt.Skip();
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
- int processed = m_swx->DoKeyDown(key,
- evt.ShiftDown(),
- evt.ControlDown(),
- evt.AltDown(),
- &m_lastKeyDownConsumed);
+ bool shift = evt.ShiftDown(),
+ ctrl = evt.ControlDown(),
+ alt = evt.AltDown();
+
+ int processed = m_swx->DoKeyDown(key, shift, ctrl, alt, &m_lastKeyDownConsumed);
+
+// printf("key: %%d shift: %%d ctrl: %%d alt: %%d processed: %%d consumed: %%d\n",
+// key, shift, ctrl, alt, processed, m_lastKeyDownConsumed);
+
if (!processed && !m_lastKeyDownConsumed)
evt.Skip();
}