wxPanel::Create( parent,
id, pos,
size, style );
89GetSizer()->SetSizeHints(
this);
120wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxVERTICAL);
121itemPanel1->SetSizer(itemBoxSizer2);
123wxBoxSizer* itemBoxSizer3 =
newwxBoxSizer(wxHORIZONTAL);
124itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxLEFT|wxRIGHT, 5);
126wxStaticText* itemStaticText4 =
newwxStaticText( itemPanel1, wxID_STATIC,
_(
"Filter:"), wxDefaultPosition, wxDefaultSize, 0 );
127itemBoxSizer3->Add(itemStaticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
129 m_SearchCtrl=
newwxTextCtrl( itemPanel1,
ID_SEARCH,
wxT(
""), wxDefaultPosition, wxSize(itemPanel1->ConvertDialogToPixels(wxSize(120, -1)).x, -1), 0 );
130itemBoxSizer3->Add(
m_SearchCtrl, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
132 m_ResetBtn=
newwxButton( itemPanel1,
ID_RESET,
_(
"Reset"), wxDefaultPosition, wxDefaultSize, 0 );
133itemBoxSizer3->Add(
m_ResetBtn, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
135 m_StatusText=
newwxStaticText( itemPanel1,
ID_STATUS,
_(
"Filter:"), wxDefaultPosition, wxDefaultSize, 0 );
136itemBoxSizer3->Add(
m_StatusText, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
139itemBoxSizer2->Add(
m_Splitter, 1, wxGROW|wxALL, 5);
142 intsizes[3] = { 300, 60, -1 };
156map_control->SetFocus();
180 for(
size_t i= 0;
i<
m_Items.size();
i++ ) {
187 for(
size_t i= 0;
i< grp_descrs.size();
i++ ) {
190vector<string>::const_iterator it =
198}
else if(
n== 1) {
217 boolreset =
query.empty();
226 const IUIObject& ui_obj = item->GetDescriptor();
245 stringstatus = reset ?
"All ":
"Filtered - ";
248 if( ! reset &&
n== 0) {
249status +=
"no matches";
274 for(
size_t i= 0;
i< descrs.size();
i++ ) {
275 if(descrs[
i].m_Label == group) {
276grp_descr = &descrs[
i];
281 if(grp_descr ==
NULL) {
283grp_descr = &descrs.back();
286grp_descr->
m_Items.push_back(descr);
292 for(
size_t i= 0;
i<
m_Items.size();
i++ ) {
294 const IUIObject& ui_obj = item->GetDescriptor();
299 return(
size_t) -1;
325 if(index != (
size_t) -1) {
337descr = curItem->GetFullDescr();
364vector<string> groups, collapsed;
366 ITERATE(vector<string>, it, groups) {
368string::size_type pos = it->find(
" (");
369 string str= (pos == string::npos) ? *it : it->substr(0, pos);
370collapsed.push_back(
str);
388 if(heights.size() == 2) {
424 int code=
event.GetKeyCode();
425 if(event.ControlDown() && (
code==
'F'||
code==
'f')) {
CRegistryWriteView GetWriteView(const string §ion)
get a read-write view at a particular level.
static CGuiRegistry & GetInstance()
access the application-wide singleton
CRegistryReadView GetReadView(const string §ion) const
get a read-only view at a particular level.
CMapControl owns all its items.
SProperties & GetProperties()
class CRegistryReadView provides a nested hierarchical view at a particular key.
void GetIntVec(const string &key, vector< int > &val) const
void GetStringVec(const string &key, vector< string > &val) const
void Set(const string &key, int val)
access a named key at this level, with no recursion
CSplitter - container with resizable separators.
void SetResizableCell(int col, int row)
bool InsertToCell(wxWindow *child, int col, int row)
If cell [col, row] exists and vacant - adds widget to the container.
void GetHeights(TPosVector &heights) const
void SetHeights(const TPosVector &heights)
virtual void Split(ESplitType type)
Creates a splitter with a single cell.
IUIObject - object that provides basic properties often required in a UI object.
static const char * str(char *buf, int n)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
static bool ShowToolTips()
void x_AddItem(CGroupMapWidget::TGroupDescrVector &descrs, IItemWithDescription &manager)
void OnKeyDown(wxKeyEvent &event)
wxIcon GetIconResource(const wxString &name)
vector< TItemRef > m_Items
void SetItemTypeLabel(const string &label)
virtual void LoadSettings()
TItemRef GetSelectedItemRef()
wxBitmap GetBitmapResource(const wxString &name)
virtual void SetRegistryPath(const string &path)
void OnResetClick(wxCommandEvent &event)
virtual string GetCategory()=0
virtual void SaveSettings() const
void SetItems(vector< TItemRef > &items)
void x_FilterItems(const string &query)
void OnItemSelected(wxCommandEvent &event)
virtual bool ShowDefault() const =0
vector< TItemRef > m_AllItems
vector< string > m_CollapsedGroups
CGroupMapWidget * m_MapWidget
bool Create(wxWindow *parent, wxWindowID id=ID_CITEMSELECTIONPANEL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxNO_BORDER|wxCLIP_CHILDREN|wxTAB_TRAVERSAL)
void OnSearchUpdated(wxCommandEvent &event)
virtual const IUIObject & GetDescriptor() const =0
size_t x_FindItemByLabel(const string &label)
wxTextCtrl * m_SearchCtrl
wxStaticText * m_StatusText
virtual const string & GetIconAlias() const =0
virtual const string & GetLabel() const =0
virtual const string & GetDescription() const =0
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string SizetToString(size_t value, TNumToStringFlags flags=0, int base=10)
Convert size_t to string.
static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)
Find the pattern in the specified range of a string using a case insensitive search.
static const char label[]
static const char * kCollapsedGroupsTag
static const char * kSplitterWidthsTag
CGroupMapWidget::SGroupDescr TGroupDescr
const struct ncbi::grid::netcache::search::fields::SIZE size
wxString ToWxString(const string &s)
string ToStdString(const wxString &s)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4