summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wx/content_panel.cc24
-rw-r--r--src/wx/content_panel.h1
2 files changed, 13 insertions, 12 deletions
diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc
index 69dd72426..a7c9a4454 100644
--- a/src/wx/content_panel.cc
+++ b/src/wx/content_panel.cc
@@ -677,11 +677,7 @@ ContentPanel::set_selection (weak_ptr<Content> wc)
{
auto content = _film->content ();
for (size_t i = 0; i < content.size(); ++i) {
- if (content[i] == wc.lock ()) {
- _content->SetItemState (i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
- } else {
- _content->SetItemState (i, 0, wxLIST_STATE_SELECTED);
- }
+ set_selected_state(i, content[i] == wc.lock());
}
}
@@ -693,11 +689,7 @@ ContentPanel::set_selection (ContentList cl)
auto content = _film->content ();
for (size_t i = 0; i < content.size(); ++i) {
- if (find(cl.begin(), cl.end(), content[i]) != cl.end()) {
- _content->SetItemState (i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
- } else {
- _content->SetItemState (i, 0, wxLIST_STATE_SELECTED);
- }
+ set_selected_state(i, find(cl.begin(), cl.end(), content[i]) != cl.end());
}
_no_check_selection = false;
@@ -783,7 +775,7 @@ ContentPanel::setup ()
_content->InsertItem (item);
if (i.get() == selected_content) {
- _content->SetItemState (t, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
+ set_selected_state(t, true);
}
if (!valid || needs_kdm || needs_assets) {
@@ -793,7 +785,7 @@ ContentPanel::setup ()
if (!selected_content && !content.empty ()) {
/* Select the item of content if none was selected before */
- _content->SetItemState (0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
+ set_selected_state(0, true);
}
setup_sensitivity ();
@@ -861,6 +853,14 @@ ContentPanel::panels () const
}
+void
+ContentPanel::set_selected_state(int item, bool state)
+{
+ _content->SetItemState(item, state ? wxLIST_STATE_SELECTED : 0, wxLIST_STATE_SELECTED);
+ _content->SetItemState(item, state ? wxLIST_STATE_FOCUSED : 0, wxLIST_STATE_FOCUSED);
+}
+
+
LimitedSplitter::LimitedSplitter (wxWindow* parent)
: wxSplitterWindow (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_NOBORDER | wxSP_3DSASH | wxSP_LIVE_UPDATE)
, _first_shown (false)
diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h
index d6c81a8d2..a886b0217 100644
--- a/src/wx/content_panel.h
+++ b/src/wx/content_panel.h
@@ -128,6 +128,7 @@ private:
void setup ();
void setup_sensitivity ();
+ void set_selected_state(int item, bool state);
void add_files (std::vector<boost::filesystem::path>);
std::list<ContentSubPanel *> panels () const;