wxPanel::Create( parent,
id, pos,
size, style );
114GetSizer()->SetSizeHints(
this);
149wxArtProvider::Push(provider);
152wxBitmap bitmap(wxArtProvider::GetBitmap(
wxT(
"menu::dm_tiles"), wxART_TOOLBAR, wxSize(16,16)));
153wxImage image(bitmap.ConvertToImage());
169wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxHORIZONTAL);
170itemPanel1->SetSizer(itemBoxSizer2);
176wxBoxSizer* sizer1 =
newwxBoxSizer(wxVERTICAL);
183wxStaticBox* itemStaticBoxSizer6Static =
newwxStaticBox(itemPanel1,
wxID_ANY,
_(
"Parameters"));
184wxStaticBoxSizer* itemStaticBoxSizer6 =
newwxStaticBoxSizer(itemStaticBoxSizer6Static, wxHORIZONTAL);
185itemBoxSizer2->Add(itemStaticBoxSizer6, 0, wxGROW|wxALL, 0);
188itemStaticBoxSizer6->Add(
m_Parameters, 0, wxGROW|wxALL, 5);
232 m_ScriptWindow->GetSizer()->Add(
label, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
248sizer->Insert(index,
label, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
249wxSizerItemList& children = sizer->GetChildren();
250 for(
size_t i= index;
i< children.size();
i++)
264wxSizerItemList& children = sizer->GetChildren();
265 for(
size_t i= 0;
i< children.size();
i++)
279 label.second->Unselect();
306wxSizerItemList& children = sizer->GetChildren();
307 for(
size_t i=
min(index, min_selected);
i< children.size() &&
i<
max(index, max_selected);
i++) {
328wxSizerItemList& children = sizer->GetChildren();
329 for(
size_t i= 0;
i< children.size();
i++)
338wxRect rect = win->GetRect();
341 intclient_w, client_h;
350 if(rect_y + rect.height + 5 > view_y + client_h)
351 m_ScriptWindow->Scroll( -1, (rect_y + rect.height - client_h + hLine) / hLine );
380wxSizerItemList& children = sizer->GetChildren();
381 for(
size_t i= 0;
i< children.size();
i++)
409vector<pair<CRef<macro::CMacroRep>,
bool>> script;
411wxSizerItemList& children = sizer->GetChildren();
412script.reserve(children.size());
413 for(
size_t i= 0;
i< children.size();
i++) {
426wxSizerItemList& children = sizer->GetChildren();
427script.reserve(children.size());
428 for(
size_t i= 0;
i< children.size();
i++) {
432script.push_back(win->
GetMacro());
440wxSizerItemList& children = sizer->GetChildren();
441 if(script.size() != children.size()) {
444 for(
size_t i= 0;
i< children.size(); ++
i) {
460wxSizerItemList& children = sizer->GetChildren();
469macro::CMacroEngine engine;
470 autosyn_files = engine.GetSynonymFilenames(
GetMacros());
472 if(syn_files.empty()) {
475 else if(syn_files.size() > 1) {
486wxSizerItemList& children = sizer->GetChildren();
487 for(
size_t i= 0;
i< children.size();
i++)
503wxPoint p =
m_ScriptWindow->ScreenToClient(wxGetMousePosition());
506wxSetCursor(wxNullCursor);
523 intclient_w, client_h;
526wxSizerItemList& children = sizer->GetChildren();
527 boolrearranged =
false;
528 if(p.x > 0 && p.x < client_w && p.y >= 0 && p.y <= client_h && !lock) {
530sizer->Detach(macro.second);
533 if(index < children.size()) {
535sizer->Insert(index, macro.second, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
541sizer->Add(macro.second, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxRESERVE_SPACE_EVEN_IF_HIDDEN, 5);
549 for(
size_t i= 0;
i< children.size();
i++) {
550wxWindow* wxwin = children[
i]->GetWindow();
551wxwin->SetPosition(wxDefaultPosition);
563macro.second->ShowWithEffect(wxSHOW_EFFECT_EXPAND);
577wxImage image(280, 80,
true);
578wxColour bg(GetBackgroundColour());
579image.SetRGB(wxRect(0, 0, 280, 80), bg.Red(), bg.Green(), bg.Blue());
580image.Paste(bitmap.ConvertToImage(), 5, 40 - bitmap.GetHeight() / 2);
581wxBitmap composite(image);
582wxSplashScreen *splash =
newwxSplashScreen(composite, wxSPLASH_CENTRE_ON_PARENT | wxSPLASH_TIMEOUT, 2000, frame,
wxID_ANY);
583wxWindow *win = splash->GetSplashWindow();
584wxStaticText *
text=
newwxStaticText( win, wxID_STATIC,
wxT(
"Click the lock icon to enable dragging"), wxPoint(10 + bitmap.GetWidth(), 40 - bitmap.GetHeight() / 2 + 3));
585wxGraphicsContext *gc = wxGraphicsContext::Create();
586gc->SetFont(
text->GetFont(), *wxBLACK);
590wxDouble externalLeading;
591gc->GetTextExtent(
text->GetLabel(), &width, &height, &descent, &externalLeading);
592splash->SetSize(ceil(width) + 20 + bitmap.GetWidth(), 80);
600selected.
insert(macro.second);
603 size_tindex = children.size();
605 for(
size_t i= 0;
i< children.size();
i++) {
609 if(selected.
find(win) != selected.
end())
611wxPoint pos = win->GetPosition();
612 if(pos.y > y && pos.y < miny) {
628sizer->Detach(macro.second);
629macro.second->Unselect();
630macro.second->Destroy();
633wxSizerItemList& children = sizer->GetChildren();
634 for(
size_t i= 0;
i< children.size();
i++)
659 if(
abs(d.x) < 10 &&
abs(d.y) < 10)
681 else if( p.y > client_h - 5) {
706wxSizerItemList& children = sizer->GetChildren();
708vector<int> displacement(children.size(), 0);
719macro.second->HideWithEffect(wxSHOW_EFFECT_EXPAND);
722 for(
size_t i= 0;
i< children.size();
i++) {
726 if(!win->IsShown()) {
727height += win->GetSize().GetHeight() + 10;
732displacement[
i] = -height;
740 if(!win || !win->IsShown())
742displacement[
i] += 50;
747 if(!win || !win->IsShown())
749displacement[
i] -= 50;
752 for(
size_t i= 0;
i< children.size();
i++) {
753 intheight = displacement[
i];
764wxPoint displace(0, height);
765wxPoint current = win->GetPosition();
766win->SetPosition(current + displace);
772 if(!win || !win->IsShown())
784 label->ToggleSkip();
801wxSizerItemList& children = sizer->GetChildren();
802 for(
size_t i= 0;
i< children.size();
i++)
821wxSizerItemList& children = sizer->GetChildren();
822 for(
size_t i= 0;
i< children.size();
i++)
850itemMenu8.Append(
ID_MACROFLOW_CUT,
_(
"Cut\tCtrl+X"), wxEmptyString, wxITEM_NORMAL);
851itemMenu8.Append(
ID_MACROFLOW_COPY,
_(
"Copy\tCtrl+C"), wxEmptyString, wxITEM_NORMAL);
852itemMenu8.Append(
ID_MACROFLOW_PASTE,
_(
"Paste\tCtrl+V"), wxEmptyString, wxITEM_NORMAL);
855itemMenu8.Append(
ID_MACROFLOW_APPEND,
_(
"Add To Library\tAlt+A"), wxEmptyString, wxITEM_NORMAL);
856itemMenu8.Append(
ID_MACROFLOW_ADD,
_(
"Add New Macro"), wxEmptyString, wxITEM_NORMAL);
857itemMenu8.Append(
ID_SKIP_STEP,
_(
"Enable/Disable Step\tF3"), wxEmptyString, wxITEM_NORMAL);
858itemMenu8.Append(
ID_MANUALEDITMACRO,
_(
"Edit Macro Script"), wxEmptyString, wxITEM_NORMAL);
859itemMenu8.Append(
ID_MACROFLOW_ZOOM_IN,
_(
"Increase Font\tAlt+I"), wxEmptyString, wxITEM_NORMAL);
861PopupMenu(&itemMenu8);
880m_panel->OnMouseUp();
889 if( event.GetModifiers() != wxMOD_SHIFT) {
891 if(event.GetModifiers() != wxMOD_CONTROL) {
913 if(event.Dragging()) {
946 if(dlg.ShowModal() != wxID_OK)
960 #define LABEL_WIDTH 500 961 #define MAX_TITLE_LENGTH 200 981TMacroLabelParent::Create( parent,
id, pos,
size, style );
986GetSizer()->SetSizeHints(
this);
994wxGraphicsPath path = wxGraphicsRenderer::GetDefaultRenderer()->CreatePath();
995wxSize sz = GetSize();
996path.AddRoundedRectangle(0, 0, sz.GetWidth(), sz.GetHeight(), 15);
1042 unsigned long hash= wxStringHash::stringHash(
str.c_str());
1043wxColour old = *wxGREEN;
1044wxImage::HSVValue hsv = wxImage::RGBtoHSV(wxImage::RGBValue(old.Red(), old.Green(), old.Blue()));
1045hsv.hue = double(
hash% 360) / 360;
1046hsv.saturation = 0.2;
1047wxImage::RGBValue rgb = wxImage::HSVtoRGB(hsv);
1048wxColour upd(rgb.red, rgb.green, rgb.blue);
1055wxBoxSizer* itemBoxSizer2 =
newwxBoxSizer(wxHORIZONTAL);
1056itemFrame1->SetSizer(itemBoxSizer2);
1059itemBoxSizer2->Add(
m_panel, 1, wxGROW|wxALL, 0);
1062 m_panel->SetBackgroundColour(upd);
1068wxBoxSizer* itemBoxSizer4 =
newwxBoxSizer(wxHORIZONTAL);
1069 m_panel->SetSizer(itemBoxSizer4);
1071wxBoxSizer* itemBoxSizer5 =
newwxBoxSizer(wxVERTICAL);
1072itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 0);
1076itemBoxSizer5->Add(
m_bitmap, 0, wxALIGN_LEFT|wxRESERVE_SPACE_EVEN_IF_HIDDEN|wxALL, 0);
1081itemBoxSizer5->AddStretchSpacer();
1083 m_index=
newwxStaticText(
m_panel, wxID_STATIC,
_(
" "), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT );
1084itemBoxSizer5->Add(
m_index, 0, wxALIGN_LEFT|wxLEFT, 5);
1089 m_text=
newwxStaticText(
m_panel, wxID_STATIC, title, wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE_HORIZONTAL );
1090itemBoxSizer4->Add(
m_text, 1, wxGROW|wxALL, 5);
1095wxBoxSizer* itemBoxSizer6 =
newwxBoxSizer(wxVERTICAL);
1096itemBoxSizer4->Add(itemBoxSizer6, 0, wxGROW, 0);
1098itemBoxSizer6->AddStretchSpacer();
1100 m_counter=
newwxStaticText(
m_panel, wxID_STATIC,
_(
" "), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
1101itemBoxSizer6->Add(
m_counter, 0, wxALIGN_RIGHT|wxRIGHT, 5);
1110wxString title = wxString(
m_macro->GetTitle());
1148 returnwxNullBitmap;
1162wxColour old =
m_panel->GetBackgroundColour();
1163wxImage::HSVValue hsv = wxImage::RGBtoHSV(wxImage::RGBValue(old.Red(), old.Green(), old.Blue()));
1166hsv.saturation = 0.1;
1168hsv.saturation = 0.2;
1170wxImage::RGBValue rgb = wxImage::HSVtoRGB(hsv);
1171wxColour upd(rgb.red, rgb.green, rgb.blue);
1172 m_panel->SetBackgroundColour(upd);
1179wxColour old =
m_panel->GetBackgroundColour();
1180wxImage::HSVValue hsv = wxImage::RGBtoHSV(wxImage::RGBValue(old.Red(), old.Green(), old.Blue()));
1184wxImage::RGBValue rgb = wxImage::HSVtoRGB(hsv);
1185wxColour upd(rgb.red, rgb.green, rgb.blue);
1186 m_panel->SetBackgroundColour(upd);
1193wxColour old =
m_panel->GetBackgroundColour();
1194wxImage::HSVValue hsv = wxImage::RGBtoHSV(wxImage::RGBValue(old.Red(), old.Green(), old.Blue()));
1198wxImage::RGBValue rgb = wxImage::HSVtoRGB(hsv);
1199wxColour upd(rgb.red, rgb.green, rgb.blue);
1200 m_panel->SetBackgroundColour(upd);
1220wxPoint current = GetPosition();
1221SetPosition(current + d);
1266wxSize text_sz =
m_text->GetSize();
1267wxSize panel_sz = GetSize();
1268wxFont font =
m_text->GetFont();
1272 m_text->SetLabel(title);
1275wxSize new_text_sz =
m_text->GetSize();
1276 intnew_height = panel_sz.GetHeight() + new_text_sz.GetHeight() - text_sz.GetHeight() +
m_text->GetCharHeight();
1277SetMinSize(wxSize(panel_sz.GetWidth(), new_height));
1278SetSize(wxSize(panel_sz.GetWidth(), new_height));
1284wxSize text_sz =
m_text->GetSize();
1285wxSize panel_sz = GetSize();
1286wxFont font =
m_text->GetFont();
1290 m_text->SetLabel(title);
1293wxSize new_text_sz =
m_text->GetSize();
1294 intnew_height = panel_sz.GetHeight() + new_text_sz.GetHeight() - text_sz.GetHeight() +
m_text->GetCharHeight();
1295SetMinSize(wxSize(panel_sz.GetWidth(), new_height));
1296SetSize(wxSize(panel_sz.GetWidth(), new_height));
1302 return m_text->GetFont();
1307wxSize text_sz =
m_text->GetSize();
1308wxSize panel_sz = GetSize();
1310 m_text->SetLabel(title);
1312wxSize new_text_sz =
m_text->GetSize();
1313 intnew_height = panel_sz.GetHeight() + new_text_sz.GetHeight() - text_sz.GetHeight() +
m_text->GetCharHeight();
1314SetMinSize(wxSize(panel_sz.GetWidth(), new_height));
1315SetSize(wxSize(panel_sz.GetWidth(), new_height));
1317GetParent()->FitInside();
1361wxPanel::Create( parent,
id, pos,
size, style );
1366GetSizer()->SetSizeHints(
this);
1385wxBoxSizer* bs_vertical =
newwxBoxSizer(wxVERTICAL);
1386SetSizer(bs_vertical);
1388 m_PropGridCtrl=
newwxPropertyGrid (
this,
wxID_ANY, wxDefaultPosition, wxSize(380, -1), wxPG_SPLITTER_AUTO_CENTER | wxPG_DEFAULT_STYLE );
1401 returnwxNullBitmap;
1435macro::IMacroVar* var =
m_macro->GetFirstVar(blk);
1436wxPGProperty* property;
1440 if(var->IsGUIResolvable())
1442 string value= var->GetGUIResolvedValue();
1443macro::CMacroVarAsk* pAsk =
dynamic_cast<macro::CMacroVarAsk*
>(var);
1446 property=
newwxStringProperty ( pAsk->GetName(), wxPG_LABEL,
value);
1450macro::CMacroVarChoice* pChoice =
dynamic_cast<macro::CMacroVarChoice*
>(var);
1455wxArrayString tchoices;
1456 const string* stored_value = pChoice->GetFirstChoice();
1457 while(stored_value)
1459tchoices.Add(wxString(*stored_value));
1460 if(*stored_value ==
value)
1463stored_value = pChoice->GetNextChoice();
1465 property=
newwxEnumProperty ( wxString(pChoice->GetName()), wxPG_LABEL, tchoices, wxArrayInt(), sel );
1471 m_props.push_back(make_pair(var, property));
1474var =
m_macro->GetNextVar(blk);
1487macro::IMacroVar* var = p.first;
1488wxPGProperty*
property= p.second;
1489 if(var && property) {
1490 stringold = var->GetGUIResolvedValue();
1491 string value=
property->GetValueAsString().ToStdString();
1492var->SetGUIResolvedValue(
value);
1493old_to_new[old] =
value;
1494var_to_new[var->GetName()] =
value;
1495var_to_old[var->GetName()] = old;
1498 stringtitle =
m_macro->GetTitle();
1499 stringold_title = title;
1500 for(
autop : old_to_new) {
1503 if(title != old_title) {
1509 boolheader =
true;
1510 boolis_var =
false;
1514 string str= *++line_reader;
1519new_source +=
str+
"\n";
1525 if(
str==
"VAR") {
1527new_source +=
str+
"\n";
1532new_source +=
str+
"\n";
1536new_source +=
str+
"\n";
1539list<string> row_values;
1541 if(row_values.size() == 2) {
1542 stringvar = row_values.front();
1543 string value= row_values.back();
1548 if(var_to_new.
find(var) != var_to_new.
end())
1552new_source +=
str+
"\n";
1553}
while(!line_reader.
AtEOF());
1555 if(
source!= new_source) {
1556 m_macro->SetSource(new_source);
void OpenEditor(CRef< macro::CMacroRep > macro_rep)
void OnMouseDoubleClick(wxMouseEvent &event)
void OnMouseDown(wxMouseEvent &event)
void OnMouseUp(wxMouseEvent &event)
void OnMouseDrag(wxMouseEvent &event)
void OnMouseAndShiftDown()
wxGenericStaticBitmap * m_bitmap
void UpdateCounter(size_t counter)
CMacroLabel()
Constructors.
void UpdateMacroRep(CRef< macro::CMacroRep > macro)
CMacroLabelHandler * m_handler5
void SetIndex(size_t index)
CMacroLabelHandler * m_handler2
CMacroLabelHandler * m_handler1
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
void Init()
Initialises member variables.
~CMacroLabel()
Destructor.
CRef< macro::CMacroRep > m_macro
static wxColour GetLabelColour(const string &str)
macro::CMacroEngine m_MEngine
wxString x_ConstructTitle() const
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
bool Create(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxFRAME_SHAPED|wxBORDER_NONE)
void CreateControls()
Creates the controls and sizers.
CRef< macro::CMacroRep > GetMacro()
int x_GetTextWidth() const
static bool ShowToolTips()
Should we show tooltips?
CMacroLabelHandler * m_handler4
void UpdateMacro(CRef< macro::CMacroRep > macro)
CMacroLabelHandler * m_handler3
CRef< macro::CMacroRep > m_macro
void CreateControls()
Creates the controls and sizers.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
void Init()
Initialises member variables.
CMacroParamsPanel()
Constructors.
~CMacroParamsPanel()
Destructor.
wxPropertyGrid * m_PropGridCtrl
void OnPropertyChanged(wxPropertyGridEvent &event)
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
vector< pair< macro::IMacroVar *, wxPGProperty * > > m_props
bool Create(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
Creation.
void SetMacro(CRef< macro::CMacroRep > macro, CMacroLabel *label=NULL)
static bool ShowToolTips()
Should we show tooltips?
CRef< macro::CMacroRep > GetMacro()
void Init()
Initialises member variables.
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
size_t x_GetInsertIndex(int y, wxSizerItemList &children)
wxPoint m_CurrentMousePos
CMacroParamsPanel * m_Parameters
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
bool Create(wxWindow *parent, wxWindowID id=10001, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(400, 300), long style=wxTAB_TRAVERSAL)
Creation.
void SetMousePosition(wxPoint p)
void x_ShowSplashWindow(CMacroFlowEditor *frame)
CScriptPanel()
Constructors.
void CreateControls()
Creates the controls and sizers.
void SetSynonymFile(const string &filename)
wxScrolledWindow * m_ScriptWindow
vector< CRef< macro::CMacroRep > > TVecMacroRep
size_t GetIndex(CMacroLabel *label)
void SetModified(bool modified)
void SelectMacro(CMacroLabel *label)
void SelectItem(size_t item)
wxPoint GetMousePosition()
CMacroLabel * AddMacro(CRef< macro::CMacroRep > macro)
map< size_t, CMacroLabel * > m_selected_macros
void SelectMacros(CMacroLabel *label)
static const string sm_Multiple
void x_ShiftBottomLabels()
vector< pair< CRef< macro::CMacroRep >, bool > > GetScript()
bool UpdateMacroSources(const TVecMacroRep &script)
void UpdateCounter(size_t i, size_t counter)
static bool ShowToolTips()
Should we show tooltips?
CMacroLabelHandler * m_handler
wxPoint GetCurrentMousePosition()
void LookupSynonymFiles()
void OnRightClick(wxContextMenuEvent &evt)
~CScriptPanel()
Destructor.
CMacroLabel * InsertMacro(CRef< macro::CMacroRep > macro, size_t index)
Simple implementation of ILineReader for i(o)streams.
static wxString ResolvePath(const wxString &path, const wxString &rel_name)
Utility function to hide the platform specifics of locating our standard directories and files.
CwxSplittingArtProvider - an adapter for old-style image aliases.
const_iterator begin() const
const_iterator end() const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
const_iterator end() const
virtual void RegisterFileAlias(const wxArtID &anId, const wxArtClient &aClient, const wxSize &aSize, const wxString &aName, long aType=wxBITMAP_TYPE_ANY, int anIndex=-1)
int AddDirectory(wxString aDirName)
IMPLEMENT_CLASS(CFloatingFrame, CFloatingFrameBaseClass) const static long kFloatFrameStyle
CFloatingFrame.
static const char * str(char *buf, int n)
bool AtEOF(void) const
Indicates (negatively) whether there is any more input.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
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.
@ fSplit_MergeDelimiters
Merge adjacent delimiters.
@ eNocase
Case insensitive compare.
static const char label[]
Lightweight interface for getting lines of data with minimal memory copying.
#define ID_MACROFLOW_ZOOM_OUT
#define ID_MACROFLOW_APPEND
#define ID_MACROFLOW_DELETE
#define ID_MACROFLOW_COPY
#define ID_MACROFLOW_PASTE
#define ID_MACROFLOW_ZOOM_IN
#define ID_MANUALEDITMACRO
#define ID_MACROFLOW_DUPLICATE
static void text(MDB_val *v)
void ReportUsage(const wxString &dialog_name, const string &action_name)
Report events in the macro_flow_editor and in the macro_editor.
const struct ncbi::grid::netcache::search::fields::SIZE size
const GenericPointer< typename T::ValueType > T2 value
const CharType(& source)[N]
wxNonOwnedWindow TMacroLabelParent
#define ID_CSCRIPTPANEL_SCROLLEDWND1
#define ID_CSCRIPTPANEL_SCROLLEDWND
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