mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-12-11 16:00:17 -07:00
Show dropdown when editing is started
This commit is contained in:
parent
3f0083c5a7
commit
6e7dfc54e4
4 changed files with 16 additions and 15 deletions
|
|
@ -54,7 +54,7 @@ private:
|
||||||
DECLARE_VARIANT_OBJECT(DataViewBitmapText)
|
DECLARE_VARIANT_OBJECT(DataViewBitmapText)
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// BitmapTextRenderer
|
// BitmapTextRenderer - an editable text box within a DataView item
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
#if ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
|
#if ENABLE_NONCUSTOM_DATA_VIEW_RENDERING
|
||||||
class BitmapTextRenderer : public wxDataViewRenderer
|
class BitmapTextRenderer : public wxDataViewRenderer
|
||||||
|
|
@ -126,7 +126,7 @@ private:
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// BitmapChoiceRenderer
|
// BitmapChoiceRenderer - Creates an editable ComboBox within a DataView item
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class BitmapChoiceRenderer : public wxDataViewCustomRenderer
|
class BitmapChoiceRenderer : public wxDataViewCustomRenderer
|
||||||
|
|
|
||||||
|
|
@ -5485,6 +5485,10 @@ void ObjectList::ItemValueChanged(wxDataViewEvent &event)
|
||||||
// Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column.
|
// Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column.
|
||||||
void ObjectList::OnEditingStarted(wxDataViewEvent &event)
|
void ObjectList::OnEditingStarted(wxDataViewEvent &event)
|
||||||
{
|
{
|
||||||
|
if (event.GetColumn() == colFilament) {
|
||||||
|
::ComboBox*c = static_cast<::ComboBox *>(event.GetDataViewColumn()->GetRenderer()->GetEditorCtrl());
|
||||||
|
c->ToggleDropDown();
|
||||||
|
}
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
m_last_selected_column = -1;
|
m_last_selected_column = -1;
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -230,9 +230,7 @@ void ComboBox::DoSetItemClientData(unsigned int n, void *data)
|
||||||
datas[n] = data;
|
datas[n] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComboBox::mouseDown(wxMouseEvent &event)
|
void ComboBox::ToggleDropDown(){
|
||||||
{
|
|
||||||
SetFocus();
|
|
||||||
if (drop_down) {
|
if (drop_down) {
|
||||||
drop.Hide();
|
drop.Hide();
|
||||||
} else if (drop.HasDismissLongTime()) {
|
} else if (drop.HasDismissLongTime()) {
|
||||||
|
|
@ -244,6 +242,12 @@ void ComboBox::mouseDown(wxMouseEvent &event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ComboBox::mouseDown(wxMouseEvent &event)
|
||||||
|
{
|
||||||
|
SetFocus();
|
||||||
|
ToggleDropDown();
|
||||||
|
}
|
||||||
|
|
||||||
void ComboBox::mouseWheelMoved(wxMouseEvent &event)
|
void ComboBox::mouseWheelMoved(wxMouseEvent &event)
|
||||||
{
|
{
|
||||||
event.Skip();
|
event.Skip();
|
||||||
|
|
@ -261,15 +265,7 @@ void ComboBox::keyDown(wxKeyEvent& event)
|
||||||
switch (event.GetKeyCode()) {
|
switch (event.GetKeyCode()) {
|
||||||
case WXK_RETURN:
|
case WXK_RETURN:
|
||||||
case WXK_SPACE:
|
case WXK_SPACE:
|
||||||
if (drop_down) {
|
ToggleDropDown();
|
||||||
drop.DismissAndNotify();
|
|
||||||
} else if (drop.HasDismissLongTime()) {
|
|
||||||
drop.autoPosition();
|
|
||||||
drop_down = true;
|
|
||||||
drop.Popup();
|
|
||||||
wxCommandEvent e(wxEVT_COMBOBOX_DROPDOWN);
|
|
||||||
GetEventHandler()->ProcessEvent(e);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case WXK_UP:
|
case WXK_UP:
|
||||||
case WXK_DOWN:
|
case WXK_DOWN:
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ public:
|
||||||
|
|
||||||
virtual bool SetFont(wxFont const & font) override;
|
virtual bool SetFont(wxFont const & font) override;
|
||||||
|
|
||||||
public:
|
|
||||||
int Append(const wxString &item, const wxBitmapBundle &bitmap = wxNullBitmap);
|
int Append(const wxString &item, const wxBitmapBundle &bitmap = wxNullBitmap);
|
||||||
|
|
||||||
int Append(const wxString &item, const wxBitmapBundle &bitmap, void *clientData);
|
int Append(const wxString &item, const wxBitmapBundle &bitmap, void *clientData);
|
||||||
|
|
@ -62,6 +61,8 @@ public:
|
||||||
wxBitmap GetItemBitmap(unsigned int n);
|
wxBitmap GetItemBitmap(unsigned int n);
|
||||||
void SetItemBitmap(unsigned int n, wxBitmapBundle const &bitmap);
|
void SetItemBitmap(unsigned int n, wxBitmapBundle const &bitmap);
|
||||||
|
|
||||||
|
void ToggleDropDown();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int DoInsertItems(const wxArrayStringsAdapter &items,
|
virtual int DoInsertItems(const wxArrayStringsAdapter &items,
|
||||||
unsigned int pos,
|
unsigned int pos,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue