wxWindowID
id,
constwxPoint& pos,
constwxSize&
size,
longstyle )
91: m_AllowNuc(allow_nuc), m_AllowProt(allow_prot),
m_Scope(scope), m_is_aa(is_aa)
105wxPanel::Create( parent,
id, pos,
size, style );
110GetSizer()->SetSizeHints(
this);
161wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxVERTICAL);
162itemPanel1->SetSizer(itemBoxSizer2);
164wxStaticBox* itemStaticBoxSizer14Static =
newwxStaticBox(itemPanel1,
wxID_ANY,
_(
"Partialness"));
165wxStaticBoxSizer* itemStaticBoxSizer14 =
newwxStaticBoxSizer(itemStaticBoxSizer14Static, wxHORIZONTAL);
166itemBoxSizer2->Add(itemStaticBoxSizer14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
168wxString start_label =
_(
"5'");
170start_label =
_(
"NH2");
171 m_Partial5=
newwxCheckBox( itemPanel1,
ID_CHECKBOX1, start_label, wxDefaultPosition, wxDefaultSize, 0 );
173itemStaticBoxSizer14->Add(
m_Partial5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
175wxString stop_label =
_(
"3'");
177stop_label =
_(
"CO2H");
178 m_Partial3=
newwxCheckBox( itemPanel1,
ID_CHECKBOX2, stop_label, wxDefaultPosition, wxDefaultSize, 0 );
180itemStaticBoxSizer14->Add(
m_Partial3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
183wxPanel* itemPanel3 =
newwxPanel( itemPanel1,
ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
184itemBoxSizer2->Add(itemPanel3, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
186wxBoxSizer* itemBoxSizer4 =
newwxBoxSizer(wxVERTICAL);
187itemPanel3->SetSizer(itemBoxSizer4);
189wxBoxSizer* itemBoxSizer5 =
newwxBoxSizer(wxHORIZONTAL);
190itemBoxSizer4->Add(itemBoxSizer5, 0, wxALIGN_LEFT|wxALL, 0);
192wxStaticText* itemStaticText6 =
newwxStaticText( itemPanel3, wxID_STATIC,
_(
"From"), wxDefaultPosition, wxSize(itemPanel3->ConvertDialogToPixels(wxSize(45, -1)).x, -1), wxALIGN_CENTRE );
193itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
195wxStaticText* itemStaticText7 =
newwxStaticText( itemPanel3, wxID_STATIC,
_(
"To"), wxDefaultPosition, wxSize(itemPanel3->ConvertDialogToPixels(wxSize(45, -1)).x, -1), wxALIGN_CENTRE );
196itemBoxSizer5->Add(itemStaticText7, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
200wxStaticText* itemStaticText8 =
newwxStaticText( itemPanel3, wxID_STATIC,
_(
"Strand"), wxDefaultPosition, wxSize(itemPanel3->ConvertDialogToPixels(wxSize(45, -1)).x, -1), wxALIGN_CENTRE );
201itemBoxSizer5->Add(itemStaticText8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
204wxStaticText* itemStaticText9 =
newwxStaticText( itemPanel3, wxID_STATIC,
_(
"SeqID"), wxDefaultPosition, wxSize(itemPanel3->ConvertDialogToPixels(wxSize(80, -1)).x, -1), wxALIGN_CENTRE );
205itemBoxSizer5->Add(itemStaticText9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
207itemBoxSizer5->Add(92, 8, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
209wxStaticLine* itemStaticLine11 =
newwxStaticLine( itemPanel3, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
210itemBoxSizer4->Add(itemStaticLine11, 0, wxGROW|wxALL, 1);
216wxBoxSizer* itemBoxSizer13 =
newwxBoxSizer(wxHORIZONTAL);
217itemBoxSizer2->Add(itemBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 0);
219wxArrayString itemRadioBox17Strings;
220itemRadioBox17Strings.Add(
_(
"&join()"));
221itemRadioBox17Strings.Add(
_(
"&order()"));
222wxRadioBox* itemRadioBox17 =
newwxRadioBox( itemPanel1,
ID_RADIOBOX6,
_(
"Save As"), wxDefaultPosition, wxDefaultSize, itemRadioBox17Strings, 1, wxRA_SPECIFY_ROWS );
223itemRadioBox17->SetSelection(0);
225itemRadioBox17->SetToolTip(
_(
"If each interval is separate, and should not be joined with the others to describe the feature, choose order (for example, when annotating multiple primer binding sites)."));
226itemBoxSizer13->Add(itemRadioBox17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0);
228wxButton* itemButton18 =
newwxButton( itemPanel1,
ID_BUTTON1,
_(
"Sort"), wxDefaultPosition, wxDefaultSize, 0 );
229itemBoxSizer13->Add(itemButton18, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
232itemRadioBox17->SetValidator( wxGenericValidator(&
m_LocType) );
272 m_Data.push_back(intData);
285 m_Data.push_back(intData);
307loc->CSeq_loc_Base::SetNull();
315 if(
m_Data[0].m_Empty) {
316loc->CSeq_loc_Base::SetNull();
327 for(
size_t i= 0;
i<
m_Data.size(); ++
i) {
329 if(seq_int && seq_int->
IsInt()) {
332packed->Set().push_back(new_int);
335 if(packed->Set().size() == 1) {
336loc->
SetInt().Assign(*(packed->Set().front()));
337}
else if(packed->Set().size() == 0) {
340loc->CSeq_loc_Base::SetPacked_int(*packed);
346 for(
size_t i= 0;
i<
m_Data.size(); ++
i) {
349mix->Set().push_back(seq_int);
351null_loc->CSeq_loc_Base::SetNull();
352mix->Set().push_back(null_loc);
355 if(mix->Set().back()->
IsNull()) {
356mix->Set().pop_back();
358 if(mix->Set().size() == 0) {
360}
else if(mix->Set().size() == 1) {
361loc->
SetInt().Assign(*(mix->Set().front()));
363loc->CSeq_loc_Base::SetMix(*mix);
375 for(
size_t i= 0;
i<
m_Data.size();
i++)
391 switch(
m_Data[index].m_Strand) {
419 for(
size_t i= 0;
i<
m_Data.size();
i++)
421 if(!(
m_Data[
i].m_SeqId.IsEmpty()))
431 for(wxArrayString::iterator it =
m_SeqIds.begin(); it !=
m_SeqIds.end(); ++it)
435id_str = it->ToStdString();
448seq_id->
Set(id_str);
453 if(seq_id->
IsGi()) {
475 if(
m_Data[index].m_Empty) {
479 if(
m_Data[index].m_From ==
m_Data[index].m_To && !int_only)
489seq_pnt->
SetId(*seq_id);
490seq_loc->
SetPnt(*seq_pnt);
492 else if(
m_Data[index].m_Fuzz &&
abs(
m_Data[index].m_To -
m_Data[index].m_From) <= 1 && !int_only)
502seq_pnt->
SetId(*seq_id);
504seq_loc->
SetPnt(*seq_pnt);
517seq_int->
SetId(*seq_id);
518seq_loc->
SetInt(*seq_int);
525wxSizerItemList::iterator node =
row;
527wxSizer* sizer = (**node).GetSizer();
538(**node).DeleteWindows();
539node = itemList.erase(node);
546 returnitemList.end();
548wxSizerItemList::iterator
row, it = itemList.begin();
550 for(
intindex = 0; it != itemList.end(); ++it, --index) {
556wxSizer* sizer = (**it).GetSizer();
557 if(sizer && sizer->GetItem(wnd))
559 else if((**it).GetWindow() == wnd)
568wxSizerItemList::iterator it =
row;
570 if(it == itemList.end())
571 returnitemList.end();
578wxSizerItemList::iterator it =
row;
580 if(it == itemList.begin())
581 returnitemList.end();
587wxSizerItemList::iterator row2,
588wxSizerItemList& itemList)
590 for(
int i= 0;
i< 4; ++
i) {
591 if(row1 == itemList.end() || row2 == itemList.end())
593 swap(*row1++, *row2++);
598 int& from,
int& to,
int& strand, wxString& seqID,
bool&fuzz)
600wxSizerItemList::iterator node =
row;
602 if(node == itemList.end())
return;
606wxTextCtrl*
text= (wxTextCtrl*)(**node).GetWindow();
608from = wxAtoi(
text->GetValue());
609 if(++node == itemList.end())
return;
611 text= (wxTextCtrl*)(**node).GetWindow();
613to = wxAtoi(
text->GetValue());
614 if(++node == itemList.end())
return;
619wxChoice* strand_ctrl =
dynamic_cast<wxChoice*
>((**node).GetWindow());
620strand = strand_ctrl->GetSelection();
621 if(++node == itemList.end())
return;
626wxComboBox *combo = (wxComboBox*)(**node).GetWindow();
627seqID = combo->GetValue();
632wxSizerItemList& itemList =
m_Sizer->GetChildren();
633wxSizerItemList::iterator
row=
x_FindRow((wxWindow*)event.GetEventObject(), itemList);
634 if(
row== itemList.end())
636wxSizerItemList::iterator node =
row;
638wxTextCtrl* from_ctrl = (wxTextCtrl*)(**node).GetWindow();
639 intfrom = wxAtoi(from_ctrl->GetValue());
640 if(++node == itemList.end())
return;
642wxTextCtrl* to_ctrl = (wxTextCtrl*)(**node).GetWindow();
643 intto = wxAtoi(to_ctrl->GetValue());
644 if(++node == itemList.end())
return;
650wxChoice* strand_ctrl =
dynamic_cast<wxChoice*
>((**node).GetWindow());
651strand = strand_ctrl->GetSelection();
654 if((strand == 1 && from < to) || (strand != 1 && from > to) )
656from_ctrl->SetValue(wxEmptyString);
657to_ctrl->SetValue(wxEmptyString);
665wxSizerItemList& itemList =
m_Sizer->GetChildren();
666wxSizerItemList::iterator
row=
x_FindRow((wxWindow*)event.GetEventObject(), itemList);
668 if(
m_Sizer->GetChildren().empty()) {
680wxWindow* spnCtrl = (wxWindow*)evt.GetEventObject();
682wxSizerItemList& itemList =
m_Sizer->GetChildren();
683wxSizerItemList::iterator
row=
x_FindRow(spnCtrl, itemList);
684 if(
row== itemList.end())
687wxSizerItemList::iterator row2;
689 switch(evt.GetId()) {
704 size_trowPos = itemList.IndexOf(*
row);
706 intfrom = 1, to = 1, strand = 0;
715 x_AddRow(from, from, strand, seqID, fuzz, rowPos);
724 intfrom = 1, to = 1, strand = 0;
730 size_trowPos = (
row== itemList.end()) ? (
size_t)-1 : itemList.IndexOf(*
row);
735 x_AddRow(to, to, strand, seqID, fuzz, rowPos);
749wxTextCtrl *textFrom;
756 if(rowPos == (
size_t)-1)
757 m_Sizer->Add(textFrom, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
759 m_Sizer->Insert(rowPos++, textFrom, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
766 if(rowPos == (
size_t)-1)
767 m_Sizer->Add(
text, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
769 m_Sizer->Insert(rowPos++,
text, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
773wxArrayString itemComboBoxStrings;
774itemComboBoxStrings.Add(
wxT(
"Plus"));
775itemComboBoxStrings.Add(
wxT(
"Minus"));
776itemComboBoxStrings.Add(
wxT(
"Both"));
777itemComboBoxStrings.Add(
wxT(
"Other"));
782itemComboBoxStrings);
783strand_ctrl->SetSelection(strand);
785 if(rowPos == (
size_t)-1)
786 m_Sizer->Add(strand_ctrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
788 m_Sizer->Insert(rowPos++, strand_ctrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
795 if(rowPos == (
size_t)-1)
796 m_Sizer->Add(combo, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
798 m_Sizer->Insert(rowPos++, combo, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
800wxBoxSizer* controlsSizer =
newwxBoxSizer(wxHORIZONTAL);
801 if(rowPos == (
size_t)-1)
804 m_Sizer->Insert(rowPos++, controlsSizer);
807spinCtrl1->SetToolTip(
_(
"Use insert controls to insert blank location intervals"));
809controlsSizer->Add(spinCtrl1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
812spinCtrl2->SetToolTip(
_(
"Use arrow controls to reorder location intervals"));
813controlsSizer->Add(spinCtrl2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
816itemHyperLink->SetVisitedColour(itemHyperLink->GetNormalColour());
817controlsSizer->Add(itemHyperLink, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
819textFrom->SetFocus();
820textFrom->SetSelection(-1, -1);
836wxTE_RIGHT|wxTE_PROCESS_ENTER);
837 if(rowPos == (
size_t)-1)
838 m_Sizer->Add(
m_LastFrom, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
840 m_Sizer->Insert(rowPos++,
m_LastFrom, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
844wxTE_RIGHT|wxTE_PROCESS_ENTER);
845 if(rowPos == (
size_t)-1)
846 m_Sizer->Add(
m_LastTo, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
848 m_Sizer->Insert(rowPos++,
m_LastTo, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
850wxArrayString itemComboBoxStrings;
851itemComboBoxStrings.Add(
wxT(
"Plus"));
852itemComboBoxStrings.Add(
wxT(
"Minus"));
853itemComboBoxStrings.Add(
wxT(
"Both"));
854itemComboBoxStrings.Add(
wxT(
"Other"));
860itemComboBoxStrings);
863 if(rowPos == (
size_t)-1)
864 m_Sizer->Add(
m_LastStrand, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
866 m_Sizer->Insert(rowPos++,
m_LastStrand, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
874 if(rowPos == (
size_t)-1)
875 m_Sizer->Add(
m_LastId, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
877 m_Sizer->Insert(rowPos++,
m_LastId, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 0);
879wxBoxSizer* controlsSizer =
newwxBoxSizer(wxHORIZONTAL);
880 if(rowPos == (
size_t)-1)
883 m_Sizer->Insert(rowPos++, controlsSizer);
887controlsSizer->Add(spinCtrl1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
890controlsSizer->Add(spinCtrl2, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
893itemHyperLink->SetVisitedColour(itemHyperLink->GetNormalColour());
894controlsSizer->Add(itemHyperLink, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 0);
905vector<SIntData> intVec;
908wxSizerItemList& children =
m_Sizer->GetChildren();
909wxSizerItemList::iterator node = children.begin();
911 for(; node != children.end(); ) {
912wxTextCtrl*
text= (wxTextCtrl*)(**node).GetWindow();
913 if(++node == children.end())
break;
914wxString from =
text->GetValue();
916 text= (wxTextCtrl*)(**node).GetWindow();
917 if(++node == children.end())
break;
918wxString to =
text->GetValue();
920wxChoice* strand_combo =
NULL;
923strand_combo =
dynamic_cast<wxChoice*
>((**node).GetWindow());
924 if(++node == children.end())
break;
927wxComboBox* id_combo = (wxComboBox*)(**node).GetWindow();
928 if(++node == children.end())
break;
932 if(from.IsEmpty() && to.IsEmpty()) {
936intData.
m_From= wxAtoi(from);
937intData.
m_To= wxAtoi(to);
943intData.
m_Strand= strand_combo->GetSelection();
944intData.
m_SeqId= id_combo->GetValue();
948intVec.push_back(intData);
954 sort(intVec.begin(), intVec.end());
956 for(node = children.begin(); node != children.end(); ++node)
959(**node).DeleteWindows();
964vector<SIntData>::const_iterator it;
966 for(it = intVec.begin(); it != intVec.end(); ++it) {
968 x_AddRow(it->m_From, it->m_To, it->m_Strand, it->m_SeqId, it->m_Fuzz);
985vector<SIntData>::const_iterator it;
988idsSet.
insert(it->m_SeqId);
997 for(
CBioseq_CIbioseq_it(*handle); bioseq_it; ++bioseq_it) {
1028 for(it2 = idsSet.
begin(); it2 != idsSet.
end(); ++it2)
1036 if(!wxPanel::TransferDataToWindow())
1039wxSizerItemList& children =
m_Sizer->GetChildren();
1040wxSizerItemList::iterator node = children.begin();
1041 for(; node != children.end(); ++node)
1043(**node).DeleteWindows();
1054 boollast_empty =
false;
1055vector<SIntData>::const_iterator it;
1056 for(it =
m_Data.begin(); it !=
m_Data.end(); ++it) {
1061 x_AddRow(it->m_From, it->m_To, it->m_Strand, it->m_SeqId, it->m_Fuzz);
1062last_empty =
false;
1077 if(!wxPanel::TransferDataFromWindow())
1083wxSizerItemList& children =
m_Sizer->GetChildren();
1084wxSizerItemList::iterator node = children.begin();
1086 for(; node != children.end(); ) {
1087wxTextCtrl*
text= (wxTextCtrl*)(**node).GetWindow();
1088 if(++node == children.end())
break;
1089wxString from =
text->GetValue();
1091 text= (wxTextCtrl*)(**node).GetWindow();
1092 if(++node == children.end())
break;
1093wxString to =
text->GetValue();
1095wxChoice* strand_combo =
NULL;
1098strand_combo =
dynamic_cast<wxChoice*
>((**node).GetWindow());
1099 if(++node == children.end())
break;
1102wxComboBox* id_combo = (wxComboBox*)(**node).GetWindow();
1103 if(++node == children.end())
break;
1107 if(from.IsEmpty() && to.IsEmpty()) {
1110 if(from.IsEmpty()) {
1112}
else if(to.IsEmpty()) {
1116 stringfrom_str = from.ToStdString();
1117 stringto_str = to.ToStdString();
1129intData.
m_Strand= strand_combo->GetSelection();
1130intData.
m_SeqId= id_combo->GetValue();
1135 m_Data.push_back(intData);
1145 if(
m_LastId->GetValue().IsEmpty())
1175wxArrayString::iterator it =
m_SeqIds.begin();
1235 returnwxNullBitmap;
static CRef< CScope > m_Scope
@ eExtreme_Biological
5' and 3'
void UseImageSet(int set)
Data loader exceptions, used by GenBank loader.
CLocationListCtrl()
Constructors.
void x_GetRowData(wxSizerItemList::iterator row, wxSizerItemList &itemList, int &from, int &to, int &strand, wxString &seqID, bool &fuzz)
~CLocationListCtrl()
Destructor.
void OnDelete(wxHyperlinkEvent &event)
void OnSortClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON1
wxScrolledWindow * m_ScrolledWindow
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
wxFlexGridSizer * m_Sizer
CNoTabChoice * m_LastStrand
int m_LastStrandSelection
CRef< objects::CSeq_id > GetIdFromForm(size_t index)
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
void Init()
Initialises member variables.
CRef< objects::CSeq_loc > GetSeq_loc()
CRef< objects::CScope > m_Scope
CRef< objects::CSeq_loc > x_GetInterval(size_t index, bool int_only)
void PopulateIdListFromScope()
vector< SIntData > m_Data
void DeleteRow(wxSizerItemList::iterator row, wxSizerItemList &itemList)
void OnStrandChange(wxCommandEvent &event)
objects::ENa_strand x_GetStrandFromForm(size_t index)
virtual bool TransferDataToWindow()
virtual bool TransferDataFromWindow()
wxSizerItemList::iterator x_FindRow(wxWindow *wnd, wxSizerItemList &itemList)
void OnNewText(wxCommandEvent &event)
bool Create(wxWindow *parent, wxWindowID id=ID_CLOCATIONLISTCTRL, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxSUNKEN_BORDER|wxTAB_TRAVERSAL)
Creation.
void OnSpinCtrl(wxCommandEvent &evt)
CNoTabComboBox * m_LastId
objects::ENa_strand GetStrandFromForm(size_t index)
void AddRow(int from, int to, int strand, const wxString &seqID, const bool fuzz)
static bool ShowToolTips()
Should we show tooltips?
wxSizerItemList::iterator x_PrevRow(wxSizerItemList::iterator row, wxSizerItemList &itemList)
bool IsInIdList(wxString str)
wxSizerItemList::iterator x_NextRow(wxSizerItemList::iterator row, wxSizerItemList &itemList)
void SetPartials(bool partial5, bool partial3)
wxString GetListIdStrForSeqId(const objects::CSeq_id &seq_id)
void x_AddRow(int from, int to, int strand, const wxString &seqID, const bool fuzz, size_t rowPos=-1)
void x_AddEmptyRow(size_t rowPos=-1)
map< string, CConstRef< objects::CSeq_id > > m_str_to_id
void CreateControls()
Creates the controls and sizers.
const_iterator end() const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
const_iterator begin() const
const_iterator end() const
static const char * str(char *buf, int n)
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)
static void GetLabel(const CObject &obj, string *label, ELabelType type=eDefault)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
CSeq_id & Set(const CTempString &the_id, TParseFlags flags=fParse_AnyRaw)
Reassign based on flat specifications; arguments interpreted as with constructors.
@ eContent
Untagged human-readable accession or the like.
void SetPartialStart(bool val, ESeqLocExtremes ext)
set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)
void SetPartialStop(bool val, ESeqLocExtremes ext)
void SetNull(void)
Override all setters to incorporate cache invalidation.
TGi GetGiForId(const objects::CSeq_id &id, CScope &scope, EGetIdType flags=0)
Given a Seq-id retrieve the corresponding GI.
vector< CSeq_entry_Handle > TTSE_Handles
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null â same effect as Empty().
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)
Truncate whitespace in a string (in-place)
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
TStr & SetStr(void)
Select the variant.
@ eLim_tr
space to right of position
void SetTo(TTo value)
Assign a value to To data member.
void SetPoint(TPoint value)
Assign a value to Point data member.
void SetId(TId &value)
Assign a value to Id data member.
ENa_strand
strand of nucleic acid
void SetId(TId &value)
Assign a value to Id data member.
void SetStrand(TStrand value)
Assign a value to Strand data member.
void SetFuzz(TFuzz &value)
Assign a value to Fuzz data member.
void SetFrom(TFrom value)
Assign a value to From data member.
TGi GetGi(void) const
Get the variant data.
TGi & SetGi(void)
Select the variant.
TLocal & SetLocal(void)
Select the variant.
bool IsGi(void) const
Check if variant Gi is selected.
bool IsInt(void) const
Check if variant Int is selected.
const TInt & GetInt(void) const
Get the variant data.
bool IsNull(void) const
Check if variant Null is selected.
void SetStrand(TStrand value)
Assign a value to Strand data member.
@ eNa_strand_both
in forward orientation
const TId & GetId(void) const
Get the Id member data.
list< CRef< CSeq_id > > TId
@ eMol_na
just a nucleic acid
static void s_SwapRows(wxSizerItemList::iterator row1, wxSizerItemList::iterator row2, wxSizerItemList &itemList)
void s_FinishLoc(CSeq_loc &loc, bool partial5, bool partial3)
static void text(MDB_val *v)
constexpr auto sort(_Init &&init)
const struct ncbi::grid::netcache::search::fields::SIZE size
#define row(bind, expected)
C++ wrappers for the Perl-compatible regular expression (PCRE) library.
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